Directory as a hierarchy unit.
[lgpl/argeo-commons.git] / org.argeo.util / src / org / argeo / util / directory / ldap / AbstractLdapDirectory.java
index eab82e0ec3a0ba2ea2426b01d62a6d7ab20f4c56..55449a70748f3a0f7b4bf079123adc70988b4b7b 100644 (file)
@@ -281,6 +281,26 @@ public abstract class AbstractLdapDirectory implements Directory, XAResourceProv
                return directoryDao.doGetDirectHierarchyUnits(baseDn, functionalOnly);
        }
 
+       @Override
+       public String getHierarchyUnitName() {
+               return getName();
+       }
+
+       @Override
+       public HierarchyUnit getParent() {
+               return null;
+       }
+
+       @Override
+       public boolean isFunctional() {
+               return true;
+       }
+
+       @Override
+       public Directory getDirectory() {
+               return this;
+       }
+
        /*
         * PATHS
         */
@@ -314,7 +334,9 @@ public abstract class AbstractLdapDirectory implements Directory, XAResourceProv
                        LdapName name = (LdapName) getBaseDn().clone();
                        String[] segments = path.split("/");
                        Rdn parentRdn = null;
-                       for (String segment : segments) {
+                       // segments[0] is the directory itself
+                       for (int i = 0; i < segments.length; i++) {
+                               String segment = segments[i];
                                // TODO make attr names configurable ?
                                String attr = LdapAttrs.ou.name();
                                if (parentRdn != null) {