X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.api.cms%2Fsrc%2Forg%2Fargeo%2Fapi%2Fcms%2Fdirectory%2FHierarchyUnit.java;h=6c67736eb89c3599e0786adccf41a394aca349e6;hb=feddb4be70a8304dd4a533efee6e14c22691b500;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..6c67736eb 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,11 @@ 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);
/**
* The base of this organisational unit within the hierarchy. This would
@@ -34,9 +38,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;
+ }
}