/* * Hibernate, Relational Persistence for Idiomatic Java * * License: GNU Lesser General Public License (LGPL), version 2.1 or later * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html */ package org.hibernate.sqm.test; import org.hamcrest.CustomMatcher; import org.hamcrest.Matcher; /** * @author Steve Ebersole */ public class CustomAssignableFromMatcher extends CustomMatcher<Class> { private final Class check; public static Matcher<Class> isCastableAs(Class check) { return new CustomAssignableFromMatcher( check ); } public CustomAssignableFromMatcher(Class check) { super( "<an instance assignable from [" + check + "]>" ); this.check = check; } @Override public boolean matches(Object item) { if ( item == null ) { return false; } if ( item instanceof Class ) { return check.isAssignableFrom( (Class) item ); } else { return check.isInstance( item ); } } }