Class ClassPropertyDefinition
- java.lang.Object
-
- org.forgerock.opendj.config.PropertyDefinition<String>
-
- org.forgerock.opendj.config.ClassPropertyDefinition
-
- All Implemented Interfaces:
Comparable<PropertyDefinition<?>>,Comparator<String>
public final class ClassPropertyDefinition extends PropertyDefinition<String>
Class property definition.A class property definition defines a property whose values represent a Java class. It is possible to restrict the type of java class by specifying "instance of" constraints.
Note that in a client/server environment, the client is probably not capable of validating the Java class (e.g. it will not be able to load it nor have access to the interfaces it is supposed to implement). For this reason, validation is disabled in client applications.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classClassPropertyDefinition.BuilderAn interface for incrementally constructing class property definitions.-
Nested classes/interfaces inherited from class org.forgerock.opendj.config.PropertyDefinition
PropertyDefinition.AbstractBuilder<T,D extends PropertyDefinition<T>>
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description <R,P>
Raccept(PropertyDefinitionVisitor<R,P> v, P p)Apply a visitor to this property definition.<R,P>
Raccept(PropertyValueVisitor<R,P> v, String value, P p)Apply a visitor to a property value associated with this property definition.static ClassPropertyDefinition.BuildercreateBuilder(AbstractManagedObjectDefinition<?,?> d, String propertyName)Create a class property definition builder.StringdecodeValue(String value)Parse and validate a string representation of a property value.List<String>getInstanceOfInterface()Get an unmodifiable list of classes which values of this property must implement.<T> Class<? extends T>loadClass(String className, Class<T> instanceOf)Validate and load the named class, and cast it to a subclass of the specified class.StringnormalizeValue(String value)Get a normalized string representation of a property value.voidvalidateValue(String value)Determine if the provided property value is valid according to this property definition.-
Methods inherited from class org.forgerock.opendj.config.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
-
Methods inherited from interface java.util.Comparator
reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
-
-
-
-
Method Detail
-
createBuilder
public static ClassPropertyDefinition.Builder createBuilder(AbstractManagedObjectDefinition<?,?> d, String propertyName)
Create a class property definition builder.- Parameters:
d- The managed object definition associated with this property definition.propertyName- The property name.- Returns:
- Returns the new class property definition builder.
-
accept
public <R,P> R accept(PropertyDefinitionVisitor<R,P> v, P p)
Description copied from class:PropertyDefinitionApply a visitor to this property definition.- Specified by:
acceptin classPropertyDefinition<String>- 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, String value, P p)
Description copied from class:PropertyDefinitionApply a visitor to a property value associated with this property definition.- Specified by:
acceptin classPropertyDefinition<String>- 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 String decodeValue(String value)
Description copied from class:PropertyDefinitionParse and validate a string representation of a property value.- Specified by:
decodeValuein classPropertyDefinition<String>- Parameters:
value- The property string value (must not benull).- Returns:
- Returns the decoded property value.
-
getInstanceOfInterface
public List<String> getInstanceOfInterface()
Get an unmodifiable list of classes which values of this property must implement.- Returns:
- Returns an unmodifiable list of classes which values of this property must implement.
-
loadClass
public <T> Class<? extends T> loadClass(String className, Class<T> instanceOf)
Validate and load the named class, and cast it to a subclass of the specified class.- Type Parameters:
T- The requested type.- Parameters:
className- The name of the class to validate and load.instanceOf- The class representing the requested type.- Returns:
- Returns the named class cast to a subclass of the specified class.
- Throws:
PropertyException- If the named class was invalid, could not be loaded, or did not implement the required interfaces.ClassCastException- If the referenced class does not implement the requested type.
-
normalizeValue
public String normalizeValue(String value)
Description copied from class:PropertyDefinitionGet 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:
normalizeValuein classPropertyDefinition<String>- Parameters:
value- The property value to be normalized.- Returns:
- Returns the normalized property value.
-
validateValue
public void validateValue(String value)
Description copied from class:PropertyDefinitionDetermine if the provided property value is valid according to this property definition.- Specified by:
validateValuein classPropertyDefinition<String>- Parameters:
value- The property value (must not benull).
-
-