From 2fef5aa0046548cb88034553f522d907195a19f7 Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Mon, 02 Dec 2013 10:47:18 +0000
Subject: [PATCH] OpenDJ 3 : config framework

---
 opendj-admin/src/main/java/org/opends/server/admin/SetRelationDefinition.java |  384 ++++++++++++++++++++++--------------------------------
 1 files changed, 159 insertions(+), 225 deletions(-)

diff --git a/opendj-admin/src/main/java/org/opends/server/admin/SetRelationDefinition.java b/opendj-admin/src/main/java/org/opends/server/admin/SetRelationDefinition.java
index 426c97d..43b79de 100644
--- a/opendj-admin/src/main/java/org/opends/server/admin/SetRelationDefinition.java
+++ b/opendj-admin/src/main/java/org/opends/server/admin/SetRelationDefinition.java
@@ -27,17 +27,13 @@
 
 package org.opends.server.admin;
 
-
-
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 
-import org.opends.messages.Message;
-
-
+import org.forgerock.i18n.LocalizableMessage;
 
 /**
  * A managed object composite relationship definition which represents a
@@ -45,245 +41,183 @@
  * different type. The manage objects are named using their type name.
  *
  * @param <C>
- *          The type of client managed object configuration that this
- *          relation definition refers to.
+ *            The type of client managed object configuration that this relation
+ *            definition refers to.
  * @param <S>
- *          The type of server managed object configuration that this
- *          relation definition refers to.
+ *            The type of server managed object configuration that this relation
+ *            definition refers to.
  */
