X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.util%2Fsrc%2Forg%2Fargeo%2Futil%2Fdirectory%2FHierarchyUnit.java;h=947b6bc8553124e189f16fc6ab64671fffc6f1ed;hb=3c1cdc594d954520b14646102b366290bdad58c7;hp=d35557784dd1f2e00ef5f1873c68b45a764f1721;hpb=285c23f26c4d634cd139d393ebcb708187d5e960;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 d35557784..947b6bc85 100644 --- a/org.argeo.util/src/org/argeo/util/directory/HierarchyUnit.java +++ b/org.argeo.util/src/org/argeo/util/directory/HierarchyUnit.java @@ -1,15 +1,31 @@ package org.argeo.util.directory; import java.util.Dictionary; +import java.util.Locale; /** A unit within the high-level organisational structure of a directory. */ public interface HierarchyUnit { + /** Name to use in paths. */ String getHierarchyUnitName(); + /** Name to use in UI. */ + String getHierarchyUnitLabel(Locale locale); + + /** + * The parent {@link HierarchyUnit}, or null if a + * {@link Directory}. + */ HierarchyUnit getParent(); + /** 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(); /** @@ -18,7 +34,9 @@ public interface HierarchyUnit { */ String getBase(); + /** The related {@link Directory}. */ Directory getDirectory(); + /** Its metadata (typically LDAP attributes). */ Dictionary getProperties(); }