X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.util%2Fsrc%2Forg%2Fargeo%2Futil%2Fdirectory%2Fldap%2FLdapHierarchyUnit.java;h=a9043cc38cb13c941982b345a39aeb1f5ce2e129;hb=0ce8ecfe974cec9f524c16884209cd08544d890d;hp=d76c449b0ad84601def94459661c9f000535e339;hpb=e2ffdf6872592aa22d0de2b0ec69ee4eca698c45;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.util/src/org/argeo/util/directory/ldap/LdapHierarchyUnit.java b/org.argeo.util/src/org/argeo/util/directory/ldap/LdapHierarchyUnit.java index d76c449b0..a9043cc38 100644 --- a/org.argeo.util/src/org/argeo/util/directory/ldap/LdapHierarchyUnit.java +++ b/org.argeo.util/src/org/argeo/util/directory/ldap/LdapHierarchyUnit.java @@ -1,32 +1,17 @@ package org.argeo.util.directory.ldap; -import java.util.Objects; - import javax.naming.directory.Attributes; import javax.naming.ldap.LdapName; import javax.naming.ldap.Rdn; -import org.argeo.util.directory.Directory; import org.argeo.util.directory.HierarchyUnit; /** LDIF/LDAP based implementation of {@link HierarchyUnit}. */ -public class LdapHierarchyUnit implements HierarchyUnit { - private final AbstractLdapDirectory directory; - - private final LdapName dn; +public class LdapHierarchyUnit extends DefaultLdapEntry implements HierarchyUnit { private final boolean functional; - private final Attributes attributes; - -// HierarchyUnit parent; -// List children = new ArrayList<>(); public LdapHierarchyUnit(AbstractLdapDirectory directory, LdapName dn, Attributes attributes) { - Objects.requireNonNull(directory); - Objects.requireNonNull(dn); - - this.directory = directory; - this.dn = dn; - this.attributes = attributes; + super(directory, dn, attributes); Rdn rdn = LdapNameUtils.getLastRdn(dn); functional = !(directory.getUserBaseRdn().equals(rdn) || directory.getGroupBaseRdn().equals(rdn) @@ -35,21 +20,12 @@ public class LdapHierarchyUnit implements HierarchyUnit { @Override public HierarchyUnit getParent() { - return directory.doGetHierarchyUnit(LdapNameUtils.getParent(dn)); + return getDirectoryDao().doGetHierarchyUnit(LdapNameUtils.getParent(getDn())); } @Override public Iterable getDirectHierachyUnits(boolean functionalOnly) { -// List res = new ArrayList<>(); -// if (functionalOnly) -// for (HierarchyUnit hu : children) { -// if (hu.isFunctional()) -// res.add(hu); -// } -// else -// res.addAll(children); -// return Collections.unmodifiableList(res); - return directory.doGetDirectHierarchyUnits(dn, functionalOnly); + return getDirectoryDao().doGetDirectHierarchyUnits(getDn(), functionalOnly); } @Override @@ -59,40 +35,19 @@ public class LdapHierarchyUnit implements HierarchyUnit { @Override public String getHierarchyUnitName() { - String name = LdapNameUtils.getLastRdnValue(dn); + String name = LdapNameUtils.getLastRdnValue(getDn()); // TODO check ou, o, etc. return name; } - public Attributes getAttributes() { - return attributes; - } - @Override public String getContext() { - return dn.toString(); - } - - @Override - public Directory getDirectory() { - return directory; - } - - @Override - public int hashCode() { - return dn.hashCode(); - } - - @Override - public boolean equals(Object obj) { - if (!(obj instanceof LdapHierarchyUnit)) - return false; - return ((LdapHierarchyUnit) obj).dn.equals(dn); + return getDn().toString(); } @Override public String toString() { - return "Hierarchy Unit " + dn.toString(); + return "Hierarchy Unit " + getDn().toString(); } }