| package org.hamcrest; |
| |
| /** |
| * Utility class for writing one off matchers. |
| * For example: |
| * <pre> |
| * Matcher<String> aNonEmptyString = new CustomMatcher<String>("a non empty string") { |
| * public boolean matches(Object object) { |
| * return ((object instanceof String) && !((String) object).isEmpty(); |
| * } |
| * }; |
| * </pre> |
| * <p> |
| * This class is designed for scenarios where an anonymous inner class |
| * matcher makes sense. It should not be used by API designers implementing |
| * matchers. |
| * |
| * @author Neil Dunn |
| * @see CustomTypeSafeMatcher for a type safe variant of this class that you probably |
| * want to use. |
| * @param <T> The type of object being matched. |
| */ |
| public abstract class CustomMatcher<T> extends BaseMatcher<T> { |
| private final String fixedDescription; |
| |
| public CustomMatcher(String description) { |
| if (description == null) { |
| throw new IllegalArgumentException("Description should be non null!"); |
| } |
| this.fixedDescription = description; |
| } |
| |
| @Override |
| public final void describeTo(Description description) { |
| description.appendText(fixedDescription); |
| } |
| } |