package org.hamcrest;
Utility class for writing one off matchers.
For example:
Matcher<String> aNonEmptyString = new CustomMatcher<String>("a non empty string") {
public boolean matches(Object object) {
return ((object instanceof String) && !((String) object).isEmpty();
}
};
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 Type parameters: - <T> – The type of object being matched.
See Also:
/**
* 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);
}
}