diff options
Diffstat (limited to 'hamcrest-library/src/main/java/org/hamcrest/object/IsCompatibleType.java')
-rw-r--r-- | hamcrest-library/src/main/java/org/hamcrest/object/IsCompatibleType.java | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/hamcrest-library/src/main/java/org/hamcrest/object/IsCompatibleType.java b/hamcrest-library/src/main/java/org/hamcrest/object/IsCompatibleType.java new file mode 100644 index 0000000..3a2dc7a --- /dev/null +++ b/hamcrest-library/src/main/java/org/hamcrest/object/IsCompatibleType.java @@ -0,0 +1,27 @@ +package org.hamcrest.object; + +import org.hamcrest.Description; +import org.hamcrest.Matcher; +import org.hamcrest.Factory; +import org.hamcrest.TypeSafeMatcher; + +public class IsCompatibleType<T> extends TypeSafeMatcher<Class<?>> { + private final Class<T> type; + + public IsCompatibleType(Class<T> type) { + this.type = type; + } + + public boolean matchesSafely(Class<?> cls) { + return type.isAssignableFrom(cls); + } + + public void describeTo(Description description) { + description.appendText("type < ").appendText(type.getName()); + } + + @Factory + public static <T> Matcher<Class<?>> typeCompatibleWith(Class<T> baseType) { + return new IsCompatibleType<T>(baseType); + } +} |