org.opends.server.admin
Class InstantiableRelationDefinition<C extends ConfigurationClient,S extends Configuration>

java.lang.Object
  extended by org.opends.server.admin.RelationDefinition<C,S>
      extended by org.opends.server.admin.InstantiableRelationDefinition<C,S>
Type Parameters:
C - The type of client managed object configuration that this relation definition refers to.
S - The type of server managed object configuration that this relation definition refers to.

public final class InstantiableRelationDefinition<C extends ConfigurationClient,S extends Configuration>
extends RelationDefinition<C,S>

A managed object composite relationship definition which represents a composition of zero or more managed objects.


Nested Class Summary
static class InstantiableRelationDefinition.Builder<C extends ConfigurationClient,S extends Configuration>
          An interface for incrementally constructing instantiable relation definitions.
 
Nested classes/interfaces inherited from class org.opends.server.admin.RelationDefinition
RelationDefinition.AbstractBuilder<C extends ConfigurationClient,S extends Configuration,D extends RelationDefinition<C,S>>, RelationDefinition.Common<C extends ConfigurationClient,S extends Configuration>
 
Method Summary
<R,P> R
accept(RelationDefinitionVisitor<R,P> v, P p)
          Apply a visitor to this relation definition.
 DefaultManagedObject<? extends C,? extends S> getDefaultManagedObject(java.lang.String name)
          Gets the named default managed object associated with this instantiable relation definition.
 java.util.Set<java.lang.String> getDefaultManagedObjectNames()
          Gets the names of the default managed objects associated with this instantiable relation definition.
 PropertyDefinition<?> getNamingPropertyDefinition()
          Get the property of the child managed object definition which should be used for naming children.
 java.lang.String getPluralName()
          Get the plural name of the relation.
 Message getUserFriendlyPluralName()
          Gets the user friendly plural name of this relation definition in the default locale.
 Message getUserFriendlyPluralName(java.util.Locale locale)
          Gets the user friendly plural name of this relation definition in the specified locale.
protected  void initialize()
          Performs any run-time initialization required by this relation definition.
 void toString(java.lang.StringBuilder builder)
          Append a string representation of the managed object relation to the provided string builder.
 
Methods inherited from class org.opends.server.admin.RelationDefinition
getChildDefinition, getDescription, getDescription, getName, getParentDefinition, getSynopsis, getSynopsis, getUserFriendlyName, getUserFriendlyName, hasOption, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Method Detail

accept

public <R,P> R accept(RelationDefinitionVisitor<R,P> v,
                      P p)
Apply a visitor to this relation definition.

Specified by:
accept in class RelationDefinition<C extends ConfigurationClient,S extends Configuration>
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 relation definition visitor.
p - Optional additional visitor parameter.
Returns:
Returns a result as specified by the visitor.

getDefaultManagedObject

public DefaultManagedObject<? extends C,? extends S> getDefaultManagedObject(java.lang.String name)
                                                                                                                        throws java.lang.IllegalArgumentException
Gets the named default managed object associated with this instantiable relation definition.

Parameters:
name - The name of the default managed object.
Returns:
Returns the named default managed object.
Throws:
java.lang.IllegalArgumentException - If there is no default managed object associated with the provided name.

getDefaultManagedObjectNames

public java.util.Set<java.lang.String> getDefaultManagedObjectNames()
Gets the names of the default managed objects associated with this instantiable relation definition.

Returns:
Returns an unmodifiable set containing the names of the default managed object.

getNamingPropertyDefinition

public PropertyDefinition<?> getNamingPropertyDefinition()
Get the property of the child managed object definition which should be used for naming children.

Returns:
Returns the property of the child managed object definition which should be used for naming, or null if this relation does not use a property for naming.

getPluralName

public java.lang.String getPluralName()
Get the plural name of the relation.

Returns:
Returns the plural name of the relation.

getUserFriendlyPluralName

public Message getUserFriendlyPluralName()
Gets the user friendly plural name of this relation definition in the default locale.

Returns:
Returns the user friendly plural name of this relation definition in the default locale.

getUserFriendlyPluralName

public Message getUserFriendlyPluralName(java.util.Locale locale)
Gets the user friendly plural name of this relation definition in the specified locale.

Parameters:
locale - The locale.
Returns:
Returns the user friendly plural name of this relation definition in the specified locale.

toString

public void toString(java.lang.StringBuilder builder)
Append a string representation of the managed object relation to the provided string builder.

Specified by:
toString in class RelationDefinition<C extends ConfigurationClient,S extends Configuration>
Parameters:
builder - The string builder where the string representation should be appended.

initialize

protected void initialize()
                   throws java.lang.Exception
Performs any run-time initialization required by this relation definition. This may include resolving managed object paths and property names.

Overrides:
initialize in class RelationDefinition<C extends ConfigurationClient,S extends Configuration>
Throws:
java.lang.Exception - If this relation definition could not be initialized.