package org.argeo.util.directory.ldap;
-import javax.naming.directory.Attributes;
+import java.util.Locale;
+
import javax.naming.ldap.LdapName;
import javax.naming.ldap.Rdn;
public class LdapHierarchyUnit extends DefaultLdapEntry implements HierarchyUnit {
private final boolean functional;
- public LdapHierarchyUnit(AbstractLdapDirectory directory, LdapName dn, Attributes attributes) {
- super(directory, dn, attributes);
+ public LdapHierarchyUnit(AbstractLdapDirectory directory, LdapName dn) {
+ super(directory, dn);
Rdn rdn = LdapNameUtils.getLastRdn(dn);
functional = !(directory.getUserBaseRdn().equals(rdn) || directory.getGroupBaseRdn().equals(rdn)
- || directory.getSystemRoleBaseRdn().equals(rdn) );
+ || directory.getSystemRoleBaseRdn().equals(rdn));
}
@Override
}
@Override
- public String getContext() {
+ public String getHierarchyUnitLabel(Locale locale) {
+ String key = LdapNameUtils.getLastRdn(getDn()).getType();
+ Object value = LdapEntry.getLocalized(getProperties(), key, locale);
+ if (value == null)
+ value = getHierarchyUnitName();
+ assert value != null;
+ return value.toString();
+ }
+
+ @Override
+ public String getBase() {
return getDn().toString();
}