org.hamcrest
Class TypeSafeMatcher<T>

java.lang.Object
  extended by org.hamcrest.BaseMatcher<T>
      extended by org.hamcrest.TypeSafeMatcher<T>
All Implemented Interfaces:
Matcher<T>, SelfDescribing
Direct Known Subclasses:
CustomTypeSafeMatcher, SubstringMatcher

public abstract class TypeSafeMatcher<T>
extends BaseMatcher<T>

Convenient base class for Matchers that require a non-null value of a specific type. This simply implements the null check, checks the type and then casts.


Constructor Summary
protected TypeSafeMatcher()
          The default constructor for simple sub types
protected TypeSafeMatcher(Class<?> expectedType)
          Use this constructor if the subclass that implements matchesSafely is not the class that binds <T> to a type.
protected TypeSafeMatcher(ReflectiveTypeFinder typeFinder)
          Use this constructor if the subclass that implements matchesSafely is not the class that binds <T> to a type.
 
Method Summary
 void describeMismatch(Object item, Description description)
          Generate a description of why the matcher has not accepted the item.
protected  void describeMismatchSafely(T item, Description mismatchDescription)
          Subclasses should override this.
 boolean matches(Object item)
          Methods made final to prevent accidental override.
protected abstract  boolean matchesSafely(T item)
          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

TypeSafeMatcher

protected TypeSafeMatcher()
The default constructor for simple sub types


TypeSafeMatcher

protected TypeSafeMatcher(Class<?> expectedType)
Use this constructor if the subclass that implements matchesSafely is not the class that binds <T> to a type.

Parameters:
expectedType - The expectedType of the actual value.

TypeSafeMatcher

protected TypeSafeMatcher(ReflectiveTypeFinder typeFinder)
Use this constructor if the subclass that implements matchesSafely is not the class that binds <T> to a type.

Parameters:
typeFinder - A type finder to extract the type
Method Detail

matchesSafely

protected abstract boolean matchesSafely(T item)
Subclasses should implement this. The item will already have been checked for the specific type and will never be null.


describeMismatchSafely

protected void describeMismatchSafely(T item,
                                      Description mismatchDescription)
Subclasses should override this. The item will already have been checked for the specific type and will never be null.


matches

public final boolean matches(Object item)
Methods made final to prevent accidental override. If you need to override this, there's no point on extending TypeSafeMatcher. Instead, extend the BaseMatcher.

Parameters:
item - the object against which the matcher is evaluated.
Returns:
true if item matches, otherwise false.
See Also:
BaseMatcher

describeMismatch

public final void describeMismatch(Object item,
                                   Description description)
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 that matches(item) is false, but will not check this.

Specified by:
describeMismatch in interface Matcher<T>
Overrides:
describeMismatch in class BaseMatcher<T>
Parameters:
item - The item that the Matcher has rejected.
description - The description to be built or appended to.