org.hamcrest
Class DiagnosingMatcher<T>

java.lang.Object
  extended by org.hamcrest.BaseMatcher<T>
      extended by org.hamcrest.DiagnosingMatcher<T>
Type Parameters:
T -
All Implemented Interfaces:
Matcher<T>, SelfDescribing
Direct Known Subclasses:
AllOf, IsInstanceOf, SamePropertyValuesAs.PropertyMatcher

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

TODO(ngd): Document.


Constructor Summary
DiagnosingMatcher()
           
 
Method Summary
 void describeMismatch(java.lang.Object item, Description mismatchDescription)
          Generate a description of why the matcher has not accepted the item.
 boolean matches(java.lang.Object item)
          Evaluates the matcher for argument item.
protected abstract  boolean matches(java.lang.Object item, Description mismatchDescription)
           
 
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

DiagnosingMatcher

public DiagnosingMatcher()
Method Detail

matches

public final boolean matches(java.lang.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, otherwise false.
See Also:
BaseMatcher

describeMismatch

public final void describeMismatch(java.lang.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 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.
mismatchDescription - The description to be built or appended to.

matches

protected abstract boolean matches(java.lang.Object item,
                                   Description mismatchDescription)