]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.cms/src/org/argeo/cms/acr/directory/AbstractDirectoryContent.java
Improve directory edition
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / acr / directory / AbstractDirectoryContent.java
index 2d337c0dda38d78bdfc5d78a428a6ae110942cd8..b737b50a1ea48ca63bb1eddcfd544d6c55d5778e 100644 (file)
@@ -10,15 +10,15 @@ import java.util.TreeSet;
 
 import javax.xml.namespace.QName;
 
+import org.argeo.api.acr.ArgeoNamespace;
 import org.argeo.api.acr.ContentName;
 import org.argeo.api.acr.CrAttributeType;
-import org.argeo.api.acr.CrName;
 import org.argeo.api.acr.NamespaceUtils;
+import org.argeo.api.acr.ldap.LdapAttr;
+import org.argeo.api.acr.ldap.LdapObj;
 import org.argeo.api.acr.spi.ContentProvider;
 import org.argeo.api.acr.spi.ProvidedSession;
 import org.argeo.cms.acr.AbstractContent;
-import org.argeo.util.naming.LdapAttrs;
-import org.argeo.util.naming.LdapObjs;
 
 abstract class AbstractDirectoryContent extends AbstractContent {
        protected final DirectoryContentProvider provider;
@@ -50,11 +50,11 @@ abstract class AbstractDirectoryContent extends AbstractContent {
                Set<QName> keys = new TreeSet<>(NamespaceUtils.QNAME_COMPARATOR);
                keys: for (Enumeration<String> it = properties.keys(); it.hasMoreElements();) {
                        String key = it.nextElement();
-                       if (key.equalsIgnoreCase(LdapAttrs.objectClass.name()))
+                       if (key.equalsIgnoreCase(LdapAttr.objectClass.name()))
                                continue keys;
-                       if (key.equalsIgnoreCase(LdapAttrs.objectClasses.name()))
+                       if (key.equalsIgnoreCase(LdapAttr.objectClasses.name()))
                                continue keys;
-                       ContentName name = new ContentName(CrName.LDAP_NAMESPACE_URI, key, provider);
+                       ContentName name = new ContentName(ArgeoNamespace.LDAP_NAMESPACE_URI, key, provider);
                        keys.add(name);
                }
                return keys;
@@ -64,16 +64,16 @@ abstract class AbstractDirectoryContent extends AbstractContent {
        public List<QName> getContentClasses() {
                Dictionary<String, Object> properties = doGetProperties();
                List<QName> contentClasses = new ArrayList<>();
-               String objectClass = properties.get(LdapAttrs.objectClass.name()).toString();
-               contentClasses.add(new ContentName(CrName.LDAP_NAMESPACE_URI, objectClass, provider));
+               String objectClass = properties.get(LdapAttr.objectClass.name()).toString();
+               contentClasses.add(new ContentName(ArgeoNamespace.LDAP_NAMESPACE_URI, objectClass, provider));
 
-               String[] objectClasses = properties.get(LdapAttrs.objectClasses.name()).toString().split("\\n");
+               String[] objectClasses = properties.get(LdapAttr.objectClasses.name()).toString().split("\\n");
                objectClasses: for (String oc : objectClasses) {
-                       if (LdapObjs.top.name().equalsIgnoreCase(oc))
+                       if (LdapObj.top.name().equalsIgnoreCase(oc))
                                continue objectClasses;
                        if (objectClass.equalsIgnoreCase(oc))
                                continue objectClasses;
-                       contentClasses.add(new ContentName(CrName.LDAP_NAMESPACE_URI, oc, provider));
+                       contentClasses.add(new ContentName(ArgeoNamespace.LDAP_NAMESPACE_URI, oc, provider));
                }
                return contentClasses;
        }
@@ -81,8 +81,7 @@ abstract class AbstractDirectoryContent extends AbstractContent {
        @Override
        public Object put(QName key, Object value) {
                Object previous = get(key);
-               // TODO deal with typing
-               doGetProperties().put(key.getLocalPart(), value);
+               provider.getUserManager().edit(() -> doGetProperties().put(key.getLocalPart(), value));
                return previous;
        }