org.hamcrest.core

## Class CombinableMatcher<T>

- java.lang.Object
- - org.hamcrest.BaseMatcher<T>
  - - org.hamcrest.TypeSafeDiagnosingMatcher<T>
    - - org.hamcrest.core.CombinableMatcher<T>

- All Implemented Interfaces:
    Matcher<T>, SelfDescribing

      public class CombinableMatcher<T>
      extends TypeSafeDiagnosingMatcher<T>

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `CombinableMatcher.CombinableBothMatcher<X>`
    `static class` | `CombinableMatcher.CombinableEitherMatcher<X>`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CombinableMatcher(Matcher<? super T> matcher)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `CombinableMatcher<T>` | `and(Matcher<? super T> other)`
    `static <LHS> CombinableMatcher.CombinableBothMatcher<LHS>` | `both(Matcher<? super LHS> matcher)` Creates a matcher that matches when both of the specified matchers match the examined object.
    `void` | `describeTo(Description description)` Generates a description of the object.
    `static <LHS> CombinableMatcher.CombinableEitherMatcher<LHS>` | `either(Matcher<? super LHS> matcher)` Creates a matcher that matches when either of the specified matchers match the examined object.
    `protected boolean` | `matchesSafely(T item, Description mismatch)` Subclasses should implement this.
    `CombinableMatcher<T>` | `or(Matcher<? super T> other)`

    - ### Methods inherited from class org.hamcrest.TypeSafeDiagnosingMatcher

      `describeMismatch, matches`

    - ### 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`

- - ### Constructor Detail

    - #### CombinableMatcher

          public CombinableMatcher(Matcher<? super T> matcher)

  - ### Method Detail

    - #### matchesSafely

          protected boolean matchesSafely(T item,
                              Description mismatch)

      Description copied from class: `TypeSafeDiagnosingMatcher`
      Subclasses should implement this. The item will already have been checked for the specific type and will never be null.
      Specified by:
        `matchesSafely` in class `TypeSafeDiagnosingMatcher<T>`

    - #### describeTo

          public void describeTo(Description description)

      Description copied from interface: `SelfDescribing`
      Generates a description of the object. The description may be part of a a description of a larger object of which this is just a component, so it should be worded appropriately.
      Parameters:
        `description` - The description to be built or appended to.

    - #### and

          public CombinableMatcher<T> and(Matcher<? super T> other)

    - #### or

          public CombinableMatcher<T> or(Matcher<? super T> other)

    - #### both

          public static <LHS> CombinableMatcher.CombinableBothMatcher<LHS> both(Matcher<? super LHS> matcher)

      Creates a matcher that matches when both of the specified matchers match the examined object.

      For example:

          assertThat("fab", both(containsString("a")).and(containsString("b")))

    - #### either

          public static <LHS> CombinableMatcher.CombinableEitherMatcher<LHS> either(Matcher<? super LHS> matcher)

      Creates a matcher that matches when either of the specified matchers match the examined object.

      For example:

          assertThat("fan", either(containsString("a")).and(containsString("b")))