1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.apache.struts2.s1;
23
24 import java.io.Serializable;
25 import org.apache.commons.beanutils.DynaBean;
26 import org.apache.commons.beanutils.DynaClass;
27 import ognl.OgnlException;
28 import ognl.PropertyAccessor;
29 import ognl.OgnlContext;
30
31 import java.util.Map;
32
33 /***
34 * Provides access to DynaBean properties in OGNL
35 */
36 public class DynaBeanPropertyAccessor implements PropertyAccessor {
37 /***
38 * Used by OGNL to generate bytecode
39 */
40 public String getSourceAccessor(OgnlContext ognlContext, Object o, Object o1) {
41 return null;
42 }
43
44 /***
45 * Used by OGNL to generate bytecode
46 */
47 public String getSourceSetter(OgnlContext ognlContext, Object o, Object o1) {
48 return null;
49 }
50
51 public Object getProperty(Map context, Object target, Object name) throws OgnlException {
52
53 if (target instanceof DynaBean && name != null) {
54 DynaBean bean = (DynaBean)target;
55 DynaClass cls = bean.getDynaClass();
56 String key = name.toString();
57 if (cls.getDynaProperty(key) != null) {
58 return bean.get(key);
59 }
60 }
61 return null;
62 }
63
64 public void setProperty(Map context, Object target, Object name, Object value) throws OgnlException {
65
66 if (target instanceof DynaBean && name != null) {
67 DynaBean bean = (DynaBean)target;
68 String key = name.toString();
69 bean.set(key, value);
70 }
71 }
72
73 }