Clarify ACR API
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / acr / AbstractContent.java
index 54d7410155961e6f1522f88fff4a1eddf7509e97..7eb4138ab64c8183a94143e8ff0780b0765540e4 100644 (file)
@@ -21,7 +21,7 @@ import org.argeo.api.acr.spi.ProvidedSession;
 import org.argeo.cms.util.LangUtils;
 
 /** Partial reference implementation of a {@link ProvidedContent}. */
-public abstract class AbstractContent extends AbstractMap<QName, Object> implements ProvidedContent {
+public abstract class AbstractContent extends AbstractMap<QName, Object> implements CmsContent {
        private final ProvidedSession session;
 
        // cache
@@ -32,18 +32,22 @@ public abstract class AbstractContent extends AbstractMap<QName, Object> impleme
        }
 
        /*
-        * ATTRIBUTES OPERATIONS
+        * ATTRIBUTES MAP IMPLEMENTATION
         */
-//     protected abstract Iterable<QName> keys();
-//
-//     protected abstract void removeAttr(QName key);
-
        @Override
        public Set<Entry<QName, Object>> entrySet() {
                Set<Entry<QName, Object>> result = new AttrSet();
                return result;
        }
 
+       @Override
+       public Object get(Object key) {
+               return get((QName) key, Object.class).orElse(null);
+       }
+
+       /*
+        * ATTRIBUTES OPERATIONS
+        */
        @Override
        public Class<?> getType(QName key) {
                return String.class;
@@ -92,7 +96,7 @@ public abstract class AbstractContent extends AbstractMap<QName, Object> impleme
                        if (CrName.root.qName().equals(name))
                                continue ancestors;
 
-                       path.append('/');
+                       path.append(PATH_SEPARATOR);
                        path.append(NamespaceUtils.toPrefixedName(name));
                        int siblingIndex = c.getSiblingIndex();
                        if (siblingIndex != 1)