X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Facr%2Fdirectory%2FDirectoryContent.java;h=6e39280cee86a12bbb4d1dfa85f51ddedb8c392a;hb=bb605887a55790079fbf19628b232d2089efe13e;hp=dc9aefa800b7385f4e4848ba8ebaa628d821a944;hpb=ddc70245fe7413b7341205914c91015600726b4a;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/acr/directory/DirectoryContent.java b/org.argeo.cms/src/org/argeo/cms/acr/directory/DirectoryContent.java index dc9aefa80..6e39280ce 100644 --- a/org.argeo.cms/src/org/argeo/cms/acr/directory/DirectoryContent.java +++ b/org.argeo.cms/src/org/argeo/cms/acr/directory/DirectoryContent.java @@ -1,6 +1,7 @@ package org.argeo.cms.acr.directory; import java.util.ArrayList; +import java.util.Dictionary; import java.util.Iterator; import java.util.List; @@ -8,31 +9,27 @@ import javax.xml.namespace.QName; import org.argeo.api.acr.Content; import org.argeo.api.acr.ContentName; -import org.argeo.api.acr.spi.ContentProvider; import org.argeo.api.acr.spi.ProvidedSession; -import org.argeo.cms.acr.AbstractContent; -import org.argeo.osgi.useradmin.HierarchyUnit; -import org.argeo.osgi.useradmin.UserDirectory; +import org.argeo.api.cms.directory.CmsDirectory; +import org.argeo.api.cms.directory.HierarchyUnit; -class DirectoryContent extends AbstractContent { - private UserDirectory directory; - private DirectoryContentProvider provider; +class DirectoryContent extends AbstractDirectoryContent { + private CmsDirectory directory; - public DirectoryContent(ProvidedSession session, DirectoryContentProvider provider, UserDirectory directory) { - super(session); - this.provider = provider; + public DirectoryContent(ProvidedSession session, DirectoryContentProvider provider, CmsDirectory directory) { + super(session, provider); this.directory = directory; } @Override - public ContentProvider getProvider() { - return provider; + Dictionary doGetProperties() { + return directory.getProperties(); } @Override public Iterator iterator() { List res = new ArrayList<>(); - for (Iterator it = directory.getRootHierarchyUnits(false).iterator(); it.hasNext();) { + for (Iterator it = directory.getDirectHierarchyUnits(false).iterator(); it.hasNext();) { res.add(new HierarchyUnitContent(getSession(), provider, it.next())); } return res.iterator(); @@ -48,4 +45,14 @@ class DirectoryContent extends AbstractContent { return provider.getRootContent(getSession()); } + @SuppressWarnings("unchecked") + @Override + public A adapt(Class clss) { + if (clss.equals(HierarchyUnit.class)) + return (A) directory; + if (clss.equals(CmsDirectory.class)) + return (A) directory; + return super.adapt(clss); + } + }