01: package net.sourceforge.pmd.properties;
02:
03: /**
04: * Defines a property type that support double property values.
05: *
06: * @author Brian Remedios
07: */
08: public class DoubleProperty extends AbstractScalarProperty {
09:
10: /**
11: * Constructor for DoubleProperty.
12: * @param theName String
13: * @param theDescription String
14: * @param theDefault double
15: * @param theUIOrder float
16: */
17: public DoubleProperty(String theName, String theDescription,
18: double theDefault, float theUIOrder) {
19: super (theName, theDescription, new Double(theDefault),
20: theUIOrder);
21: }
22:
23: /**
24: * Constructor for DoubleProperty.
25: * @param theName String
26: * @param theDescription String
27: * @param defaultValues boolean[]
28: * @param theUIOrder float
29: * @param theMaxValues int
30: */
31: public DoubleProperty(String theName, String theDescription,
32: double[] defaultValues, float theUIOrder, int theMaxValues) {
33: this (theName, theDescription, asDoubles(defaultValues),
34: theUIOrder, theMaxValues);
35: }
36:
37: /**
38: * Constructor for DoubleProperty.
39: * @param theName String
40: * @param theDescription String
41: * @param defaultValues Double[]
42: * @param theUIOrder float
43: * @param theMaxValues int
44: */
45: public DoubleProperty(String theName, String theDescription,
46: Double[] defaultValues, float theUIOrder, int theMaxValues) {
47: super (theName, theDescription, defaultValues, theUIOrder);
48:
49: maxValueCount(theMaxValues);
50: }
51:
52: /**
53: * Method type.
54: * @return Class
55: * @see net.sourceforge.pmd.PropertyDescriptor#type()
56: */
57: public Class<Double> type() {
58: return Double.class;
59: }
60:
61: /**
62: * Method asDoubles.
63: * @param doubles double[]
64: * @return Double[]
65: */
66: private static final Double[] asDoubles(double[] doubles) {
67: Double[] Doubles = new Double[doubles.length];
68: for (int i = 0; i < doubles.length; i++)
69: Doubles[i] = new Double(doubles[i]);
70: return Doubles;
71: }
72:
73: /**
74: * Method createFrom.
75: * @param value String
76: * @return Object
77: */
78: protected Object createFrom(String value) {
79: return Double.valueOf(value);
80: }
81:
82: /**
83: * Method arrayFor.
84: * @param size int
85: * @return Object[]
86: */
87: protected Object[] arrayFor(int size) {
88: return new Double[size];
89: }
90: }
|