-public final class SetRelationDefinition
-    <C extends ConfigurationClient, S extends Configuration>
-    extends RelationDefinition<C, S>
-{
+public final class SetRelationDefinition<C extends ConfigurationClient, S extends Configuration> extends
+        RelationDefinition<C, S> {
 
-  /**
-   * An interface for incrementally constructing set relation
-   * definitions.
-   *
-   * @param <C>
-   *          The type of client managed object configuration that this
-   *          relation definition refers to.
-   * @param <S>
-   *          The type of server managed object configuration that this
-   *          relation definition refers to.
-   */
-  public static final class Builder
-      <C extends ConfigurationClient, S extends Configuration>
-      extends AbstractBuilder<C, S, SetRelationDefinition<C, S>>
-  {
+    /**
+     * An interface for incrementally constructing set relation definitions.
+     *
+     * @param <C>
+     *            The type of client managed object configuration that this
+     *            relation definition refers to.
+     * @param <S>
+     *            The type of server managed object configuration that this
+     *            relation definition refers to.
+     */
+    public static final class Builder<C extends ConfigurationClient, S extends Configuration> extends
+            AbstractBuilder<C, S, SetRelationDefinition<C, S>> {
+
+        // The plural name of the relation.
+        private final String pluralName;
+
+        // The optional default managed objects associated with this
+        // set relation definition.
+        private final Map<String, DefaultManagedObject<? extends C, ? extends S>> defaultManagedObjects = new HashMap<String, DefaultManagedObject<? extends C, ? extends S>>();
+
+        /**
+         * Creates a new builder which can be used to incrementally build a set
+         * relation definition.
+         *
+         * @param pd
+         *            The parent managed object definition.
+         * @param name
+         *            The name of the relation.
+         * @param pluralName
+         *            The plural name of the relation.
+         * @param cd
+         *            The child managed object definition.
+         */
+        public Builder(AbstractManagedObjectDefinition<?, ?> pd, String name, String pluralName,
+                AbstractManagedObjectDefinition<C, S> cd) {
+            super(pd, name, cd);
+            this.pluralName = pluralName;
+        }
+
+        /**
+         * Adds the default managed object to this set relation definition.
+         *
+         * @param defaultManagedObject
+         *            The default managed object.
+         */
+        public void setDefaultManagedObject(DefaultManagedObject<? extends C, ? extends S> defaultManagedObject) {
+            this.defaultManagedObjects.put(defaultManagedObject.getManagedObjectDefinition().getName(),
+                    defaultManagedObject);
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        protected SetRelationDefinition<C, S> buildInstance(Common<C, S> common) {
+            return new SetRelationDefinition<C, S>(common, pluralName, defaultManagedObjects);
+        }
+
+    }
 
     // The plural name of the relation.
     private final String pluralName;
 
     // The optional default managed objects associated with this
     // set relation definition.
-    private final Map<String,
-                      DefaultManagedObject<? extends C, ? extends S>>
-      defaultManagedObjects =
-        new HashMap<String, DefaultManagedObject<? extends C, ? extends S>>();
+    private final Map<String, DefaultManagedObject<? extends C, ? extends S>> defaultManagedObjects;
 
-
-
-    /**
-     * Creates a new builder which can be used to incrementally build a
-     * set relation definition.
-     *
-     * @param pd
-     *          The parent managed object definition.
-     * @param name
-     *          The name of the relation.
-     * @param pluralName
-     *          The plural name of the relation.
-     * @param cd
-     *          The child managed object definition.
-     */
-    public Builder(AbstractManagedObjectDefinition<?, ?> pd,
-        String name, String pluralName,
-        AbstractManagedObjectDefinition<C, S> cd)
-    {
-      super(pd, name, cd);
-      this.pluralName = pluralName;
+    // Private constructor.
+    private SetRelationDefinition(Common<C, S> common, String pluralName,
+            Map<String, DefaultManagedObject<? extends C, ? extends S>> defaultManagedObjects) {
+        super(common);
+        this.pluralName = pluralName;
+        this.defaultManagedObjects = defaultManagedObjects;
     }
 
-
-
-    /**
-     * Adds the default managed object to this set relation definition.
-     *
-     * @param defaultManagedObject
-     *          The default managed object.
-     */
-    public void setDefaultManagedObject(
-        DefaultManagedObject<? extends C, ? extends S> defaultManagedObject)
-    {
-      this.defaultManagedObjects
-          .put(defaultManagedObject.getManagedObjectDefinition()
-              .getName(), defaultManagedObject);
-    }
-
-
-
     /**
      * {@inheritDoc}
      */
     @Override
-    protected SetRelationDefinition<C, S> buildInstance(
-        Common<C, S> common)
-    {
-      return new SetRelationDefinition<C, S>(common, pluralName,
-          defaultManagedObjects);
+    public <R, P> R accept(RelationDefinitionVisitor<R, P> v, P p) {
+        return v.visitSet(this, p);
     }
 
-  }
-
-
-
-  // The plural name of the relation.
-  private final String pluralName;
-
-  // The optional default managed objects associated with this
-  // set relation definition.
-  private final Map<String,
-                    DefaultManagedObject<? extends C, ? extends S>>
-    defaultManagedObjects;
-
-
-
-  // Private constructor.
-  private SetRelationDefinition(
-      Common<C, S> common,
-      String pluralName,
-      Map<String,
-          DefaultManagedObject<? extends C, ? extends S>> defaultManagedObjects)
-  {
-    super(common);
-    this.pluralName = pluralName;
-    this.defaultManagedObjects = defaultManagedObjects;
-  }
-
-
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public <R, P> R accept(RelationDefinitionVisitor<R, P> v, P p)
-  {
-    return v.visitSet(this, p);
-  }
-
-
-
-  /**
-   * Gets the named default managed object associated with this set
-   * relation definition.
-   *
-   * @param name
-   *          The name of the default managed object (for set relations
-   *          this is the type of the default managed object).
-   * @return The named default managed object.
-   * @throws IllegalArgumentException
-   *           If there is no default managed object associated with the
-   *           provided name.
-   */
-  public DefaultManagedObject<? extends C, ? extends S> getDefaultManagedObject(
-      String name) throws IllegalArgumentException
-  {
-    if (!defaultManagedObjects.containsKey(name))
-    {
-      throw new IllegalArgumentException(
-          "unrecognized default managed object \"" + name + "\"");
+    /**
+     * Gets the named default managed object associated with this set relation
+     * definition.
+     *
+     * @param name
+     *            The name of the default managed object (for set relations this
+     *            is the type of the default managed object).
+     * @return The named default managed object.
+     * @throws IllegalArgumentException
+     *             If there is no default managed object associated with the
+     *             provided name.
+     */
+    public DefaultManagedObject<? extends C, ? extends S> getDefaultManagedObject(String name)
+            throws IllegalArgumentException {
+        if (!defaultManagedObjects.containsKey(name)) {
+            throw new IllegalArgumentException("unrecognized default managed object \"" + name + "\"");
+        }
+        return defaultManagedObjects.get(name);
     }
-    return defaultManagedObjects.get(name);
-  }
 
-
-
-  /**
-   * Gets the names of the default managed objects associated with this
-   * set relation definition.
-   *
-   * @return An unmodifiable set containing the names of the default
-   *         managed object.
-   */
-  public Set<String> getDefaultManagedObjectNames()
-  {
-    return Collections.unmodifiableSet(defaultManagedObjects.keySet());
-  }
-
-
-
-  /**
-   * Gets the plural name of the relation.
-   *
-   * @return The plural name of the relation.
-   */
-  public String getPluralName()
-  {
-    return pluralName;
-  }
-
-
-
-  /**
-   * Gets the user friendly plural name of this relation definition in
-   * the default locale.
-   *
-   * @return Returns the user friendly plural name of this relation
-   *         definition in the default locale.
-   */
-  public Message getUserFriendlyPluralName()
-  {
-    return getUserFriendlyPluralName(Locale.getDefault());
-  }
-
-
-
-  /**
-   * Gets the user friendly plural name of this relation definition in
-   * the specified locale.
-   *
-   * @param locale
-   *          The locale.
-   * @return Returns the user friendly plural name of this relation
-   *         definition in the specified locale.
-   */
-  public Message getUserFriendlyPluralName(Locale locale)
-  {
-    String property =
-        "relation." + getName() + ".user-friendly-plural-name";
-    return ManagedObjectDefinitionI18NResource.getInstance()
-        .getMessage(getParentDefinition(), property, locale);
-  }
-
-
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public void toString(StringBuilder builder)
-  {
-    builder.append("name=");
-    builder.append(getName());
-    builder.append(" type=set parent=");
-    builder.append(getParentDefinition().getName());
-    builder.append(" child=");
-    builder.append(getChildDefinition().getName());
-  }
-
-
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  protected void initialize() throws Exception
-  {
-    for (DefaultManagedObject<?, ?> dmo : defaultManagedObjects
-        .values())
-    {
-      dmo.initialize();
+    /**
+     * Gets the names of the default managed objects associated with this set
+     * relation definition.
+     *
+     * @return An unmodifiable set containing the names of the default managed
+     *         object.
+     */
+    public Set<String> getDefaultManagedObjectNames() {
+        return Collections.unmodifiableSet(defaultManagedObjects.keySet());
     }
-  }
+
+    /**
+     * Gets the plural name of the relation.
+     *
+     * @return The plural name of the relation.
+     */
+    public String getPluralName() {
+        return pluralName;
+    }
+
+    /**
+     * Gets the user friendly plural name of this relation definition in the
+     * default locale.
+     *
+     * @return Returns the user friendly plural name of this relation definition
+     *         in the default locale.
+     */
+    public LocalizableMessage getUserFriendlyPluralName() {
+        return getUserFriendlyPluralName(Locale.getDefault());
+    }
+
+    /**
+     * Gets the user friendly plural name of this relation definition in the
+     * specified locale.
+     *
+     * @param locale
+     *            The locale.
+     * @return Returns the user friendly plural name of this relation definition
+     *         in the specified locale.
+     */
+    public LocalizableMessage getUserFriendlyPluralName(Locale locale) {
+        String property = "relation." + getName() + ".user-friendly-plural-name";
+        return ManagedObjectDefinitionI18NResource.getInstance().getMessage(getParentDefinition(), property, locale);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void toString(StringBuilder builder) {
+        builder.append("name=");
+        builder.append(getName());
+        builder.append(" type=set parent=");
+        builder.append(getParentDefinition().getName());
+        builder.append(" child=");
+        builder.append(getChildDefinition().getName());
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    protected void initialize() throws Exception {
+        for (DefaultManagedObject<?, ?> dmo : defaultManagedObjects.values()) {
+            dmo.initialize();
+        }
+    }
 }

--
Gitblit v1.10.0