X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.api.cms%2Fsrc%2Forg%2Fargeo%2Fapi%2Fcms%2Fdirectory%2FHierarchyUnit.java;h=52509e854dcd8d69a067e7c2a5f07214c3b1b92b;hb=d2fc7fa541b15f81c9372813f6ea5ba58c700271;hp=04593d94e428ef766fa87831fbaa0f3c745aaee7;hpb=54df376a9c2dd458a82eaa09bfbb718fe699dd0d;p=lgpl%2Fargeo-commons.git
diff --git a/org.argeo.api.cms/src/org/argeo/api/cms/directory/HierarchyUnit.java b/org.argeo.api.cms/src/org/argeo/api/cms/directory/HierarchyUnit.java
index 04593d94e..52509e854 100644
--- a/org.argeo.api.cms/src/org/argeo/api/cms/directory/HierarchyUnit.java
+++ b/org.argeo.api.cms/src/org/argeo/api/cms/directory/HierarchyUnit.java
@@ -13,7 +13,7 @@ public interface HierarchyUnit {
/**
* The parent {@link HierarchyUnit}, or null
if a
- * {@link Directory}.
+ * {@link CmsDirectory}.
*/
HierarchyUnit getParent();
@@ -26,7 +26,14 @@ public interface HierarchyUnit {
* @return true
if functional, false
is technical
* (e.g. People, Groups, etc.)
*/
- boolean isFunctional();
+ default boolean isFunctional() {
+ return isType(Type.FUNCTIONAL);
+ }
+
+ boolean isType(Type type);
+
+ /** A technical direct child. */
+ HierarchyUnit getDirectChild(Type type);
/**
* The base of this organisational unit within the hierarchy. This would
@@ -34,9 +41,16 @@ public interface HierarchyUnit {
*/
String getBase();
- /** The related {@link Directory}. */
- Directory getDirectory();
+ /** The related {@link CmsDirectory}. */
+ CmsDirectory getDirectory();
/** Its metadata (typically LDAP attributes). */
Dictionary getProperties();
+
+ enum Type {
+ PEOPLE, //
+ GROUPS, //
+ ROLES, //
+ FUNCTIONAL;
+ }
}