1 package net.sourceforge.pmd.lang.rule.properties;
2
3 import java.util.Map;
4
5 import net.sourceforge.pmd.PropertyDescriptor;
6 import net.sourceforge.pmd.Rule;
7
8
9
10
11
12
13
14
15
16
17 public class PropertyDescriptorWrapper<T> implements PropertyDescriptor<T> {
18 private final PropertyDescriptor<T> propertyDescriptor;
19
20 public PropertyDescriptorWrapper(PropertyDescriptor<T> propertyDescriptor) {
21 if (propertyDescriptor == null) {
22 throw new IllegalArgumentException("PropertyDescriptor cannot be null.");
23 }
24 this.propertyDescriptor = propertyDescriptor;
25 }
26
27 public PropertyDescriptor<T> getPropertyDescriptor() {
28 return propertyDescriptor;
29 }
30
31 public String asDelimitedString(T value) {
32 return propertyDescriptor.asDelimitedString(value);
33 }
34
35 public Object[][] choices() {
36 return propertyDescriptor.choices();
37 }
38
39 public int compareTo(PropertyDescriptor<?> o) {
40 return propertyDescriptor.compareTo(o);
41 }
42
43 public T defaultValue() {
44 return propertyDescriptor.defaultValue();
45 }
46
47 public String description() {
48 return propertyDescriptor.description();
49 }
50
51 public String errorFor(Object value) {
52 return propertyDescriptor.errorFor(value);
53 }
54
55 public boolean isMultiValue() {
56 return propertyDescriptor.isMultiValue();
57 }
58
59 public boolean isRequired() {
60 return propertyDescriptor.isRequired();
61 }
62
63 public char multiValueDelimiter() {
64 return propertyDescriptor.multiValueDelimiter();
65 }
66
67 public String name() {
68 return propertyDescriptor.name();
69 }
70
71 public int preferredRowCount() {
72 return propertyDescriptor.preferredRowCount();
73 }
74
75 public String propertyErrorFor(Rule rule) {
76 return propertyDescriptor.propertyErrorFor(rule);
77 }
78
79 public Class<T> type() {
80 return propertyDescriptor.type();
81 }
82
83 public float uiOrder() {
84 return propertyDescriptor.uiOrder();
85 }
86
87 public T valueFrom(String propertyString) throws IllegalArgumentException {
88 return propertyDescriptor.valueFrom(propertyString);
89 }
90
91 public Map<String, String> attributeValuesById() {
92 return propertyDescriptor.attributeValuesById();
93 }
94
95 @Override
96 public boolean equals(Object obj) {
97 if (obj instanceof PropertyDescriptorWrapper) {
98 return this.getPropertyDescriptor().equals(((PropertyDescriptorWrapper<?>) obj).getPropertyDescriptor());
99 }
100 return this.getPropertyDescriptor().equals(obj);
101 }
102
103 @Override
104 public int hashCode() {
105 return this.getPropertyDescriptor().hashCode();
106 }
107
108 @Override
109 public String toString() {
110 return "wrapped:" + propertyDescriptor.toString();
111 }
112 }