1/* Copyright (c) 2000-2006 hamcrest.org 2 */ 3package org.hamcrest.core; 4 5import org.hamcrest.Description; 6import org.hamcrest.Matcher; 7import org.hamcrest.Factory; 8import org.hamcrest.BaseMatcher; 9 10 11/** 12 * Tests whether the value is an instance of a class. 13 */ 14public class IsInstanceOf extends BaseMatcher<Object> { 15 private final Class<?> theClass; 16 17 /** 18 * Creates a new instance of IsInstanceOf 19 * 20 * @param theClass The predicate evaluates to true for instances of this class 21 * or one of its subclasses. 22 */ 23 public IsInstanceOf(Class<?> theClass) { 24 this.theClass = theClass; 25 } 26 27 public boolean matches(Object item) { 28 return theClass.isInstance(item); 29 } 30 31 public void describeTo(Description description) { 32 description.appendText("an instance of ") 33 .appendText(theClass.getName()); 34 } 35 36 /** 37 * Is the value an instance of a particular type? 38 */ 39 @Factory 40 public static Matcher<Object> instanceOf(Class<?> type) { 41 return new IsInstanceOf(type); 42 } 43 44} 45