1 package org
.argeo
.cms
.acr
.directory
;
3 import java
.util
.ArrayList
;
4 import java
.util
.Iterator
;
6 import java
.util
.Objects
;
8 import javax
.xml
.namespace
.QName
;
10 import org
.argeo
.api
.acr
.Content
;
11 import org
.argeo
.api
.acr
.ContentName
;
12 import org
.argeo
.api
.acr
.CrName
;
13 import org
.argeo
.api
.acr
.spi
.ContentProvider
;
14 import org
.argeo
.api
.acr
.spi
.ProvidedSession
;
15 import org
.argeo
.cms
.acr
.AbstractContent
;
16 import org
.argeo
.osgi
.useradmin
.HierarchyUnit
;
17 import org
.osgi
.service
.useradmin
.Role
;
19 class HierarchyUnitContent
extends AbstractContent
{
20 private HierarchyUnit hierarchyUnit
;
22 private DirectoryContentProvider provider
;
24 public HierarchyUnitContent(ProvidedSession session
, DirectoryContentProvider provider
,
25 HierarchyUnit hierarchyUnit
) {
27 Objects
.requireNonNull(hierarchyUnit
);
28 this.provider
= provider
;
29 this.hierarchyUnit
= hierarchyUnit
;
33 public ContentProvider
getProvider() {
38 public QName
getName() {
39 // if (hierarchyUnit.getParent() == null) {// base DN
40 // String baseDn = hierarchyUnit.getBasePath();
41 // return new ContentName(baseDn);
43 String name
= hierarchyUnit
.getHierarchyUnitName();
44 return new ContentName(name
);
48 public Content
getParent() {
49 HierarchyUnit parentHu
= hierarchyUnit
.getParent();
50 if (parentHu
== null) {
51 return new DirectoryContent(getSession(), provider
, hierarchyUnit
.getDirectory());
53 return new HierarchyUnitContent(getSession(), provider
, parentHu
);
57 public Iterator
<Content
> iterator() {
58 List
<Content
> lst
= new ArrayList
<>();
59 for (HierarchyUnit hu
: hierarchyUnit
.getDirectHierachyUnits())
60 lst
.add(new HierarchyUnitContent(getSession(), provider
, hu
));
62 for (Role role
: hierarchyUnit
.getHierarchyUnitRoles(null, false))
63 lst
.add(new RoleContent(getSession(), provider
, this, role
));
64 return lst
.iterator();
72 public List
<QName
> getTypes() {
73 List
<QName
> res
= new ArrayList
<>();
74 res
.add(CrName
.COLLECTION
.get());
81 HierarchyUnit
getHierarchyUnit() {