From cc08b5573ab5fb3b88ef64a48d3edeae475b852a Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Tue, 04 Sep 2007 19:27:20 +0000
Subject: [PATCH] Move the DNBuilder implementation into the core ManagedObjectPath class and add the following methods:
---
opends/src/server/org/opends/server/admin/server/DNBuilder.java | 116 ++++++---------------------------------------------------
1 files changed, 13 insertions(+), 103 deletions(-)
diff --git a/opends/src/server/org/opends/server/admin/server/DNBuilder.java b/opends/src/server/org/opends/server/admin/server/DNBuilder.java
index 35c62cd..7f2d764 100644
--- a/opends/src/server/org/opends/server/admin/server/DNBuilder.java
+++ b/opends/src/server/org/opends/server/admin/server/DNBuilder.java
@@ -29,41 +29,30 @@
-import org.opends.server.admin.AbstractManagedObjectDefinition;
-import org.opends.server.admin.Configuration;
-import org.opends.server.admin.ConfigurationClient;
-import org.opends.server.admin.InstantiableRelationDefinition;
import org.opends.server.admin.LDAPProfile;
import org.opends.server.admin.ManagedObjectPath;
-import org.opends.server.admin.ManagedObjectPathSerializer;
-import org.opends.server.admin.OptionalRelationDefinition;
import org.opends.server.admin.RelationDefinition;
-import org.opends.server.admin.SingletonRelationDefinition;
-import org.opends.server.core.DirectoryServer;
-import org.opends.server.types.AttributeType;
-import org.opends.server.types.AttributeValue;
import org.opends.server.types.DN;
import org.opends.server.types.DirectoryException;
-import org.opends.server.types.RDN;
/**
- * A strategy for creating <code>DN</code>s from managed object paths.
+ * A factory class for creating <code>DN</code>s from managed
+ * object paths.
*/
-final class DNBuilder implements ManagedObjectPathSerializer {
+final class DNBuilder {
/**
* Creates a new DN representing the specified managed object path.
*
* @param path
* The managed object path.
- * @return Returns a new DN representing the specified managed object path.
+ * @return Returns a new DN representing the specified managed
+ * object path.
*/
public static DN create(ManagedObjectPath<?, ?> path) {
- DNBuilder builder = new DNBuilder();
- path.serialize(builder);
- return builder.getInstance();
+ return path.toDN();
}
@@ -81,61 +70,12 @@
*/
public static DN create(ManagedObjectPath<?, ?> path,
RelationDefinition<?, ?> relation) {
- DNBuilder builder = new DNBuilder();
- path.serialize(builder);
- builder.appendManagedObjectPathElement(relation);
- return builder.getInstance();
- }
+ DN dn = path.toDN();
- // The current DN.
- private DN dn;
-
- // The LDAP profile.
- private final LDAPProfile profile;
-
-
-
- /**
- * Create a new DN builder.
- */
- public DNBuilder() {
- this.dn = DN.nullDN();
- this.profile = LDAPProfile.getInstance();
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- public <C extends ConfigurationClient, S extends Configuration>
- void appendManagedObjectPathElement(
- InstantiableRelationDefinition<? super C, ? super S> r,
- AbstractManagedObjectDefinition<C, S> d, String name) {
- // Add the RDN sequence representing the relation.
- appendManagedObjectPathElement((RelationDefinition<?, ?>) r);
-
- // Now add the single RDN representing the named instance.
- String type = profile.getInstantiableRelationChildRDNType(r);
- AttributeType atype = DirectoryServer.getAttributeType(type.toLowerCase(),
- true);
- AttributeValue avalue = new AttributeValue(atype, name);
- dn = dn.concat(RDN.create(atype, avalue));
- }
-
-
-
- /**
- * Appends the RDN sequence representing the provided relation.
- *
- * @param r
- * The relation definition.
- */
- public void appendManagedObjectPathElement(RelationDefinition<?, ?> r) {
- // Add the RDN sequence representing the relation.
try {
- DN localName = DN.decode(profile.getRelationRDNSequence(r));
- dn = dn.concat(localName);
+ LDAPProfile profile = LDAPProfile.getInstance();
+ DN localName = DN.decode(profile.getRelationRDNSequence(relation));
+ return dn.concat(localName);
} catch (DirectoryException e) {
throw new RuntimeException(e);
}
@@ -143,38 +83,8 @@
- /**
- * {@inheritDoc}
- */
- public <C extends ConfigurationClient, S extends Configuration>
- void appendManagedObjectPathElement(
- OptionalRelationDefinition<? super C, ? super S> r,
- AbstractManagedObjectDefinition<C, S> d) {
- // Add the RDN sequence representing the relation.
- appendManagedObjectPathElement((RelationDefinition<?, ?>) r);
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- public <C extends ConfigurationClient, S extends Configuration>
- void appendManagedObjectPathElement(
- SingletonRelationDefinition<? super C, ? super S> r,
- AbstractManagedObjectDefinition<C, S> d) {
- // Add the RDN sequence representing the relation.
- appendManagedObjectPathElement((RelationDefinition<?, ?>) r);
- }
-
-
-
- /**
- * Create a new DN using the current state of this DN builder.
- *
- * @return Returns the new DN instance.
- */
- public DN getInstance() {
- return dn;
+ // Prevent instantiation.
+ private DNBuilder() {
+ // No implementation required.
}
}
--
Gitblit v1.10.0