• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package org.hamcrest.text;
2 
3 import org.hamcrest.Description;
4 import org.hamcrest.Matcher;
5 import org.hamcrest.TypeSafeMatcher;
6 
7 import java.util.regex.Pattern;
8 
9 public class MatchesPattern extends TypeSafeMatcher<String> {
10     private final Pattern pattern;
11 
MatchesPattern(Pattern pattern)12     public MatchesPattern(Pattern pattern) {
13         this.pattern = pattern;
14     }
15 
16     @Override
matchesSafely(String item)17     protected boolean matchesSafely(String item) {
18         return pattern.matcher(item).matches();
19     }
20 
21     @Override
describeTo(Description description)22     public void describeTo(Description description) {
23         description.appendText("a string matching the pattern '" + pattern + "'");
24     }
25 
26     /**
27      * Creates a matcher of {@link java.lang.String} that matches when the examined string
28      * exactly matches the given {@link java.util.regex.Pattern}.
29      */
matchesPattern(Pattern pattern)30     public static Matcher<String> matchesPattern(Pattern pattern) {
31         return new MatchesPattern(pattern);
32     }
33 
34     /**
35      * Creates a matcher of {@link java.lang.String} that matches when the examined string
36      * exactly matches the given regular expression, treated as a {@link java.util.regex.Pattern}.
37      */
matchesPattern(String regex)38     public static Matcher<String> matchesPattern(String regex) {
39         return new MatchesPattern(Pattern.compile(regex));
40     }
41 }
42