]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.util/src/org/argeo/util/directory/Directory.java
Add cached path to content
[lgpl/argeo-commons.git] / org.argeo.util / src / org / argeo / util / directory / Directory.java
1 package org.argeo.util.directory;
2
3 import java.util.Dictionary;
4 import java.util.Optional;
5
6 import org.argeo.util.transaction.WorkControl;
7
8 /** An information directory (typicylly LDAP). */
9 public interface Directory extends HierarchyUnit {
10 String getName();
11
12 /** Whether this directory is read only. */
13 boolean isReadOnly();
14
15 /** Whether this directory is disabled. */
16 boolean isDisabled();
17
18 /** The realm (typically Kerberos) of this directory. */
19 Optional<String> getRealm();
20
21 /** Sets the transaction control used by this directory when editing. */
22 void setTransactionControl(WorkControl transactionControl);
23
24 /*
25 * METADATA
26 */
27 /** Metadata of this directory. */
28 public Dictionary<String, Object> getProperties();
29
30 /*
31 * HIERARCHY
32 */
33 /** The first level of hierarchy units. */
34 Iterable<HierarchyUnit> getDirectHierarchyUnits(boolean functionalOnly);
35
36 /** The hierarchy unit at this path. */
37 HierarchyUnit getHierarchyUnit(String path);
38
39 /** Create a new hierarchy unit. */
40 HierarchyUnit createHierarchyUnit(String path);
41 }