org.opends.server.admin
Class IntegerPropertyDefinition

java.lang.Object
  extended by org.opends.server.admin.PropertyDefinition<java.lang.Integer>
      extended by org.opends.server.admin.IntegerPropertyDefinition
All Implemented Interfaces:
java.lang.Comparable<PropertyDefinition<?>>, java.util.Comparator<java.lang.Integer>

public final class IntegerPropertyDefinition
extends PropertyDefinition<java.lang.Integer>

Integer property definition.

All values must be zero or positive and within the lower/upper limit constraints. Support is provided for "unlimited" values. These are represented using a negative value or using the string "unlimited".


Nested Class Summary
static class IntegerPropertyDefinition.Builder
          An interface for incrementally constructing integer 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, java.lang.Integer value, P p)
          Apply a visitor to a property value associated with this property definition.
 int compare(java.lang.Integer o1, java.lang.Integer o2)
          Compares two property values for order.
static IntegerPropertyDefinition.Builder createBuilder(AbstractManagedObjectDefinition<?,?> d, java.lang.String propertyName)
          Create an integer property definition builder.
 java.lang.Integer decodeValue(java.lang.String value)
          Parse and validate a string representation of a property value.
 java.lang.String encodeValue(java.lang.Integer value)
          Encode the provided property value into its string representation.
 int getLowerLimit()
          Get the lower limit.
 Message getUnitSynopsis()
          Gets the optional unit synopsis of this integer property definition in the default locale.
 Message getUnitSynopsis(java.util.Locale locale)
          Gets the optional unit synopsis of this integer property definition in the specified locale.
 java.lang.Integer getUpperLimit()
          Get the upper limit.
 boolean isAllowUnlimited()
          Determine whether this property allows unlimited values.
 void toString(java.lang.StringBuilder builder)
          Append a string representation of the property definition to the provided string builder.
 void validateValue(java.lang.Integer value)
          Determine if the provided property value is valid according to this property definition.
 
Methods inherited from class org.opends.server.admin.PropertyDefinition
castValue, compareTo, equals, getAdministratorAction, getDefaultBehaviorProvider, getDescription, getDescription, getManagedObjectDefinition, getName, getSynopsis, getSynopsis, hashCode, hasOption, initialize, normalizeValue, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Method Detail

createBuilder

public static IntegerPropertyDefinition.Builder createBuilder(AbstractManagedObjectDefinition<?,?> d,
                                                              java.lang.String propertyName)
Create an integer property definition builder.

Parameters:
d - The managed object definition associated with this property definition.
propertyName - The property name.
Returns:
Returns the new integer property definition builder.

getLowerLimit

public int getLowerLimit()
Get the lower limit.

Returns:
Returns the lower limit.

getUpperLimit

public java.lang.Integer getUpperLimit()
Get the upper limit.

Returns:
Returns the upper limit or null if there is no upper limit.

getUnitSynopsis

public Message getUnitSynopsis()
Gets the optional unit synopsis of this integer property definition in the default locale.

Returns:
Returns the unit synopsis of this integer property definition in the default locale, or null if there is no unit synopsis.

getUnitSynopsis

public Message getUnitSynopsis(java.util.Locale locale)
Gets the optional unit synopsis of this integer property definition in the specified locale.

Parameters:
locale - The locale.
Returns:
Returns the unit synopsis of this integer property definition in the specified locale, or null if there is no unit synopsis.

isAllowUnlimited

public boolean isAllowUnlimited()
Determine whether this property allows unlimited values.

Returns:
Returns true if this this property allows unlimited values.

validateValue

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

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

encodeValue

public java.lang.String encodeValue(java.lang.Integer value)
                             throws IllegalPropertyValueException
Encode the provided property value into its string representation.

This default implementation simply returns invokes the Object.toString() method on the provided value.

Overrides:
encodeValue in class PropertyDefinition<java.lang.Integer>
Parameters:
value - The property value (must not be null).
Returns:
Returns the encoded property string value.
Throws:
IllegalPropertyValueException - If the property value is invalid.

decodeValue

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

Specified by:
decodeValue in class PropertyDefinition<java.lang.Integer>
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.

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<java.lang.Integer>
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,
                      java.lang.Integer value,
                      P p)
Apply a visitor to a property value associated with this property definition.

Specified by:
accept in class PropertyDefinition<java.lang.Integer>
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.

toString

public void toString(java.lang.StringBuilder builder)
Append a string representation of the property definition to the provided string builder.

This simple implementation just outputs the propertyName of the property definition. Sub-classes should override this method to provide more complete string representations.

Overrides:
toString in class PropertyDefinition<java.lang.Integer>
Parameters:
builder - The string builder where the string representation should be appended.

compare

public int compare(java.lang.Integer o1,
                   java.lang.Integer o2)
Compares two property values for order. Returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.

This default implementation normalizes both values using PropertyDefinition.normalizeValue(Object) and then performs a case-sensitive string comparison.

Specified by:
compare in interface java.util.Comparator<java.lang.Integer>
Overrides:
compare in class PropertyDefinition<java.lang.Integer>
Parameters:
o1 - the first object to be compared.
o2 - the second object to be compared.
Returns:
a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.