View Javadoc

1   /**
2    * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
3    */
4   package net.sourceforge.pmd.lang.rule.properties;
5   
6   /**
7    * Defines a property type that supports multiple Boolean values.
8    * 
9    * @author Brian Remedios
10   */
11  public class BooleanMultiProperty extends AbstractScalarProperty<Boolean[]> {
12  	/**
13  	 * Constructor for BooleanMultiProperty that allows for multiple values.
14  	 * 
15  	 * @param theName String
16  	 * @param theDescription String
17  	 * @param defaultValues Boolean[]
18  	 * @param theUIOrder float
19  	 */
20  	public BooleanMultiProperty(String theName, String theDescription, Boolean[] defaultValues, float theUIOrder) {
21  		super(theName, theDescription, defaultValues, theUIOrder);
22  	}
23  	
24  	/**
25  	 * @return Class
26  	 * @see net.sourceforge.pmd.PropertyDescriptor#type()
27  	 */
28  	public Class<Boolean[]> type() {
29  		return Boolean[].class;
30  	}
31  
32  	/**
33  	 * @return boolean
34  	 * @see net.sourceforge.pmd.PropertyDescriptor#isMultiValue()
35  	 */
36  	@Override
37  	public boolean isMultiValue() {
38  		return true;
39  	}
40  	
41  	/**
42  	 * Creates and returns a Boolean instance from a raw string
43  	 * 
44  	 * @param value String
45  	 * @return Object
46  	 */
47  	protected Object createFrom(String value) {
48  		return Boolean.valueOf(value);
49  	}
50  
51  	/**
52  	 * @param size int
53  	 * @return Object[]
54  	 */
55  	protected Boolean[] arrayFor(int size) {
56  		return new Boolean[size];
57  	}
58  	
59      /**
60       * @return String
61       */
62      protected String defaultAsString() {
63          return asDelimitedString(defaultValue());
64      }
65  }