1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.seasar.tuigwaa.util.functor;
17
18 import java.lang.reflect.InvocationTargetException;
19
20 import org.apache.commons.beanutils.PropertyUtils;
21
22 import com.isenshi.util.functor.UnaryFunction;
23
24 public class PropertyFunction implements UnaryFunction {
25
26 private String nestedField;
27
28 public PropertyFunction(String nestedField) {
29 this.nestedField = nestedField;
30 }
31
32 public Object evaluate(Object data) {
33
34 if(data == null){
35 return "";
36 }
37
38 try {
39 data = PropertyUtils.getProperty(data, nestedField);
40 } catch (IllegalAccessException e) {
41 e.printStackTrace();
42 throw new RuntimeException(e);
43 } catch (InvocationTargetException e) {
44 e.printStackTrace();
45 throw new RuntimeException(e);
46 } catch (NoSuchMethodException e) {
47 e.printStackTrace();
48 throw new RuntimeException(e);
49 }
50
51 return data;
52 }
53
54 }