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/EnumPropertyDefinition.java |  366 ++++++++++++++++++++++-----------------------------
 1 files changed, 160 insertions(+), 206 deletions(-)

diff --git a/opendj-admin/src/main/java/org/opends/server/admin/EnumPropertyDefinition.java b/opendj-admin/src/main/java/org/opends/server/admin/EnumPropertyDefinition.java
index 815bdfc..5ebc2ff 100644
--- a/opendj-admin/src/main/java/org/opends/server/admin/EnumPropertyDefinition.java
+++ b/opendj-admin/src/main/java/org/opends/server/admin/EnumPropertyDefinition.java
@@ -26,11 +26,8 @@
  */
 
 package org.opends.server.admin;
-import org.opends.messages.Message;
 
-
-
-import static org.opends.server.util.Validator.ensureNotNull;
+import static com.forgerock.opendj.util.Validator.*;
 
 import java.util.EnumSet;
 import java.util.HashMap;
@@ -38,238 +35,195 @@
 import java.util.Map;
 import java.util.MissingResourceException;
 
-
+import org.forgerock.i18n.LocalizableMessage;
 
 /**
  * Enumeration property definition.
  *
  * @param <E>
- *          The enumeration that should be used for values of this
- *          property definition.
+ *            The enumeration that should be used for values of this property
+ *            definition.
  */
