View Javadoc
1   package com.google.code.beanmatchers;
2   
3   import static com.google.code.beanmatchers.BeanOperations.instantiateBean;
4   
5   import org.hamcrest.Description;
6   import org.hamcrest.Matcher;
7   import org.hamcrest.TypeSafeMatcher;
8   
9   public class InstantiatingMatcherDecorator<T> extends TypeSafeMatcher<Class<T>> {
10  
11    private final Matcher<T> delegateMatcher;
12  
13    public InstantiatingMatcherDecorator(Matcher<T> matcher) {
14      this.delegateMatcher = matcher;
15    }
16  
17    @Override
18    protected boolean matchesSafely(Class<T> beanType) {
19      T beanInstance = instantiateBean(beanType);
20      return delegateMatcher.matches(beanInstance);
21    }
22  
23    @Override
24    protected void describeMismatchSafely(Class<T> beanType, Description mismatchDescription) {
25      T beanInstance = instantiateBean(beanType);
26      delegateMatcher.describeMismatch(beanInstance, mismatchDescription);
27    }
28  
29    public void describeTo(Description description) {
30      delegateMatcher.describeTo(description);
31    }
32  }