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