-public final class EnumPropertyDefinition<E extends Enum<E>> extends
-    PropertyDefinition<E> {
-
-  /**
-   * An interface for incrementally constructing enumeration property
-   * definitions.
-   *
-   * @param <E>
-   *          The enumeration that should be used for values of this
-   *          property definition.
-   */
-  public static class Builder<E extends Enum<E>> extends
-      AbstractBuilder<E, EnumPropertyDefinition<E>> {
-
-    // The enumeration class.
-    private Class<E> enumClass;
-
-
-
-    // Private constructor
-    private Builder(
-        AbstractManagedObjectDefinition<?, ?> d, String propertyName) {
-      super(d, propertyName);
-      this.enumClass = null;
-    }
-
-
+public final class EnumPropertyDefinition<E extends Enum<E>> extends PropertyDefinition<E> {
 
     /**
-     * Set the enumeration class which should be used for values of
-     * this property definition.
+     * An interface for incrementally constructing enumeration property
+     * definitions.
      *
-     * @param enumClass
-     *          The enumeration class which should be used for values
-     *          of this property definition.
+     * @param <E>
+     *            The enumeration that should be used for values of this
+     *            property definition.
      */
-    public final void setEnumClass(Class<E> enumClass) {
-      this.enumClass = enumClass;
+    public static class Builder<E extends Enum<E>> extends AbstractBuilder<E, EnumPropertyDefinition<E>> {
+
+        // The enumeration class.
+        private Class<E> enumClass;
+
+        // Private constructor
+        private Builder(AbstractManagedObjectDefinition<?, ?> d, String propertyName) {
+            super(d, propertyName);
+            this.enumClass = null;
+        }
+
+        /**
+         * Set the enumeration class which should be used for values of this
+         * property definition.
+         *
+         * @param enumClass
+         *            The enumeration class which should be used for values of
+         *            this property definition.
+         */
+        public final void setEnumClass(Class<E> enumClass) {
+            this.enumClass = enumClass;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        protected EnumPropertyDefinition<E> buildInstance(AbstractManagedObjectDefinition<?, ?> d, String propertyName,
+                EnumSet<PropertyOption> options, AdministratorAction adminAction,
+                DefaultBehaviorProvider<E> defaultBehavior) {
+            // Make sure that the enumeration class has been defined.
+            if (enumClass == null) {
+                throw new IllegalStateException("Enumeration class undefined");
+            }
+
+            return new EnumPropertyDefinition<E>(d, propertyName, options, adminAction, defaultBehavior, enumClass);
+        }
     }
 
+    /**
+     * Create an enumeration property definition builder.
+     *
+     * @param <E>
+     *            The enumeration that should be used for values of this
+     *            property definition.
+     * @param d
+     *            The managed object definition associated with this property
+     *            definition.
+     * @param propertyName
+     *            The property name.
+     * @return Returns the new enumeration property definition builder.
+     */
+    public static <E extends Enum<E>> Builder<E> createBuilder(AbstractManagedObjectDefinition<?, ?> d,
+            String propertyName) {
+        return new Builder<E>(d, propertyName);
+    }
 
+    // The enumeration class.
+    private final Class<E> enumClass;
+
+    // Map used for decoding values.
+    private final Map<String, E> decodeMap;
+
+    // Private constructor.
+    private EnumPropertyDefinition(AbstractManagedObjectDefinition<?, ?> d, String propertyName,
+            EnumSet<PropertyOption> options, AdministratorAction adminAction,
+            DefaultBehaviorProvider<E> defaultBehavior, Class<E> enumClass) {
+        super(d, enumClass, propertyName, options, adminAction, defaultBehavior);
+        this.enumClass = enumClass;
+
+        // Initialize the decoding map.
+        this.decodeMap = new HashMap<String, E>();
+        for (E value : EnumSet.<E> allOf(enumClass)) {
+            String s = value.toString().trim().toLowerCase();
+            this.decodeMap.put(s, value);
+        }
+    }
 
     /**
      * {@inheritDoc}
      */
     @Override
-    protected EnumPropertyDefinition<E> buildInstance(
-        AbstractManagedObjectDefinition<?, ?> d, String propertyName,
-        EnumSet<PropertyOption> options,
-        AdministratorAction adminAction,
-        DefaultBehaviorProvider<E> defaultBehavior) {
-      // Make sure that the enumeration class has been defined.
-      if (enumClass == null) {
-        throw new IllegalStateException("Enumeration class undefined");
-      }
-
-      return new EnumPropertyDefinition<E>(d, propertyName, options,
-          adminAction, defaultBehavior, enumClass);
+    public <R, P> R accept(PropertyDefinitionVisitor<R, P> v, P p) {
+        return v.visitEnum(this, p);
     }
-  }
 
-
-
-  /**
-   * Create an enumeration property definition builder.
-   *
-   * @param <E>
-   *          The enumeration that should be used for values of this
-   *          property definition.
-   * @param d
-   *          The managed object definition associated with this
-   *          property definition.
-   * @param propertyName
-   *          The property name.
-   * @return Returns the new enumeration property definition builder.
-   */
-  public static <E extends Enum<E>> Builder<E> createBuilder(
-      AbstractManagedObjectDefinition<?, ?> d, String propertyName) {
-    return new Builder<E>(d, propertyName);
-  }
-
-  // The enumeration class.
-  private final Class<E> enumClass;
-
-  // Map used for decoding values.
-  private final Map<String, E> decodeMap;
-
-
-
-  // Private constructor.
-  private EnumPropertyDefinition(AbstractManagedObjectDefinition<?, ?> d,
-      String propertyName, EnumSet<PropertyOption> options,
-      AdministratorAction adminAction,
-      DefaultBehaviorProvider<E> defaultBehavior, Class<E> enumClass) {
-    super(d, enumClass, propertyName, options, adminAction, defaultBehavior);
-    this.enumClass = enumClass;
-
-    // Initialize the decoding map.
-    this.decodeMap = new HashMap<String, E>();
-    for (E value : EnumSet.<E> allOf(enumClass)) {
-      String s = value.toString().trim().toLowerCase();
-      this.decodeMap.put(s, value);
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public <R, P> R accept(PropertyValueVisitor<R, P> v, E value, P p) {
+        return v.visitEnum(this, value, p);
     }
-  }
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public E decodeValue(String value) throws IllegalPropertyValueStringException {
+        ensureNotNull(value);
 
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public <R, P> R accept(PropertyDefinitionVisitor<R, P> v, P p) {
-    return v.visitEnum(this, p);
-  }
-
-
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public <R, P> R accept(PropertyValueVisitor<R, P> v, E value, P p) {
-    return v.visitEnum(this, value, p);
-  }
-
-
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public E decodeValue(String value)
-      throws IllegalPropertyValueStringException {
-    ensureNotNull(value);
-
-    String nvalue = value.trim().toLowerCase();
-    E eValue = decodeMap.get(nvalue);
-    if (eValue == null) {
-      throw new IllegalPropertyValueStringException(this, value);
-    } else {
-      return eValue;
+        String nvalue = value.trim().toLowerCase();
+        E eValue = decodeMap.get(nvalue);
+        if (eValue == null) {
+            throw new IllegalPropertyValueStringException(this, value);
+        } else {
+            return eValue;
+        }
     }
-  }
 
-
-
-  /**
-   * Get the enumeration class used for values of this property.
-   *
-   * @return Returns the enumeration class used for values of this
-   *         property.
-   */
-  public Class<E> getEnumClass() {
-    return enumClass;
-  }
-
-
-
-  /**
-   * Gets the synopsis of the specified enumeration value of this
-   * enumeration property definition in the default locale.
-   *
-   * @param value
-   *          The enumeration value.
-   * @return Returns the synopsis of the specified enumeration value
-   *         of this enumeration property definition in the default
-   *         locale.
-   */
-  public final Message getValueSynopsis(E value) {
-    return getValueSynopsis(Locale.getDefault(), value);
-  }
-
-
-
-  /**
-   * Gets the synopsis of the specified enumeration value of this
-   * enumeration property definition in the specified locale.
-   *
-   * @param value
-   *          The enumeration value.
-   * @param locale
-   *          The locale.
-   * @return Returns the synopsis of the specified enumeration value
-   *         of this enumeration property definition in the specified
-   *         locale.
-   */
-  public final Message getValueSynopsis(Locale locale, E value) {
-    ManagedObjectDefinitionI18NResource resource =
-      ManagedObjectDefinitionI18NResource.getInstance();
-    String property = "property." + getName()
-        + ".syntax.enumeration.value." + value.toString()
-        + ".synopsis";
-    try {
-      return resource.getMessage(getManagedObjectDefinition(),
-          property, locale);
-    } catch (MissingResourceException e) {
-      return null;
+    /**
+     * Get the enumeration class used for values of this property.
+     *
+     * @return Returns the enumeration class used for values of this property.
+     */
+    public Class<E> getEnumClass() {
+        return enumClass;
     }
-  }
 
+    /**
+     * Gets the synopsis of the specified enumeration value of this enumeration
+     * property definition in the default locale.
+     *
+     * @param value
+     *            The enumeration value.
+     * @return Returns the synopsis of the specified enumeration value of this
+     *         enumeration property definition in the default locale.
+     */
+    public final LocalizableMessage getValueSynopsis(E value) {
+        return getValueSynopsis(Locale.getDefault(), value);
+    }
 
+    /**
+     * Gets the synopsis of the specified enumeration value of this enumeration
+     * property definition in the specified locale.
+     *
+     * @param value
+     *            The enumeration value.
+     * @param locale
+     *            The locale.
+     * @return Returns the synopsis of the specified enumeration value of this
+     *         enumeration property definition in the specified locale.
+     */
+    public final LocalizableMessage getValueSynopsis(Locale locale, E value) {
+        ManagedObjectDefinitionI18NResource resource = ManagedObjectDefinitionI18NResource.getInstance();
+        String property = "property." + getName() + ".syntax.enumeration.value." + value.toString() + ".synopsis";
+        try {
+            return resource.getMessage(getManagedObjectDefinition(), property, locale);
+        } catch (MissingResourceException e) {
+            return null;
+        }
+    }
 
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public String normalizeValue(E value)
-      throws IllegalPropertyValueException {
-    ensureNotNull(value);
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public String normalizeValue(E value) throws IllegalPropertyValueException {
+        ensureNotNull(value);
 
-    return value.toString().trim().toLowerCase();
-  }
+        return value.toString().trim().toLowerCase();
+    }
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void validateValue(E value) throws IllegalPropertyValueException {
+        ensureNotNull(value);
 
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public void validateValue(E value)
-      throws IllegalPropertyValueException {
-    ensureNotNull(value);
-
-    // No additional validation required.
-  }
+        // No additional validation required.
+    }
 }

--
Gitblit v1.10.0