Package net.sourceforge.pmd.properties
Class EnumeratedProperty<E>
- java.lang.Object
-
- net.sourceforge.pmd.properties.EnumeratedProperty<E>
-
- Type Parameters:
E
- Type of the values
- All Implemented Interfaces:
Comparable<PropertyDescriptor<?>>
,EnumeratedPropertyDescriptor<E,E>
,PropertyDescriptor<E>
,SingleValuePropertyDescriptor<E>
@Deprecated public final class EnumeratedProperty<E> extends Object implements EnumeratedPropertyDescriptor<E,E>
Deprecated.Use aPropertyDescriptor<E>
instead. A builder is available fromPropertyFactory.enumProperty(String, Map)
. This class will be removed in 7.0.0.Property which can take only a fixed set of values of any type, then selected via String labels. The mappings method returns the set of mappings between the labels and their values.This property currently doesn't support serialization and cannot be defined in a ruleset file.z
- Version:
- Refactored June 2017 (6.0.0)
- Author:
- Brian Remedios, Clément Fournier
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
EnumeratedProperty.EnumPBuilder<E>
Deprecated.
-
Constructor Summary
Constructors Constructor Description EnumeratedProperty(String theName, String theDescription, String[] theLabels, E[] theChoices, int defaultIndex, float theUIOrder)
Deprecated.EnumeratedProperty(String theName, String theDescription, String[] theLabels, E[] theChoices, int defaultIndex, Class<E> valueType, float theUIOrder)
Deprecated.EnumeratedProperty(String theName, String theDescription, Map<String,E> labelsToChoices, E defaultValue, Class<E> valueType, float theUIOrder)
Deprecated.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected void
addAttributesTo(Map<PropertyDescriptorField,String> attributes)
Adds this property's attributes to the map.String
asDelimitedString(T value)
Deprecated.Formats the object onto a string suitable for storage within the property map.String
asString(E value)
Deprecated.Returns a string representation of the value, even if it's null.Map<PropertyDescriptorField,String>
attributeValuesById()
Returns a map representing all the property attributes of the receiver in string form.int
compareTo(PropertyDescriptor<?> otherProperty)
E
createFrom(String value)
Deprecated.Parse a string and returns an instance of a value.protected String
defaultAsString()
Deprecated.Returns a string representation of the default value.T
defaultValue()
Deprecated.Default value to use when the user hasn't specified one or when they wish to revert to a known-good state.String
description()
Describes the property and the role it plays within the rule it is specified for.boolean
equals(Object obj)
String
errorFor(E value)
Deprecated.Validation function that returns a diagnostic error message for a sample property value.int
hashCode()
boolean
isDefinedExternally()
True if this descriptor was defined in the ruleset xml.boolean
isMultiValue()
Deprecated.Returns whether the property is multi-valued, i.e.Map<String,E>
mappings()
Deprecated.Returns an immutable map of the label - value mappings defined by this descriptor.String
name()
The name of the property without spaces as it serves as the key into the property map.static <E> EnumeratedProperty.EnumPBuilder<E>
named(String name)
Deprecated.int
preferredRowCount()
If the datatype is a String then return the preferred number of rows to allocate in the text widget, returns a value of one for all other types.String
propertyErrorFor(Rule rule)
Deprecated.A convenience method that returns an error string if the rule holds onto a property value that has a problem.String
toString()
Class<E>
type()
Deprecated.Denotes the value datatype.float
uiOrder()
Denotes the relative order the property field should occupy if we are using an auto-generated UI to display and edit property values.protected String
valueErrorFor(T value)
Deprecated.Checks the value for an error.T
valueFrom(String valueString)
Deprecated.Returns the value represented by this string.-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface net.sourceforge.pmd.properties.PropertyDescriptor
asDelimitedString, attributeValuesById, compareTo, defaultValue, description, isDefinedExternally, isMultiValue, name, preferredRowCount, propertyErrorFor, uiOrder, valueFrom
-
-
-
-
Constructor Detail
-
EnumeratedProperty
@Deprecated public EnumeratedProperty(String theName, String theDescription, String[] theLabels, E[] theChoices, int defaultIndex, Class<E> valueType, float theUIOrder)
Deprecated.Constructor using arrays to define the label-value mappings. The correct construction of the property depends on the correct ordering of the arrays.- Parameters:
theName
- NametheDescription
- DescriptiontheLabels
- Labels of the choicestheChoices
- Values that can be chosendefaultIndex
- The index of the default valuevalueType
- Type of the valuestheUIOrder
- UI order
-
EnumeratedProperty
@Deprecated public EnumeratedProperty(String theName, String theDescription, String[] theLabels, E[] theChoices, int defaultIndex, float theUIOrder)
Deprecated.Constructor using arrays to define the label-value mappings. The correct construction of the property depends on the correct ordering of the arrays.- Parameters:
theName
- NametheDescription
- DescriptiontheLabels
- Labels of the choicestheChoices
- Values that can be chosendefaultIndex
- Index of the default valuetheUIOrder
- UI order
-
EnumeratedProperty
@Deprecated public EnumeratedProperty(String theName, String theDescription, Map<String,E> labelsToChoices, E defaultValue, Class<E> valueType, float theUIOrder)
Deprecated.Constructor using a map to define the label-value mappings.- Parameters:
theName
- NametheDescription
- DescriptionlabelsToChoices
- Map of labels to valuesdefaultValue
- Default valuevalueType
- Type of the valuestheUIOrder
- UI order
-
-
Method Detail
-
type
public Class<E> type()
Deprecated.Description copied from interface:PropertyDescriptor
Denotes the value datatype. For multi value properties, this is not the List class but the list's component class.- Specified by:
type
in interfacePropertyDescriptor<E>
- Specified by:
type
in interfaceSingleValuePropertyDescriptor<E>
- Returns:
- Class literal of the value type
-
errorFor
public String errorFor(E value)
Deprecated.Description copied from interface:PropertyDescriptor
Validation function that returns a diagnostic error message for a sample property value. Returns null if the value is acceptable.- Specified by:
errorFor
in interfacePropertyDescriptor<E>
- Parameters:
value
- The value to check.- Returns:
- A diagnostic message.
-
createFrom
public E createFrom(String value) throws IllegalArgumentException
Deprecated.Parse a string and returns an instance of a value.- Parameters:
value
- String to parse- Returns:
- An instance of a value
- Throws:
IllegalArgumentException
-
asString
public String asString(E value)
Deprecated.Returns a string representation of the value, even if it's null.- Parameters:
value
- The value to describe- Returns:
- A string representation of the value
-
mappings
public Map<String,E> mappings()
Deprecated.Description copied from interface:EnumeratedPropertyDescriptor
Returns an immutable map of the label - value mappings defined by this descriptor.- Specified by:
mappings
in interfaceEnumeratedPropertyDescriptor<E,E>
- Returns:
- an immutable map of the label - value mappings defined by this descriptor.
-
named
@Deprecated public static <E> EnumeratedProperty.EnumPBuilder<E> named(String name)
Deprecated.
-
defaultValue
public final T defaultValue()
Deprecated.Description copied from interface:PropertyDescriptor
Default value to use when the user hasn't specified one or when they wish to revert to a known-good state.- Specified by:
defaultValue
in interfacePropertyDescriptor<T>
- Returns:
- Object
-
isMultiValue
public final boolean isMultiValue()
Deprecated.Description copied from interface:PropertyDescriptor
Returns whether the property is multi-valued, i.e. an array of strings,As unary property rule properties will return a value of one, you must use the get/setProperty accessors when working with the actual values. When working with multi-value properties then the get/setProperties accessors must be used.
- Specified by:
isMultiValue
in interfacePropertyDescriptor<T>
- Returns:
- boolean
-
asDelimitedString
public String asDelimitedString(T value)
Deprecated.Description copied from interface:PropertyDescriptor
Formats the object onto a string suitable for storage within the property map.- Specified by:
asDelimitedString
in interfacePropertyDescriptor<T>
- Parameters:
value
- Object- Returns:
- String
-
propertyErrorFor
public String propertyErrorFor(Rule rule)
Deprecated.Description copied from interface:PropertyDescriptor
A convenience method that returns an error string if the rule holds onto a property value that has a problem. Returns null otherwise.- Specified by:
propertyErrorFor
in interfacePropertyDescriptor<T>
- Parameters:
rule
- Rule- Returns:
- String
-
valueErrorFor
protected String valueErrorFor(T value)
Deprecated.Checks the value for an error.- Parameters:
value
- Value to check- Returns:
- A diagnostic error message, or null if there's no problem
-
defaultAsString
protected final String defaultAsString()
Deprecated.Returns a string representation of the default value.- Returns:
- A string representation of the default value.
-
valueFrom
public final T valueFrom(String valueString) throws IllegalArgumentException
Deprecated.Description copied from interface:PropertyDescriptor
Returns the value represented by this string.- Specified by:
valueFrom
in interfacePropertyDescriptor<T>
- Parameters:
valueString
- The string to parse- Returns:
- The value represented by the string
- Throws:
IllegalArgumentException
- if the given string cannot be parsed
-
description
public String description()
Description copied from interface:PropertyDescriptor
Describes the property and the role it plays within the rule it is specified for. Could be used in a tooltip.- Specified by:
description
in interfacePropertyDescriptor<T>
- Returns:
- String
-
uiOrder
public float uiOrder()
Description copied from interface:PropertyDescriptor
Denotes the relative order the property field should occupy if we are using an auto-generated UI to display and edit property values. If the value returned has a non-zero fractional part then this is can be used to place adjacent fields on the same row.- Specified by:
uiOrder
in interfacePropertyDescriptor<T>
- Returns:
- The relative order compared to other properties of the same rule
-
compareTo
public final int compareTo(PropertyDescriptor<?> otherProperty)
- Specified by:
compareTo
in interfaceComparable<T>
- Specified by:
compareTo
in interfacePropertyDescriptor<T>
-
preferredRowCount
public int preferredRowCount()
Description copied from interface:PropertyDescriptor
If the datatype is a String then return the preferred number of rows to allocate in the text widget, returns a value of one for all other types. Useful for multi-line XPATH editors.- Specified by:
preferredRowCount
in interfacePropertyDescriptor<T>
- Returns:
- int
-
name
public String name()
Description copied from interface:PropertyDescriptor
The name of the property without spaces as it serves as the key into the property map.- Specified by:
name
in interfacePropertyDescriptor<T>
- Returns:
- String
-
attributeValuesById
public final Map<PropertyDescriptorField,String> attributeValuesById()
Description copied from interface:PropertyDescriptor
Returns a map representing all the property attributes of the receiver in string form.- Specified by:
attributeValuesById
in interfacePropertyDescriptor<T>
- Returns:
- map
-
addAttributesTo
protected void addAttributesTo(Map<PropertyDescriptorField,String> attributes)
Adds this property's attributes to the map. Subclasses can override this to add morePropertyDescriptorField
.- Parameters:
attributes
- The map to fill
-
isDefinedExternally
public boolean isDefinedExternally()
Description copied from interface:PropertyDescriptor
True if this descriptor was defined in the ruleset xml. This precision is necessary for theRuleSetWriter
to write out the property correctly: if it was defined externally, then its definition must be written out, otherwise only its value.- Specified by:
isDefinedExternally
in interfacePropertyDescriptor<T>
- Returns:
- True if the descriptor was defined in xml
-
-