Simplify hierarchy units
[lgpl/argeo-commons.git] / org.argeo.util / src / org / argeo / osgi / useradmin / LdifHierarchyUnit.java
index 593416259c0fba213001d9085710169da8cb7c86..271f236115d330911e34974252e6ebbd9dc2028e 100644 (file)
@@ -32,19 +32,14 @@ class LdifHierarchyUnit implements HierarchyUnit {
                this.attributes = attributes;
        }
 
-       @Override
-       public int getHierarchyChildCount() {
-               return children.size();
-       }
-
        @Override
        public HierarchyUnit getParent() {
                return parent;
        }
 
        @Override
-       public HierarchyUnit getHierarchyChild(int i) {
-               return children.get(i);
+       public Iterable<HierarchyUnit> getDirectHierachyUnits() {
+               return children;
        }
 
        @Override
@@ -54,7 +49,7 @@ class LdifHierarchyUnit implements HierarchyUnit {
 
        @Override
        public String getHierarchyUnitName() {
-               String name = LdapNameUtils.getLastRdnAsString(dn);
+               String name = LdapNameUtils.getLastRdnValue(dn);
                // TODO check ou, o, etc.
                return name;
        }
@@ -69,7 +64,7 @@ class LdifHierarchyUnit implements HierarchyUnit {
        }
 
        @Override
-       public List<? extends Role> getRoles(String filter, boolean deep) {
+       public List<? extends Role> getHierarchyUnitRoles(String filter, boolean deep) {
                try {
                        return directory.getRoles(dn, filter, deep);
                } catch (InvalidSyntaxException e) {
@@ -77,6 +72,11 @@ class LdifHierarchyUnit implements HierarchyUnit {
                }
        }
 
+       @Override
+       public UserDirectory getDirectory() {
+               return directory;
+       }
+
        @Override
        public int hashCode() {
                return dn.hashCode();