Package org.hamcrest
Class TypeSafeDiagnosingMatcher<T>
- java.lang.Object
- org.hamcrest.BaseMatcher<T>
- org.hamcrest.TypeSafeDiagnosingMatcher<T>
- Type Parameters:
T
-
- All Implemented Interfaces:
Matcher<T>
,SelfDescribing
- Direct Known Subclasses:
CombinableMatcher
,Every
,FeatureMatcher
,IsCollectionContaining
public abstract class TypeSafeDiagnosingMatcher<T> extends BaseMatcher<T>
Convenient base class for Matchers that require a non-null value of a specific type and that will report why the received value has been rejected. This implements the null check, checks the type and then casts. To use, implementmatchesSafely()
.
Constructor Summary
Constructors Modifier Constructor Description protected
TypeSafeDiagnosingMatcher()
The default constructor for simple sub typesprotected
TypeSafeDiagnosingMatcher(Class<?> expectedType)
Use this constructor if the subclass that implementsmatchesSafely
is not the class that binds <T> to a type.protected
TypeSafeDiagnosingMatcher(ReflectiveTypeFinder typeFinder)
Use this constructor if the subclass that implementsmatchesSafely
is not the class that binds <T> to a type.
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
describeMismatch(Object item, Description mismatchDescription)
Generate a description of why the matcher has not accepted the item.boolean
matches(Object item)
Evaluates the matcher for argument item.protected abstract boolean
matchesSafely(T item, Description mismatchDescription)
Subclasses should implement this.Methods inherited from class org.hamcrest.BaseMatcher
_dont_implement_Matcher___instead_extend_BaseMatcher_, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.hamcrest.SelfDescribing
describeTo
Constructor Detail
TypeSafeDiagnosingMatcher
protected TypeSafeDiagnosingMatcher(Class<?> expectedType)
Use this constructor if the subclass that implementsmatchesSafely
is not the class that binds <T> to a type.- Parameters:
expectedType
- The expectedType of the actual value.
TypeSafeDiagnosingMatcher
protected TypeSafeDiagnosingMatcher(ReflectiveTypeFinder typeFinder)
Use this constructor if the subclass that implementsmatchesSafely
is not the class that binds <T> to a type.- Parameters:
typeFinder
- A type finder to extract the type
TypeSafeDiagnosingMatcher
protected TypeSafeDiagnosingMatcher()
The default constructor for simple sub types
Method Detail
matchesSafely
protected abstract boolean matchesSafely(T item, Description mismatchDescription)
Subclasses should implement this. The item will already have been checked for the specific type and will never be null.
matches
public final boolean matches(Object item)
Description copied from interface:Matcher
Evaluates the matcher for argument item. This method matches against Object, instead of the generic type T. This is because the caller of the Matcher does not know at runtime what the type is (because of type erasure with Java generics). It is down to the implementations to check the correct type.- Parameters:
item
- the object against which the matcher is evaluated.- Returns:
true
if item matches, otherwisefalse
.- See Also:
BaseMatcher
describeMismatch
public final void describeMismatch(Object item, Description mismatchDescription)
Description copied from interface:Matcher
Generate a description of why the matcher has not accepted the item. The description will be part of a larger description of why a matching failed, so it should be concise. This method assumes thatmatches(item)
is false, but will not check this.- Specified by:
describeMismatch
in interfaceMatcher<T>
- Overrides:
describeMismatch
in classBaseMatcher<T>
- Parameters:
item
- The item that the Matcher has rejected.mismatchDescription
- The description to be built or appended to.