1 package org
.argeo
.util
.directory
.ldap
;
3 import javax
.naming
.directory
.Attributes
;
4 import javax
.naming
.ldap
.LdapName
;
5 import javax
.naming
.ldap
.Rdn
;
7 import org
.argeo
.util
.directory
.HierarchyUnit
;
9 /** LDIF/LDAP based implementation of {@link HierarchyUnit}. */
10 public class LdapHierarchyUnit
extends DefaultLdapEntry
implements HierarchyUnit
{
11 private final boolean functional
;
13 public LdapHierarchyUnit(AbstractLdapDirectory directory
, LdapName dn
, Attributes attributes
) {
14 super(directory
, dn
, attributes
);
16 Rdn rdn
= LdapNameUtils
.getLastRdn(dn
);
17 functional
= !(directory
.getUserBaseRdn().equals(rdn
) || directory
.getGroupBaseRdn().equals(rdn
)
18 || directory
.getSystemRoleBaseRdn().equals(rdn
) );
22 public HierarchyUnit
getParent() {
23 return getDirectoryDao().doGetHierarchyUnit(LdapNameUtils
.getParent(getDn()));
27 public Iterable
<HierarchyUnit
> getDirectHierarchyUnits(boolean functionalOnly
) {
28 return getDirectoryDao().doGetDirectHierarchyUnits(getDn(), functionalOnly
);
32 public boolean isFunctional() {
37 public String
getHierarchyUnitName() {
38 String name
= LdapNameUtils
.getLastRdnValue(getDn());
39 // TODO check ou, o, etc.
44 public String
getContext() {
45 return getDn().toString();
49 public String
toString() {
50 return "Hierarchy Unit " + getDn().toString();