Package org.hamcrest

Class TypeSafeMatcher<T>

java.lang.Object
org.hamcrest.BaseMatcher<T>
org.hamcrest.TypeSafeMatcher<T>
Type Parameters:
T - the matcher type.
All Implemented Interfaces:
Matcher<T>, SelfDescribing
Direct Known Subclasses:
ArrayAsIterableMatcher, BigDecimalCloseTo, CustomTypeSafeMatcher, HasItemInArray, HasProperty, IsArray, IsArrayContainingInAnyOrder, IsArrayContainingInOrder, IsBlankString, IsCloseTo, IsCompatibleType, IsEmptyCollection, IsEmptyIterable, IsEmptyString, IsEqualCompressingWhiteSpace, IsEqualIgnoringCase, IsMapContaining, IsNaN, MatchesPattern, StringContainsInOrder, 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 Details

    • 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(org.hamcrest.internal.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 Details

    • matchesSafely

      protected abstract boolean matchesSafely(T item)
      Check if the item matches. The item will already have been checked for the specific type and will never be null. Subclasses should implement this.
      Parameters:
      item - the type safe item to match against.
      Returns:
      boolean true/false depending if item matches matcher.
    • describeMismatchSafely

      protected void describeMismatchSafely(T item, Description mismatchDescription)
      Describe the mismatch. The item will already have been checked for the specific type and will never be null. Subclasses should override this.
      Parameters:
      item - the type safe item to match against.
      mismatchDescription - the mismatch description.
    • 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 type safe item to match against.
      Returns:
      true if item matches, otherwise false.
      See Also:
    • 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.