X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.util%2Fsrc%2Forg%2Fargeo%2Futil%2Fdirectory%2FHierarchyUnit.java;h=1acd34f487278a5e1c06a2d978f97980abc75aa0;hb=15f93a026914b55e52f147e6aa53392434652522;hp=0194ffc89165f68b5bc24fcfc55fc9e43f398c98;hpb=e2ffdf6872592aa22d0de2b0ec69ee4eca698c45;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.util/src/org/argeo/util/directory/HierarchyUnit.java b/org.argeo.util/src/org/argeo/util/directory/HierarchyUnit.java index 0194ffc89..1acd34f48 100644 --- a/org.argeo.util/src/org/argeo/util/directory/HierarchyUnit.java +++ b/org.argeo.util/src/org/argeo/util/directory/HierarchyUnit.java @@ -1,18 +1,38 @@ package org.argeo.util.directory; +import java.util.Dictionary; + /** A unit within the high-level organisational structure of a directory. */ public interface HierarchyUnit { + /** Name to use in paths. */ String getHierarchyUnitName(); + /** + * The parent {@link HierarchyUnit}, or null if a + * {@link Directory}. + */ HierarchyUnit getParent(); - Iterable getDirectHierachyUnits(boolean functionalOnly); + /** Direct children {@link HierarchyUnit}s. */ + Iterable getDirectHierarchyUnits(boolean functionalOnly); + /** + * Whether this is an arbitrary named and placed {@link HierarchyUnit}. + * + * @return true if functional, false is technical + * (e.g. People, Groups, etc.) + */ boolean isFunctional(); - String getContext(); + /** + * The base of this organisational unit within the hierarchy. This would + * typically be an LDAP base DN. + */ + String getBase(); + /** The related {@link Directory}. */ Directory getDirectory(); -// Map getHierarchyProperties(); + /** Its metadata (typically LDAP attributes). */ + Dictionary getProperties(); }