1package org.junit.internal.matchers;
2
3import org.hamcrest.Description;
4
5public abstract class SubstringMatcher extends TypeSafeMatcher<String> {
6
7    protected final String substring;
8
9    protected SubstringMatcher(final String substring) {
10        this.substring = substring;
11    }
12
13    @Override
14	public boolean matchesSafely(String item) {
15        return evalSubstringOf(item);
16    }
17
18    public void describeTo(Description description) {
19        description.appendText("a string ")
20                .appendText(relationship())
21                .appendText(" ")
22                .appendValue(substring);
23    }
24
25    protected abstract boolean evalSubstringOf(String string);
26
27    protected abstract String relationship();
28}