From c6f5f43745ec42f805b4ff0809dcb8d5cdbc1ba3 Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Tue, 17 Dec 2013 14:07:42 +0000
Subject: [PATCH] Checkpoint commit for OPENDJ-1235 : Migrate configuration framework
---
opendj-sdk/opendj-admin/src/main/java/org/opends/server/admin/client/ldap/LDAPNameBuilder.java | 36 +++++++++++++++++++++++-------------
1 files changed, 23 insertions(+), 13 deletions(-)
diff --git a/opendj-sdk/opendj-admin/src/main/java/org/opends/server/admin/client/ldap/LDAPNameBuilder.java b/opendj-sdk/opendj-admin/src/main/java/org/opends/server/admin/client/ldap/LDAPNameBuilder.java
index 9f5f372..f8fba78 100644
--- a/opendj-sdk/opendj-admin/src/main/java/org/opends/server/admin/client/ldap/LDAPNameBuilder.java
+++ b/opendj-sdk/opendj-admin/src/main/java/org/opends/server/admin/client/ldap/LDAPNameBuilder.java
@@ -26,8 +26,10 @@
package org.opends.server.admin.client.ldap;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedList;
+import java.util.List;
import org.forgerock.opendj.ldap.DN;
import org.forgerock.opendj.ldap.RDN;
@@ -104,10 +106,9 @@
return builder.getInstance();
}
- // The list of RDNs in big-endian order.
+ /** The list of RDNs in big-endian order. */
private final LinkedList<RDN> rdns;
- // The LDAP profile.
private final LDAPProfile profile;
/**
@@ -145,9 +146,24 @@
public void appendManagedObjectPathElement(RelationDefinition<?, ?> r) {
// Add the RDN sequence representing the relation.
DN dn = DN.valueOf(profile.getRelationRDNSequence(r));
+ List<RDN> rdnsOfDn = getRdnsInBigEndianOrder(dn);
+ rdns.addAll(rdnsOfDn);
+ }
+
+ /**
+ * Returns list of RDNs of provided DN in big-endian order.
+ *
+ * @param dn
+ * The DN to decompose in RDNs.
+ * @return rdns in big endian order
+ */
+ private List<RDN> getRdnsInBigEndianOrder(DN dn) {
+ List<RDN> rdnsOfDn = new ArrayList<RDN>();
for (RDN rdn : dn) {
- rdns.add(rdn);
+ rdnsOfDn.add(rdn);
}
+ Collections.reverse(rdnsOfDn);
+ return rdnsOfDn;
}
/**
@@ -188,16 +204,10 @@
* @return Returns the new DN instance.
*/
public DN getInstance() {
- if (rdns.isEmpty()) {
- return DN.rootDN();
+ DN dn = DN.rootDN();
+ for (RDN rdn : rdns) {
+ dn = dn.child(rdn);
}
- else {
- Collections.reverse(rdns);
- DN dn = DN.valueOf(rdns.removeFirst().toString());
- for (RDN rdn : rdns) {
- dn = dn.child(rdn);
- }
- return dn;
- }
+ return dn;
}
}
--
Gitblit v1.10.0