org.opends.server.admin
Class SizePropertyDefinition

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

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

Memory size property definition.

All memory size property values are represented in bytes using longs.

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


Nested Class Summary
static class SizePropertyDefinition.Builder
          An interface for incrementally constructing memory size 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 SizePropertyDefinition.Builder createBuilder(AbstractManagedObjectDefinition<?,?> d, java.lang.String propertyName)
          Create an memory size 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.
 long getLowerLimit()
          Get the lower limit in bytes.
 java.lang.Long getUpperLimit()
          Get the upper limit in bytes.
 boolean isAllowUnlimited()
          Determine whether this property allows unlimited memory sizes.
 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 SizePropertyDefinition.Builder createBuilder(AbstractManagedObjectDefinition<?,?> d,
                                                           java.lang.String propertyName)
Create an memory size 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 long getLowerLimit()
Get the lower limit in bytes.

Returns:
Returns the lower limit in bytes.

getUpperLimit

public java.lang.Long getUpperLimit()
Get the upper limit in bytes.

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

isAllowUnlimited

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

Returns:
Returns true if this this property allows unlimited memory sizes.

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.