001package org.hamcrest;
002
003/**
004 * TODO(ngd): Document.
005 *
006 * @param <T>
007 */
008public abstract class DiagnosingMatcher<T> extends BaseMatcher<T> {
009
010    @Override
011    public final boolean matches(Object item) {
012        return matches(item, Description.NONE);
013    }
014
015    @Override
016    public final void describeMismatch(Object item, Description mismatchDescription) {
017        matches(item, mismatchDescription);
018    }
019
020    protected abstract boolean matches(Object item, Description mismatchDescription);
021}