package jdave.wicket;
import org.apache.wicket.Component;
import org.hamcrest.BaseMatcher;
import org.hamcrest.Description;
import org.hamcrest.Matcher;
/**
* @author Timo Rantalaiho
*/
public class ComponentsModelMatchesTo<T extends Component> extends BaseMatcher<T> {
private final Matcher<?> matcher;
public ComponentsModelMatchesTo(Matcher<?> matcher) {
this.matcher = matcher;
}
@SuppressWarnings({"unchecked"})
public final boolean matches(Object o) {
T component = (T) o;
return matches(component);
}
protected boolean matches(T component) {
if (matcher instanceof AnyModelMatcher) {
return true;
}
return (matcher.matches(component.getDefaultModelObject()));
}
public void describeTo(Description description) {
matcher.describeTo(description);
}
}