]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/acr/directory/DirectoryContent.java
Rename transaction package
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / acr / directory / DirectoryContent.java
1 package org.argeo.cms.acr.directory;
2
3 import java.util.ArrayList;
4 import java.util.Iterator;
5 import java.util.List;
6
7 import javax.xml.namespace.QName;
8
9 import org.argeo.api.acr.Content;
10 import org.argeo.api.acr.ContentName;
11 import org.argeo.api.acr.spi.ContentProvider;
12 import org.argeo.api.acr.spi.ProvidedSession;
13 import org.argeo.cms.acr.AbstractContent;
14 import org.argeo.osgi.useradmin.HierarchyUnit;
15 import org.argeo.osgi.useradmin.UserDirectory;
16
17 class DirectoryContent extends AbstractContent {
18 private UserDirectory directory;
19 private DirectoryContentProvider provider;
20
21 public DirectoryContent(ProvidedSession session, DirectoryContentProvider provider, UserDirectory directory) {
22 super(session);
23 this.provider = provider;
24 this.directory = directory;
25 }
26
27 @Override
28 public ContentProvider getProvider() {
29 return provider;
30 }
31
32 @Override
33 public Iterator<Content> iterator() {
34 List<Content> res = new ArrayList<>();
35 for (Iterator<HierarchyUnit> it = directory.getDirectHierarchyUnits(false).iterator(); it.hasNext();) {
36 res.add(new HierarchyUnitContent(getSession(), provider, it.next()));
37 }
38 return res.iterator();
39 }
40
41 @Override
42 public QName getName() {
43 return new ContentName(directory.getName());
44 }
45
46 @Override
47 public Content getParent() {
48 return provider.getRootContent(getSession());
49 }
50
51 }