Package org.forgerock.opendj.config
Class AggregationPropertyDefinition<C extends ConfigurationClient,S extends Configuration>
- java.lang.Object
-
- org.forgerock.opendj.config.PropertyDefinition<String>
-
- org.forgerock.opendj.config.AggregationPropertyDefinition<C,S>
-
- 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.
- All Implemented Interfaces:
Comparable<PropertyDefinition<?>>
,Comparator<ValueOrExpression<String>>
public final class AggregationPropertyDefinition<C extends ConfigurationClient,S extends Configuration> extends PropertyDefinition<String>
Aggregation property definition.An aggregation property names one or more managed objects which are required by the managed object associated with this property. An aggregation property definition takes care to perform referential integrity checks: referenced managed objects cannot be deleted. Nor can an aggregation reference non-existent managed objects. Referential integrity checks are not performed during value validation. Instead they are performed when changes to the managed object are committed.
An aggregation property definition can optionally identify two properties:
- an
enabled
property in the aggregated managed object - the property must be aBooleanPropertyDefinition
and indicate whether the aggregated managed object is enabled or not. If specified, the administration framework will prevent the aggregated managed object from being disabled while it is referenced - an
enabled
property in this property's managed object - the property must be aBooleanPropertyDefinition
and indicate whether this property's managed object is enabled or not. If specified, and as long as there is an equivalentenabled
property defined for the aggregated managed object, theenabled
property in the aggregated managed object will only be checked when this property is true.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
AggregationPropertyDefinition.Builder<C extends ConfigurationClient,S extends Configuration>
An interface for incrementally constructing aggregation 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, ValueOrExpression<String> value, P p)
Apply a visitor to a property value associated with this property definition.static <C extends ConfigurationClient,S extends Configuration>
AggregationPropertyDefinition.Builder<C,S>createBuilder(AbstractManagedObjectDefinition<?,?> d, String propertyName)
Creates an aggregation property definition builder.String
decodeValueImpl(String value)
Dn
getChildDn(String name)
Constructs a DN for a referenced managed object having the provided name.ManagedObjectPath<C,S>
getChildPath(String name)
Constructs a managed object path for a referenced managed object having the provided name.ManagedObjectPath<?,?>
getParentPath()
Gets the name of the managed object which is the parent of the aggregated managed objects.InstantiableRelationDefinition<C,S>
getRelationDefinition()
Gets the relation in the parent managed object which contains the aggregated managed objects.Constraint
getSourceConstraint()
Gets the constraint which should be enforced on the aggregating managed object.LocalizableMessage
getSourceConstraintSynopsis()
Gets the optional constraint synopsis of this aggregation property definition in the default locale.Condition
getTargetIsEnabledCondition()
Gets the condition which is used to determine if a referenced managed object is enabled.Condition
getTargetNeedsEnablingCondition()
Gets the condition which is used to determine whether referenced managed objects need to be enabled.void
initialize()
Performs any run-time initialization required by this property definition.void
toString(StringBuilder builder)
Append a string representation of the property definition to the provided string builder.void
validateValueImpl(String value)
-
Methods inherited from class org.forgerock.opendj.config.PropertyDefinition
compare, compareTo, decodeValue, decodeValueOrExpression, encodeValue, equals, getAdministratorAction, getDefaultBehaviorProvider, getDeprecated, getDescription, getDescription, getManagedObjectDefinition, getName, getSynopsis, getSynopsis, getValueComparator, hashCode, hasOption, normalizeValue, toString, validateValue
-
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 <C extends ConfigurationClient,S extends Configuration> AggregationPropertyDefinition.Builder<C,S> createBuilder(AbstractManagedObjectDefinition<?,?> d, String propertyName)
Creates an aggregation property definition builder.- 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:
d
- The managed object definition associated with this property definition.propertyName
- The property name.- Returns:
- Returns the new aggregation property definition builder.
-
accept
public <R,P> R accept(PropertyDefinitionVisitor<R,P> v, P p)
Description copied from class:PropertyDefinition
Apply a visitor to this property definition.- Specified by:
accept
in 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, ValueOrExpression<String> value, P p)
Description copied from class:PropertyDefinition
Apply a visitor to a property value associated with this property definition.- Specified by:
accept
in 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.
-
getChildDn
public Dn getChildDn(String name)
Constructs a DN for a referenced managed object having the provided name. This method is implemented by first callinggetChildPath(String)
and then invokingManagedObjectPath.toDN()
on the returned path.- Parameters:
name
- The name of the child managed object.- Returns:
- Returns a DN for a referenced managed object having the provided name.
-
getChildPath
public ManagedObjectPath<C,S> getChildPath(String name)
Constructs a managed object path for a referenced managed object having the provided name.- Parameters:
name
- The name of the child managed object.- Returns:
- Returns a managed object path for a referenced managed object having the provided name.
-
getParentPath
public ManagedObjectPath<?,?> getParentPath()
Gets the name of the managed object which is the parent of the aggregated managed objects.- Returns:
- Returns the name of the managed object which is the parent of the aggregated managed objects.
-
getRelationDefinition
public InstantiableRelationDefinition<C,S> getRelationDefinition()
Gets the relation in the parent managed object which contains the aggregated managed objects.- Returns:
- Returns the relation in the parent managed object which contains the aggregated managed objects.
-
getSourceConstraint
public Constraint getSourceConstraint()
Gets the constraint which should be enforced on the aggregating managed object.- Returns:
- Returns the constraint which should be enforced on the aggregating managed object.
-
getSourceConstraintSynopsis
public LocalizableMessage getSourceConstraintSynopsis()
Gets the optional constraint synopsis of this aggregation property definition in the default locale. The constraint synopsis describes when and how referenced managed objects must be enabled. When there are no constraints between the source managed object and the objects it references through this aggregation,null
is returned.- Returns:
- Returns the optional constraint synopsis of this aggregation
property definition in the default locale, or
null
if there is no constraint synopsis.
-
getTargetIsEnabledCondition
public Condition getTargetIsEnabledCondition()
Gets the condition which is used to determine if a referenced managed object is enabled.- Returns:
- Returns the condition which is used to determine if a referenced managed object is enabled.
-
getTargetNeedsEnablingCondition
public Condition getTargetNeedsEnablingCondition()
Gets the condition which is used to determine whether referenced managed objects need to be enabled.- Returns:
- Returns the condition which is used to determine whether referenced managed objects need to be enabled.
-
toString
public void toString(StringBuilder builder)
Description copied from class:PropertyDefinition
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 classPropertyDefinition<String>
- Parameters:
builder
- The string builder where the string representation should be appended.
-
validateValueImpl
public void validateValueImpl(String value)
-
initialize
public void initialize() throws Exception
Description copied from class:PropertyDefinition
Performs any run-time initialization required by this property definition. This may include resolving managed object paths and property names.- Overrides:
initialize
in classPropertyDefinition<String>
- Throws:
Exception
- If this property definition could not be initialized.
-
-