View Javadoc
1   package com.google.code.beanmatchers;
2   
3   import static java.util.Arrays.asList;
4   
5   import java.util.List;
6   import org.hamcrest.Description;
7   
8   public class HasValidGettersAndSettersExcludingMatcher<T> extends AbstractBeanAccessorMatcher<T> {
9     private List<String> excludedProperties;
10  
11    HasValidGettersAndSettersExcludingMatcher(
12        TypeBasedValueGenerator valueGenerator, String... excludedProperties) {
13      super(valueGenerator);
14      this.excludedProperties = asList(excludedProperties);
15    }
16  
17    @Override
18    protected boolean matches(Object item, Description mismatchDescription) {
19      JavaBean bean = new JavaBean(item);
20      List<String> properties = bean.properties();
21      properties.removeAll(excludedProperties);
22      return super.beanHasValidGetterAndSetterForProperties(bean, properties, mismatchDescription);
23    }
24  
25    @Override
26    public void describeTo(Description description) {
27      if (excludedProperties.isEmpty()) {
28        description.appendText("bean with valid setter and getter methods for all properties");
29      } else {
30        description.appendText(
31            "bean with valid setter and getter methods for all properties excluding ");
32        description.appendValue(excludedProperties);
33      }
34    }
35  }