org.opends.server.admin
Class EnumPropertyDefinition<E extends java.lang.Enum<E>>

java.lang.Object
  extended by org.opends.server.admin.PropertyDefinition<E>
      extended by org.opends.server.admin.EnumPropertyDefinition<E>
Type Parameters:
E - The enumeration that should be used for values of this property definition.
All Implemented Interfaces:
java.lang.Comparable<PropertyDefinition<?>>, java.util.Comparator<E>

public final class EnumPropertyDefinition<E extends java.lang.Enum<E>>
extends PropertyDefinition<E>

Enumeration property definition.


Nested Class Summary
static class EnumPropertyDefinition.Builder<E extends java.lang.Enum<E>>
          An interface for incrementally constructing enumeration property definitions.
 
Nested classes/interfaces inherited from class org.opends.server.admin.PropertyDefinition
PropertyDefinition.AbstractBuilder<T,D extends PropertyDefinition<T>>
 
Method Summary
<R,P> R
accept(PropertyDefinitionVisitor<R,P> v, P p)
          Apply a visitor to this property definition.
<R,P> R
accept(PropertyValueVisitor<R,P> v, E value, P p)
          Apply a visitor to a property value associated with this property definition.
static
<E extends java.lang.Enum<E>>
EnumPropertyDefinition.Builder<E>
createBuilder(AbstractManagedObjectDefinition<?,?> d, java.lang.String propertyName)
          Create an enumeration property definition builder.
 E decodeValue(java.lang.String value)
          Parse and validate a string representation of a property value.
 java.lang.Class<E> getEnumClass()
          Get the enumeration class used for values of this property.
 Message getValueSynopsis(E value)
          Gets the synopsis of the specified enumeration value of this enumeration property definition in the default locale.
 Message getValueSynopsis(java.util.Locale locale, E value)
          Gets the synopsis of the specified enumeration value of this enumeration property definition in the specified locale.
 java.lang.String normalizeValue(E value)
          Get a normalized string representation of a property value.
 void validateValue(E value)
          Determine if the provided property value is valid according to this property definition.
 
Methods inherited from class org.opends.server.admin.PropertyDefinition
castValue, compare, compareTo, encodeValue, equals, getAdministratorAction, getDefaultBehaviorProvider, getDescription, getDescription, getManagedObjectDefinition, getName, getSynopsis, getSynopsis, hashCode, hasOption, initialize, toString, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Method Detail

createBuilder

public static <E extends java.lang.Enum<E>> EnumPropertyDefinition.Builder<E> createBuilder(AbstractManagedObjectDefinition<?,?> d,
                                                                                            java.lang.String propertyName)
Create an enumeration property definition builder.

Type Parameters:
E - The enumeration that should be used for values of this property definition.
Parameters:
d - The managed object definition associated with this property definition.
propertyName - The property name.
Returns:
Returns the new enumeration property definition builder.

accept

public <R,P> R accept(PropertyDefinitionVisitor<R,P> v,
                      P p)
Apply a visitor to this property definition.

Specified by:
accept in class PropertyDefinition<E extends java.lang.Enum<E>>
Type Parameters:
R - The return type of the visitor's methods.
P - The type of the additional parameters to the visitor's methods.
Parameters:
v - The property definition visitor.
p - Optional additional visitor parameter.
Returns:
Returns a result as specified by the visitor.

accept

public <R,P> R accept(PropertyValueVisitor<R,P> v,
                      E value,
                      P p)
Apply a visitor to a property value associated with this property definition.

Specified by:
accept in class PropertyDefinition<E extends java.lang.Enum<E>>
Type Parameters:
R - The return type of the visitor's methods.
P - The type of the additional parameters to the visitor's methods.
Parameters:
v - The property value visitor.
value - The property value.
p - Optional additional visitor parameter.
Returns:
Returns a result as specified by the visitor.

decodeValue

public E decodeValue(java.lang.String value)
                                        throws IllegalPropertyValueStringException
Parse and validate a string representation of a property value.

Specified by:
decodeValue in class PropertyDefinition<E extends java.lang.Enum<E>>
Parameters:
value - The property string value (must not be null).
Returns:
Returns the decoded property value.
Throws:
IllegalPropertyValueStringException - If the property value string is invalid.

getEnumClass

public java.lang.Class<E> getEnumClass()
Get the enumeration class used for values of this property.

Returns:
Returns the enumeration class used for values of this property.

getValueSynopsis

public final Message getValueSynopsis(E value)
Gets the synopsis of the specified enumeration value of this enumeration property definition in the default locale.

Parameters:
value - The enumeration value.
Returns:
Returns the synopsis of the specified enumeration value of this enumeration property definition in the default locale.

getValueSynopsis

public final Message getValueSynopsis(java.util.Locale locale,
                                      E value)
Gets the synopsis of the specified enumeration value of this enumeration property definition in the specified locale.

Parameters:
value - The enumeration value.
locale - The locale.
Returns:
Returns the synopsis of the specified enumeration value of this enumeration property definition in the specified locale.

normalizeValue

public java.lang.String normalizeValue(E value)
                                throws IllegalPropertyValueException
Get a normalized string representation of a property value. This can then be used for comparisons and for generating hash-codes.

This method may throw an exception if the provided value is invalid. However, applications should not assume that implementations of this method will always validate a value. This task is the responsibility of PropertyDefinition.validateValue(Object).

This default implementation simply returns the string representation of the provided value. Sub-classes might want to override this method if this behavior is insufficient (for example, a string property definition might strip white-space and convert characters to lower-case).

Overrides:
normalizeValue in class PropertyDefinition<E extends java.lang.Enum<E>>
Parameters:
value - The property value to be normalized.
Returns:
Returns the normalized property value.
Throws:
IllegalPropertyValueException - If the property value is invalid.

validateValue

public void validateValue(E value)
                   throws IllegalPropertyValueException
Determine if the provided property value is valid according to this property definition.

Specified by:
validateValue in class PropertyDefinition<E extends java.lang.Enum<E>>
Parameters:
value - The property value (must not be null).
Throws:
IllegalPropertyValueException - If the property value is invalid.