+ @Override
+ public HierarchyUnit getHierarchyUnit(String path) {
+ LdapName dn = LdapNameUtils.toLdapName(path);
+ return hierarchy.get(dn);
+ }
+
+ @Override
+ public HierarchyUnit getHierarchyUnit(Role role) {
+ LdapName dn = LdapNameUtils.toLdapName(role.getName());
+ // 2 levels
+ LdapName huDn = LdapNameUtils.getParent(LdapNameUtils.getParent(dn));
+ HierarchyUnit hierarchyUnit = hierarchy.get(huDn);
+ if (hierarchyUnit == null)
+ throw new IllegalStateException("No hierarchy unit found for " + role);
+ return hierarchyUnit;
+ }