/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.lang.rule.properties;
import java.util.Map;
import net.sourceforge.pmd.PropertyDescriptorFactory;
import net.sourceforge.pmd.lang.rule.properties.factories.BasicPropertyDescriptorFactory;
/**
* Defines a property type that supports single Boolean values.
*
* @author Brian Remedios
*/
public class BooleanProperty extends AbstractScalarProperty<Boolean> {
public static final PropertyDescriptorFactory FACTORY = new BasicPropertyDescriptorFactory<BooleanProperty>(
Boolean.class) {
@Override
public BooleanProperty createWith(Map<String, String> valuesById) {
return new BooleanProperty(nameIn(valuesById), descriptionIn(valuesById),
Boolean.valueOf(defaultValueIn(valuesById)), 0f);
}
};
/**
* Constructor for BooleanProperty limited to a single value.
*
* @param theName
* String
* @param theDescription
* String
* @param defaultValue
* boolean
* @param theUIOrder
* float
*/
public BooleanProperty(String theName, String theDescription, Boolean defaultValue, float theUIOrder) {
super(theName, theDescription, Boolean.valueOf(defaultValue), theUIOrder);
}
/**
* Constructor for BooleanProperty limited to a single value. Converts
* default argument string into a boolean.
*
* @param theName
* String
* @param theDescription
* String
* @param defaultBoolStr
* String
* @param theUIOrder
* float
*/
public BooleanProperty(String theName, String theDescription, String defaultBoolStr, float theUIOrder) {
this(theName, theDescription, Boolean.valueOf(defaultBoolStr), theUIOrder);
}
/**
* @return Class
* @see net.sourceforge.pmd.PropertyDescriptor#type()
*/
@Override
public Class<Boolean> type() {
return Boolean.class;
}
/**
* @return String
*/
@Override
protected String defaultAsString() {
return Boolean.toString(defaultValue());
}
/**
* Creates and returns a Boolean instance from a raw string
*
* @param value
* String
* @return Object
*/
@Override
protected Object createFrom(String value) {
return Boolean.valueOf(value);
}
}