public final class SizePropertyDefinition extends PropertyDefinition<Long>
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".
Modifier and Type | Class and Description |
---|---|
static class |
SizePropertyDefinition.Builder
An interface for incrementally constructing memory size property
definitions.
|
PropertyDefinition.AbstractBuilder<T,D extends PropertyDefinition<T>>
Modifier and Type | Method and Description |
---|---|
<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,
Long value,
P p)
Apply a visitor to a property value associated with this property
definition.
|
int |
compare(Long o1,
Long o2)
Compares two property values for order.
|
static SizePropertyDefinition.Builder |
createBuilder(AbstractManagedObjectDefinition<?,?> d,
String propertyName)
Create an memory size property definition builder.
|
Long |
decodeValue(String value)
Parse and validate a string representation of a property value.
|
String |
encodeValue(Long value)
Encode the provided property value into its string
representation.
|
long |
getLowerLimit()
Get the lower limit in bytes.
|
Long |
getUpperLimit()
Get the upper limit in bytes.
|
boolean |
isAllowUnlimited()
Determine whether this property allows unlimited memory sizes.
|
void |
toString(StringBuilder builder)
Append a string representation of the property definition to the
provided string builder.
|
void |
validateValue(Long value)
Determine if the provided property value is valid according to
this property definition.
|
castValue, compareTo, equals, getAdministratorAction, getDefaultBehaviorProvider, getDescription, getDescription, getManagedObjectDefinition, getName, getSynopsis, getSynopsis, hashCode, hasOption, initialize, normalizeValue, toString
public static SizePropertyDefinition.Builder createBuilder(AbstractManagedObjectDefinition<?,?> d, String propertyName)
d
- The managed object definition associated with this
property definition.propertyName
- The property name.public long getLowerLimit()
public Long getUpperLimit()
null
if there is
no upper limit.public boolean isAllowUnlimited()
true
if this this property allows unlimited
memory sizes.public void validateValue(Long value) throws PropertyException
validateValue
in class PropertyDefinition<Long>
value
- The property value (must not be null
).PropertyException
- If the property value is invalid.public String encodeValue(Long value) throws PropertyException
This default implementation simply returns invokes the
Object.toString()
method on the provided value.
encodeValue
in class PropertyDefinition<Long>
value
- The property value (must not be null
).PropertyException
- If the property value is invalid.public Long decodeValue(String value) throws PropertyException
decodeValue
in class PropertyDefinition<Long>
value
- The property string value (must not be null
).PropertyException
- If the property value string is invalid.public <R,P> R accept(PropertyDefinitionVisitor<R,P> v, P p)
accept
in class PropertyDefinition<Long>
R
- The return type of the visitor's methods.P
- The type of the additional parameters to the visitor's
methods.v
- The property definition visitor.p
- Optional additional visitor parameter.public <R,P> R accept(PropertyValueVisitor<R,P> v, Long value, P p)
accept
in class PropertyDefinition<Long>
R
- The return type of the visitor's methods.P
- The type of the additional parameters to the visitor's
methods.v
- The property value visitor.value
- The property value.p
- Optional additional visitor parameter.public void toString(StringBuilder builder)
This simple implementation just outputs the propertyName of the property definition. Sub-classes should override this method to provide more complete string representations.
toString
in class PropertyDefinition<Long>
builder
- The string builder where the string representation
should be appended.public int compare(Long o1, Long o2)
This default implementation normalizes both values using
PropertyDefinition.normalizeValue(Object)
and then performs a
case-sensitive string comparison.
compare
in interface Comparator<Long>
compare
in class PropertyDefinition<Long>
o1
- the first object to be compared.o2
- the second object to be compared.Copyright © 2010-2016 ForgeRock AS. All Rights Reserved.