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/DNPropertyDefinition.java | 300 +++++++++++++++++++++++++----------------------------------
1 files changed, 127 insertions(+), 173 deletions(-)
diff --git a/opendj-admin/src/main/java/org/opends/server/admin/DNPropertyDefinition.java b/opendj-admin/src/main/java/org/opends/server/admin/DNPropertyDefinition.java
index a27b348..2b5f8da 100644
--- a/opendj-admin/src/main/java/org/opends/server/admin/DNPropertyDefinition.java
+++ b/opendj-admin/src/main/java/org/opends/server/admin/DNPropertyDefinition.java
@@ -27,214 +27,168 @@
package org.opends.server.admin;
-
-
-import static org.opends.server.util.Validator.ensureNotNull;
+import static com.forgerock.opendj.util.Validator.*;
import java.util.EnumSet;
import org.forgerock.opendj.ldap.DN;
-import org.opends.server.types.DirectoryException;
-
-
/**
* DN property definition.
*/
public final class DNPropertyDefinition extends PropertyDefinition<DN> {
- // Optional base DN which all valid values must be immediately
- // subordinate to.
- private final DN baseDN;
-
-
-
- /**
- * An interface for incrementally constructing DN property
- * definitions.
- */
- public static class Builder extends
- AbstractBuilder<DN, DNPropertyDefinition> {
-
// Optional base DN which all valid values must be immediately
// subordinate to.
- private DN baseDN = null;
-
-
-
- // Private constructor
- private Builder(
- AbstractManagedObjectDefinition<?, ?> d, String propertyName) {
- super(d, propertyName);
- }
-
-
+ private final DN baseDN;
/**
- * Set the base DN which all valid values must be immediately
- * subordinate to. By default there is no based DN.
- *
- * @param baseDN
- * The string representation of the base DN.
- * @throws IllegalArgumentException
- * If the provided string is not a valid DN string
- * representation.
+ * An interface for incrementally constructing DN property definitions.
*/
- public void setBaseDN(String baseDN)
- throws IllegalArgumentException {
- if (baseDN == null) {
- setBaseDN((DN) null);
- } else {
- try {
- setBaseDN(DN.decode(baseDN));
- } catch (DirectoryException e) {
- throw new IllegalArgumentException(e);
+ public static class Builder extends AbstractBuilder<DN, DNPropertyDefinition> {
+
+ // Optional base DN which all valid values must be immediately
+ // subordinate to.
+ private DN baseDN = null;
+
+ // Private constructor
+ private Builder(AbstractManagedObjectDefinition<?, ?> d, String propertyName) {
+ super(d, propertyName);
}
- }
+
+ /**
+ * Set the base DN which all valid values must be immediately
+ * subordinate to. By default there is no based DN.
+ *
+ * @param baseDN
+ * The string representation of the base DN.
+ * @throws IllegalArgumentException
+ * If the provided string is not a valid DN string
+ * representation.
+ */
+ public void setBaseDN(String baseDN) throws IllegalArgumentException {
+ if (baseDN == null) {
+ setBaseDN((DN) null);
+ } else {
+ // TODO: is it correct to replace server DN.decode by SDK
+ // valueOf ?
+ setBaseDN(DN.valueOf(baseDN));
+ }
+ }
+
+ /**
+ * Set the base DN which all valid values must be immediately
+ * subordinate to. By default there is no based DN.
+ *
+ * @param baseDN
+ * The base DN.
+ */
+ public void setBaseDN(DN baseDN) {
+ this.baseDN = baseDN;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected DNPropertyDefinition buildInstance(AbstractManagedObjectDefinition<?, ?> d, String propertyName,
+ EnumSet<PropertyOption> options, AdministratorAction adminAction,
+ DefaultBehaviorProvider<DN> defaultBehavior) {
+ return new DNPropertyDefinition(d, propertyName, options, adminAction, defaultBehavior, baseDN);
+ }
}
-
-
/**
- * Set the base DN which all valid values must be immediately
- * subordinate to. By default there is no based DN.
+ * Create a DN property definition builder.
*
- * @param baseDN
- * The base DN.
+ * @param d
+ * The managed object definition associated with this property
+ * definition.
+ * @param propertyName
+ * The property name.
+ * @return Returns the new boolean property definition builder.
*/
- public void setBaseDN(DN baseDN) {
- this.baseDN = baseDN;
+ public static Builder createBuilder(AbstractManagedObjectDefinition<?, ?> d, String propertyName) {
+ return new Builder(d, propertyName);
}
+ // Private constructor.
+ private DNPropertyDefinition(AbstractManagedObjectDefinition<?, ?> d, String propertyName,
+ EnumSet<PropertyOption> options, AdministratorAction adminAction,
+ DefaultBehaviorProvider<DN> defaultBehavior, DN baseDN) {
+ super(d, DN.class, propertyName, options, adminAction, defaultBehavior);
+ this.baseDN = baseDN;
+ }
+ /**
+ * Get the base DN which all valid values must be immediately subordinate
+ * to, or <code>null</code> if there is no based DN.
+ *
+ * @return Returns the base DN which all valid values must be immediately
+ * subordinate to.
+ */
+ public DN getBaseDN() {
+ return baseDN;
+ }
/**
* {@inheritDoc}
*/
@Override
- protected DNPropertyDefinition buildInstance(
- AbstractManagedObjectDefinition<?, ?> d, String propertyName,
- EnumSet<PropertyOption> options,
- AdministratorAction adminAction,
- DefaultBehaviorProvider<DN> defaultBehavior) {
- return new DNPropertyDefinition(d, propertyName, options,
- adminAction, defaultBehavior, baseDN);
+ public void validateValue(DN value) throws IllegalPropertyValueException {
+ ensureNotNull(value);
+
+ if (baseDN != null) {
+ DN parent = value.parent();
+
+ if (parent == null) {
+ parent = DN.rootDN();
+ }
+
+ if (!parent.equals(baseDN)) {
+ throw new IllegalPropertyValueException(this, value);
+ }
+ }
}
- }
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public DN decodeValue(String value) throws IllegalPropertyValueStringException {
+ ensureNotNull(value);
-
- /**
- * Create a DN property definition builder.
- *
- * @param d
- * The managed object definition associated with this
- * property definition.
- * @param propertyName
- * The property name.
- * @return Returns the new boolean property definition builder.
- */
- public static Builder createBuilder(
- AbstractManagedObjectDefinition<?, ?> d, String propertyName) {
- return new Builder(d, propertyName);
- }
-
-
-
- // Private constructor.
- private DNPropertyDefinition(
- AbstractManagedObjectDefinition<?, ?> d, String propertyName,
- EnumSet<PropertyOption> options,
- AdministratorAction adminAction,
- DefaultBehaviorProvider<DN> defaultBehavior, DN baseDN) {
- super(d, DN.class, propertyName, options, adminAction, defaultBehavior);
- this.baseDN = baseDN;
- }
-
-
-
- /**
- * Get the base DN which all valid values must be immediately
- * subordinate to, or <code>null</code> if there is no based DN.
- *
- * @return Returns the base DN which all valid values must be
- * immediately subordinate to.
- */
- public DN getBaseDN() {
- return baseDN;
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void validateValue(DN value)
- throws IllegalPropertyValueException {
- ensureNotNull(value);
-
- if (baseDN != null) {
- DN parent = value.getParent();
-
- if (parent == null) {
- parent = DN.nullDN();
- }
-
- if (!parent.equals(baseDN)) {
- throw new IllegalPropertyValueException(this, value);
- }
+ try {
+ // TODO: is it correct to replace server DN.decode by SDK valueOf ?
+ DN dn = DN.valueOf(value);
+ validateValue(dn);
+ return dn;
+ } catch (IllegalPropertyValueException e) {
+ throw new IllegalPropertyValueStringException(this, value);
+ }
}
- }
-
-
- /**
- * {@inheritDoc}
- */
- @Override
- public DN decodeValue(String value)
- throws IllegalPropertyValueStringException {
- ensureNotNull(value);
-
- try {
- DN dn = DN.decode(value);
- validateValue(dn);
- return dn;
- } catch (DirectoryException e) {
- throw new IllegalPropertyValueStringException(this, value);
- } catch (IllegalPropertyValueException e) {
- throw new IllegalPropertyValueStringException(this, value);
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public <R, P> R accept(PropertyDefinitionVisitor<R, P> v, P p) {
+ return v.visitDN(this, p);
}
- }
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public <R, P> R accept(PropertyValueVisitor<R, P> v, DN value, P p) {
+ return v.visitDN(this, value, p);
+ }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public <R, P> R accept(PropertyDefinitionVisitor<R, P> v, P p) {
- return v.visitDN(this, p);
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- @Override
- public <R, P> R accept(PropertyValueVisitor<R, P> v, DN value, P p) {
- return v.visitDN(this, value, p);
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- @Override
- public int compare(DN o1, DN o2) {
- return o1.compareTo(o2);
- }
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public int compare(DN o1, DN o2) {
+ return o1.compareTo(o2);
+ }
}
--
Gitblit v1.10.0