1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.commons.clazz.bean;
17
18 import org.apache.commons.clazz.Clazz;
19 import org.apache.commons.clazz.ClazzProperty;
20 import org.apache.commons.clazz.common.ClazzFeatureSupport;
21
22
23
24
25
26
27 public class BeanClazzProperty extends ClazzFeatureSupport
28 implements ClazzProperty
29 {
30
31 private String name;
32 private String clazzName;
33 private String type;
34 private Clazz clazz;
35
36 public BeanClazzProperty(Clazz declaringClazz, String name) {
37 this(declaringClazz, name, Object.class.getName());
38 }
39
40 public BeanClazzProperty(Clazz declaringClazz, String name, String type) {
41 super(declaringClazz);
42 this.name = name;
43 this.clazzName = type;
44 }
45
46
47
48
49 public String getName() {
50 return name;
51 }
52
53
54
55
56 public Clazz getClazz() {
57 if (clazz == null) {
58 clazz =
59 getDeclaringClazz().getClazzLoader().getClazzForName(clazzName);
60 }
61 return clazz;
62 }
63
64
65
66
67 public boolean isCollection() {
68 return false;
69 }
70
71
72
73
74 public boolean isMap() {
75 return false;
76 }
77
78
79
80
81 public Clazz getContentClazz() {
82 return null;
83 }
84
85
86
87
88 public Clazz getKeyClazz() {
89 return null;
90 }
91
92
93
94
95 public boolean isReadOnly() {
96 return false;
97 }
98
99
100
101
102 public Object get(Object instance) {
103 return ((Bean) instance).get(getName());
104 }
105
106
107
108
109 public void set(Object instance, Object value) {
110 ((Bean) instance).set(getName(), value);
111 }
112
113 }