package org.junit.internal.matchers; import static org.hamcrest.CoreMatchers.allOf; import static org.hamcrest.CoreMatchers.anyOf; import org.hamcrest.BaseMatcher; import org.hamcrest.Description; import org.hamcrest.Matcher; public class CombinableMatcher extends BaseMatcher { private final Matcher fMatcher; public CombinableMatcher(Matcher matcher) { fMatcher= matcher; } public boolean matches(Object item) { return fMatcher.matches(item); } public void describeTo(Description description) { description.appendDescriptionOf(fMatcher); } @SuppressWarnings("unchecked") public CombinableMatcher and(Matcher matcher) { return new CombinableMatcher(allOf(matcher, fMatcher)); } @SuppressWarnings("unchecked") public CombinableMatcher or(Matcher matcher) { return new CombinableMatcher(anyOf(matcher, fMatcher)); } }