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 classEnumeratedProperty.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 voidaddAttributesTo(Map<PropertyDescriptorField,String> attributes)Adds this property's attributes to the map.StringasDelimitedString(T value)Deprecated.Formats the object onto a string suitable for storage within the property map.StringasString(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.intcompareTo(PropertyDescriptor<?> otherProperty)EcreateFrom(String value)Deprecated.Parse a string and returns an instance of a value.protected StringdefaultAsString()Deprecated.Returns a string representation of the default value.TdefaultValue()Deprecated.Default value to use when the user hasn't specified one or when they wish to revert to a known-good state.Stringdescription()Describes the property and the role it plays within the rule it is specified for.booleanequals(Object obj)StringerrorFor(E value)Deprecated.Validation function that returns a diagnostic error message for a sample property value.inthashCode()booleanisDefinedExternally()True if this descriptor was defined in the ruleset xml.booleanisMultiValue()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.Stringname()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.intpreferredRowCount()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.StringpropertyErrorFor(Rule rule)Deprecated.A convenience method that returns an error string if the rule holds onto a property value that has a problem.StringtoString()Class<E>type()Deprecated.Denotes the value datatype.floatuiOrder()Denotes the relative order the property field should occupy if we are using an auto-generated UI to display and edit property values.protected StringvalueErrorFor(T value)Deprecated.Checks the value for an error.TvalueFrom(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:PropertyDescriptorDenotes the value datatype. For multi value properties, this is not the List class but the list's component class.- Specified by:
typein interfacePropertyDescriptor<E>- Specified by:
typein interfaceSingleValuePropertyDescriptor<E>- Returns:
- Class literal of the value type
-
errorFor
public String errorFor(E value)
Deprecated.Description copied from interface:PropertyDescriptorValidation function that returns a diagnostic error message for a sample property value. Returns null if the value is acceptable.- Specified by:
errorForin 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:EnumeratedPropertyDescriptorReturns an immutable map of the label - value mappings defined by this descriptor.- Specified by:
mappingsin 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:PropertyDescriptorDefault value to use when the user hasn't specified one or when they wish to revert to a known-good state.- Specified by:
defaultValuein interfacePropertyDescriptor<T>- Returns:
- Object
-
isMultiValue
public final boolean isMultiValue()
Deprecated.Description copied from interface:PropertyDescriptorReturns 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:
isMultiValuein interfacePropertyDescriptor<T>- Returns:
- boolean
-
asDelimitedString
public String asDelimitedString(T value)
Deprecated.Description copied from interface:PropertyDescriptorFormats the object onto a string suitable for storage within the property map.- Specified by:
asDelimitedStringin interfacePropertyDescriptor<T>- Parameters:
value- Object- Returns:
- String
-
propertyErrorFor
public String propertyErrorFor(Rule rule)
Deprecated.Description copied from interface:PropertyDescriptorA convenience method that returns an error string if the rule holds onto a property value that has a problem. Returns null otherwise.- Specified by:
propertyErrorForin 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:PropertyDescriptorReturns the value represented by this string.- Specified by:
valueFromin 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:PropertyDescriptorDescribes the property and the role it plays within the rule it is specified for. Could be used in a tooltip.- Specified by:
descriptionin interfacePropertyDescriptor<T>- Returns:
- String
-
uiOrder
public float uiOrder()
Description copied from interface:PropertyDescriptorDenotes 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:
uiOrderin interfacePropertyDescriptor<T>- Returns:
- The relative order compared to other properties of the same rule
-
compareTo
public final int compareTo(PropertyDescriptor<?> otherProperty)
- Specified by:
compareToin interfaceComparable<T>- Specified by:
compareToin interfacePropertyDescriptor<T>
-
preferredRowCount
public int preferredRowCount()
Description copied from interface:PropertyDescriptorIf 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:
preferredRowCountin interfacePropertyDescriptor<T>- Returns:
- int
-
name
public String name()
Description copied from interface:PropertyDescriptorThe name of the property without spaces as it serves as the key into the property map.- Specified by:
namein interfacePropertyDescriptor<T>- Returns:
- String
-
attributeValuesById
public final Map<PropertyDescriptorField,String> attributeValuesById()
Description copied from interface:PropertyDescriptorReturns a map representing all the property attributes of the receiver in string form.- Specified by:
attributeValuesByIdin 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:PropertyDescriptorTrue if this descriptor was defined in the ruleset xml. This precision is necessary for theRuleSetWriterto write out the property correctly: if it was defined externally, then its definition must be written out, otherwise only its value.- Specified by:
isDefinedExternallyin interfacePropertyDescriptor<T>- Returns:
- True if the descriptor was defined in xml
-
-