Package org.forgerock.opendj.config
Class PropertyValueVisitor<R,P>
- java.lang.Object
-
- org.forgerock.opendj.config.PropertyValueVisitor<R,P>
-
- Type Parameters:
R- The return type of this visitor's methods. UseVoidfor visitors that do not need to return results.P- The type of the additional parameter to this visitor's methods. UseVoidfor visitors that do not need an additional parameter.
public abstract class PropertyValueVisitor<R,P> extends Object
A visitor of property values, in the style of the visitor design pattern. Classes implementing this interface can query a property a value and its associated property definition in a type-safe manner when the kind of property value is unknown at compile time. When a visitor is passed to a property definition's accept method, the corresponding visit method most applicable to that property definition is invoked.Each
visitXXXmethod is provided with a default implementation which callsvisitUnknown(PropertyDefinition, Object, Object). Sub-classes can override any or all of the methods to provide their own type-specific behavior.
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedPropertyValueVisitor()Default constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description RvisitACI(ACIPropertyDefinition pd, String v, P p)Visit a dseecompat ACI.<C extends ConfigurationClient,S extends Configuration>
RvisitAggregation(AggregationPropertyDefinition<C,S> pd, String v, P p)Visit an aggregation property value.RvisitAttributeType(AttributeTypePropertyDefinition pd, org.forgerock.opendj.ldap.schema.AttributeType v, P p)Visit an attribute type.RvisitBoolean(BooleanPropertyDefinition pd, Boolean v, P p)Visit a boolean.RvisitClass(ClassPropertyDefinition pd, String v, P p)Visit a class.RvisitDN(DNPropertyDefinition pd, org.forgerock.opendj.ldap.DN v, P p)Visit a DN.RvisitDuration(DurationPropertyDefinition pd, Long v, P p)Visit a duration.<E extends Enum<E>>
RvisitEnum(EnumPropertyDefinition<E> pd, E v, P p)Visit an enumeration.RvisitInteger(IntegerPropertyDefinition pd, Integer v, P p)Visit an integer.RvisitIPAddress(IPAddressPropertyDefinition pd, InetAddress v, P p)Visit a IP address.RvisitIPAddressMask(IPAddressMaskPropertyDefinition pd, org.forgerock.opendj.ldap.AddressMask v, P p)Visit a IP address mask.RvisitSize(SizePropertyDefinition pd, Long v, P p)Visit a size.RvisitString(StringPropertyDefinition pd, String v, P p)Visit a string.<T> RvisitUnknown(PropertyDefinition<T> pd, T v, P p)Visit an unknown type of property value.
-
-
-
Method Detail
-
visitACI
public R visitACI(ACIPropertyDefinition pd, String v, P p)
Visit a dseecompat ACI.- Parameters:
pd- The dseecompat ACI property definition.v- The property value to visit.p- A visitor specified parameter.- Returns:
- Returns a visitor specified result.
-
visitAggregation
public <C extends ConfigurationClient,S extends Configuration> R visitAggregation(AggregationPropertyDefinition<C,S> pd, String v, P p)
Visit an aggregation property value.- Type Parameters:
C- The type of client managed object configuration that this aggregation property definition refers to.S- The type of server managed object configuration that this aggregation property definition refers to.- Parameters:
pd- The aggregation property definition to visit.v- The property value to visit.p- A visitor specified parameter.- Returns:
- Returns a visitor specified result.
-
visitAttributeType
public R visitAttributeType(AttributeTypePropertyDefinition pd, org.forgerock.opendj.ldap.schema.AttributeType v, P p)
Visit an attribute type.- Parameters:
pd- The attribute type property definition.v- The property value to visit.p- A visitor specified parameter.- Returns:
- Returns a visitor specified result.
-
visitBoolean
public R visitBoolean(BooleanPropertyDefinition pd, Boolean v, P p)
Visit a boolean.- Parameters:
pd- The boolean property definition.v- The property value to visit.p- A visitor specified parameter.- Returns:
- Returns a visitor specified result.
-
visitClass
public R visitClass(ClassPropertyDefinition pd, String v, P p)
Visit a class.- Parameters:
pd- The class property definition.v- The property value to visit.p- A visitor specified parameter.- Returns:
- Returns a visitor specified result.
-
visitDN
public R visitDN(DNPropertyDefinition pd, org.forgerock.opendj.ldap.DN v, P p)
Visit a DN.- Parameters:
pd- The DN property definition.v- The property value to visit.p- A visitor specified parameter.- Returns:
- Returns a visitor specified result.
-
visitDuration
public R visitDuration(DurationPropertyDefinition pd, Long v, P p)
Visit a duration.- Parameters:
pd- The duration property definition.v- The property value to visit.p- A visitor specified parameter.- Returns:
- Returns a visitor specified result.
-
visitEnum
public <E extends Enum<E>> R visitEnum(EnumPropertyDefinition<E> pd, E v, P p)
Visit an enumeration.- Type Parameters:
E- The enumeration that should be used for values of the property definition.- Parameters:
pd- The enumeration property definition.v- The property value to visit.p- A visitor specified parameter.- Returns:
- Returns a visitor specified result.
-
visitInteger
public R visitInteger(IntegerPropertyDefinition pd, Integer v, P p)
Visit an integer.- Parameters:
pd- The integer property definition.v- The property value to visit.p- A visitor specified parameter.- Returns:
- Returns a visitor specified result.
-
visitIPAddress
public R visitIPAddress(IPAddressPropertyDefinition pd, InetAddress v, P p)
Visit a IP address.- Parameters:
pd- The IP address property definition.v- The property value to visit.p- A visitor specified parameter.- Returns:
- Returns a visitor specified result.
-
visitIPAddressMask
public R visitIPAddressMask(IPAddressMaskPropertyDefinition pd, org.forgerock.opendj.ldap.AddressMask v, P p)
Visit a IP address mask.- Parameters:
pd- The IP address mask property definition.v- The property value to visit.p- A visitor specified parameter.- Returns:
- Returns a visitor specified result.
-
visitSize
public R visitSize(SizePropertyDefinition pd, Long v, P p)
Visit a size.- Parameters:
pd- The size property definition.v- The property value to visit.p- A visitor specified parameter.- Returns:
- Returns a visitor specified result.
-
visitString
public R visitString(StringPropertyDefinition pd, String v, P p)
Visit a string.- Parameters:
pd- The string property definition.v- The property value to visit.p- A visitor specified parameter.- Returns:
- Returns a visitor specified result.
-
visitUnknown
public <T> R visitUnknown(PropertyDefinition<T> pd, T v, P p)
Visit an unknown type of property value. Implementations of this method can provide default behavior for unknown types of property.The default implementation of this method throws an
PropertyException. Sub-classes can override this method with their own default behavior.- Type Parameters:
T- The type of property value to visit.- Parameters:
pd- The property definition.v- The property value.p- A visitor specified parameter.- Returns:
- Returns a visitor specified result.
- Throws:
PropertyException- Visitor implementations may optionally throw this exception.
-
-