comparison src/main/java/org/msgpack/template/builder/BeansFieldEntry.java @ 0:cb825acd883a

first commit
author sugi
date Sat, 18 Oct 2014 15:06:15 +0900
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:cb825acd883a
1 package org.msgpack.template.builder;
2
3 import java.lang.reflect.InvocationTargetException;
4 import java.lang.reflect.Type;
5
6 import org.msgpack.MessageTypeException;
7 import org.msgpack.template.FieldOption;
8 import org.msgpack.template.builder.beans.PropertyDescriptor;
9
10 public class BeansFieldEntry extends FieldEntry {
11
12 protected PropertyDescriptor desc;
13
14 public BeansFieldEntry() {
15 super();
16 }
17
18 public BeansFieldEntry(final BeansFieldEntry e) {
19 super(e.option);
20 this.desc = e.getPropertyDescriptor();
21 }
22
23 public BeansFieldEntry(final PropertyDescriptor desc) {
24 this(desc, FieldOption.DEFAULT);
25 }
26
27 public BeansFieldEntry(final PropertyDescriptor desc, final FieldOption option) {
28 super(option);
29 this.desc = desc;
30 }
31
32 public String getGetterName() {
33 return getPropertyDescriptor().getReadMethod().getName();
34 }
35
36 public String getSetterName() {
37 return getPropertyDescriptor().getWriteMethod().getName();
38 }
39
40 public PropertyDescriptor getPropertyDescriptor() {
41 return desc;
42 }
43
44 @Override
45 public String getName() {
46 return getPropertyDescriptor().getDisplayName();
47 }
48
49 @Override
50 public Class<?> getType() {
51 return getPropertyDescriptor().getPropertyType();
52 }
53
54 @Override
55 public Type getGenericType() {
56 return getPropertyDescriptor().getReadMethod().getGenericReturnType();
57 }
58
59 @Override
60 public Object get(Object target) {
61 try {
62 return getPropertyDescriptor().getReadMethod().invoke(target);
63 } catch (IllegalArgumentException e) {
64 throw new MessageTypeException(e);
65 } catch (IllegalAccessException e) {
66 throw new MessageTypeException(e);
67 } catch (InvocationTargetException e) {
68 throw new MessageTypeException(e);
69 }
70 }
71
72 @Override
73 public void set(Object target, Object value) {
74 try {
75 getPropertyDescriptor().getWriteMethod().invoke(target, value);
76 } catch (IllegalArgumentException e) {
77 throw new MessageTypeException(e);
78 } catch (IllegalAccessException e) {
79 throw new MessageTypeException(e);
80 } catch (InvocationTargetException e) {
81 throw new MessageTypeException(e);
82 }
83 }
84 }