]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.util/src/org/argeo/util/directory/ldap/LdapHierarchyUnit.java
Disable OSGi configuration admin and LDIF-based deploy config.
[lgpl/argeo-commons.git] / org.argeo.util / src / org / argeo / util / directory / ldap / LdapHierarchyUnit.java
1 package org.argeo.util.directory.ldap;
2
3 import javax.naming.directory.Attributes;
4 import javax.naming.ldap.LdapName;
5 import javax.naming.ldap.Rdn;
6
7 import org.argeo.util.directory.HierarchyUnit;
8
9 /** LDIF/LDAP based implementation of {@link HierarchyUnit}. */
10 public class LdapHierarchyUnit extends DefaultLdapEntry implements HierarchyUnit {
11 private final boolean functional;
12
13 public LdapHierarchyUnit(AbstractLdapDirectory directory, LdapName dn, Attributes attributes) {
14 super(directory, dn, attributes);
15
16 Rdn rdn = LdapNameUtils.getLastRdn(dn);
17 functional = !(directory.getUserBaseRdn().equals(rdn) || directory.getGroupBaseRdn().equals(rdn)
18 || directory.getSystemRoleBaseRdn().equals(rdn) );
19 }
20
21 @Override
22 public HierarchyUnit getParent() {
23 return getDirectoryDao().doGetHierarchyUnit(LdapNameUtils.getParent(getDn()));
24 }
25
26 @Override
27 public Iterable<HierarchyUnit> getDirectHierarchyUnits(boolean functionalOnly) {
28 return getDirectoryDao().doGetDirectHierarchyUnits(getDn(), functionalOnly);
29 }
30
31 @Override
32 public boolean isFunctional() {
33 return functional;
34 }
35
36 @Override
37 public String getHierarchyUnitName() {
38 String name = LdapNameUtils.getLastRdnValue(getDn());
39 // TODO check ou, o, etc.
40 return name;
41 }
42
43 @Override
44 public String getContext() {
45 return getDn().toString();
46 }
47
48 @Override
49 public String toString() {
50 return "Hierarchy Unit " + getDn().toString();
51 }
52
53 }