|
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 |
| } |