1 |
| package photospace.beans; |
2 |
| |
3 |
| import org.apache.commons.collections.*; |
4 |
| import org.springframework.beans.*; |
5 |
| |
6 |
| public class PropertyValuePredicate |
7 |
| implements Predicate |
8 |
| { |
9 |
| private String property; |
10 |
| private Object value; |
11 |
| |
12 |
5
| public PropertyValuePredicate(String property, Object value)
|
13 |
| { |
14 |
5
| this.property = property;
|
15 |
5
| this.value = value;
|
16 |
| } |
17 |
| |
18 |
15
| public boolean evaluate(Object obj)
|
19 |
| { |
20 |
15
| BeanWrapper wrapper = new BeanWrapperImpl(obj);
|
21 |
15
| Object objValue = wrapper.getPropertyValue(property);
|
22 |
| |
23 |
0
| if (value == null && objValue == null) return true;
|
24 |
0
| if (value == null || objValue == null) return false;
|
25 |
| |
26 |
15
| if (value instanceof Comparable && objValue instanceof Comparable)
|
27 |
15
| return ((Comparable) value).compareTo(objValue) == 0;
|
28 |
| |
29 |
0
| return value.equals(objValue);
|
30 |
| } |
31 |
| } |