01: package net.sourceforge.pmd.properties;
02:
03: /**
04: * Defines a datatype that supports the Integer property values.
05: *
06: * @author Brian Remedios
07: * @version $Revision$
08: */
09: public class IntegerProperty extends AbstractScalarProperty {
10:
11: /**
12: * Constructor for IntegerProperty.
13: * @param theName String
14: * @param theDescription String
15: * @param theDefault int
16: * @param theUIOrder float
17: */
18: public IntegerProperty(String theName, String theDescription,
19: int theDefault, float theUIOrder) {
20: super (theName, theDescription, theDefault, theUIOrder);
21: }
22:
23: /**
24: * Constructor for IntegerProperty.
25: * @param theName String
26: * @param theDescription String
27: * @param theDefaults int[]
28: * @param theUIOrder float
29: * @param maxCount int
30: */
31: public IntegerProperty(String theName, String theDescription,
32: int[] theDefaults, float theUIOrder, int maxCount) {
33: this (theName, theDescription, asIntegers(theDefaults),
34: theUIOrder, maxCount);
35: }
36:
37: /**
38: * Constructor for IntegerProperty.
39: * @param theName String
40: * @param theDescription String
41: * @param theDefaults Integer[]
42: * @param theUIOrder float
43: * @param maxCount int
44: */
45: public IntegerProperty(String theName, String theDescription,
46: Integer[] theDefaults, float theUIOrder, int maxCount) {
47: super (theName, theDescription, theDefaults, theUIOrder);
48:
49: maxValueCount(maxCount);
50: }
51:
52: /**
53: * Method asIntegers.
54: * @param ints int[]
55: * @return Integer[]
56: */
57: private static final Integer[] asIntegers(int[] ints) {
58: Integer[] integers = new Integer[ints.length];
59: for (int i = 0; i < ints.length; i++)
60: integers[i] = Integer.valueOf(ints[i]);
61: return integers;
62: }
63:
64: /**
65: * Method type.
66: * @return Class
67: * @see net.sourceforge.pmd.PropertyDescriptor#type()
68: */
69: public Class<Integer> type() {
70: return Integer.class;
71: }
72:
73: /**
74: * Method createFrom.
75: * @param value String
76: * @return Object
77: */
78: protected Object createFrom(String value) {
79: return Integer.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 Integer[size];
89: }
90: }
|