org.opends.server.admin
Class DurationPropertyDefinition

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

public final class DurationPropertyDefinition
extends PropertyDefinition<java.lang.Long>

Duration property definition.

A duration property definition comprises of:

Decoded values are represented using long values in the base unit defined for the duration property definition.


Nested Class Summary
static class DurationPropertyDefinition.Builder
          An interface for incrementally constructing duration 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.Long value, P p)
          Apply a visitor to a property value associated with this property definition.
 int compare(java.lang.Long o1, java.lang.Long o2)
          Compares two property values for order.
static DurationPropertyDefinition.Builder createBuilder(AbstractManagedObjectDefinition<?,?> d, java.lang.String propertyName)
          Create a duration property definition builder.
 java.lang.Long decodeValue(java.lang.String value)
          Parse and validate a string representation of a property value.
 java.lang.String encodeValue(java.lang.Long value)
          Encode the provided property value into its string representation.
 DurationUnit getBaseUnit()
          Get the base unit for this property definition (values including limits are specified in this unit).
 long getLowerLimit()
          Get the lower limit in milli-seconds.
 DurationUnit getMaximumUnit()
          Get the maximum unit for this property definition if specified.
 java.lang.Long getUpperLimit()
          Get the upper limit in milli-seconds.
 boolean isAllowUnlimited()
          Determine whether this property allows unlimited durations.
 void toString(java.lang.StringBuilder builder)
          Append a string representation of the property definition to the provided string builder.
 void validateValue(java.lang.Long 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 DurationPropertyDefinition.Builder createBuilder(AbstractManagedObjectDefinition<?,?> d,
                                                               java.lang.String propertyName)
Create a duration 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.

getBaseUnit

public DurationUnit getBaseUnit()
Get the base unit for this property definition (values including limits are specified in this unit).

Returns:
Returns the base unit for this property definition (values including limits are specified in this unit).

getMaximumUnit

public DurationUnit getMaximumUnit()
Get the maximum unit for this property definition if specified.

Returns:
Returns the maximum unit for this property definition, or null if there is no maximum unit.

getLowerLimit

public long getLowerLimit()
Get the lower limit in milli-seconds.

Returns:
Returns the lower limit in milli-seconds.

getUpperLimit

public java.lang.Long getUpperLimit()
Get the upper limit in milli-seconds.

Returns:
Returns the upper limit in milli-seconds, or null if there is no upper limit.

isAllowUnlimited

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

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

validateValue

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

Specified by:
validateValue in class PropertyDefinition<java.lang.Long>
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.Long 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.Long>
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.Long 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.Long>
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.Long>
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.Long value,
                      P p)
Apply a visitor to a property value associated with this property definition.

Specified by:
accept in class PropertyDefinition<java.lang.Long>
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.Long>
Parameters:
builder - The string builder where the string representation should be appended.

compare

public int compare(java.lang.Long o1,
                   java.lang.Long 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.Long>
Overrides:
compare in class PropertyDefinition<java.lang.Long>
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.