X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Facr%2FAbstractContent.java;h=54d7410155961e6f1522f88fff4a1eddf7509e97;hb=117eaabc86f6c09eff9a4b971ac137d51f45e953;hp=ce05dc14c904e41ee5279725f864c346d7d0de94;hpb=ea7d6818525ff88cc6b9ed0957c912545bd8eb81;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/acr/AbstractContent.java b/org.argeo.cms/src/org/argeo/cms/acr/AbstractContent.java index ce05dc14c..54d741015 100644 --- a/org.argeo.cms/src/org/argeo/cms/acr/AbstractContent.java +++ b/org.argeo.cms/src/org/argeo/cms/acr/AbstractContent.java @@ -13,11 +13,12 @@ import java.util.Set; import javax.xml.namespace.QName; import org.argeo.api.acr.Content; +import org.argeo.api.acr.CrAttributeType; import org.argeo.api.acr.CrName; import org.argeo.api.acr.NamespaceUtils; import org.argeo.api.acr.spi.ProvidedContent; import org.argeo.api.acr.spi.ProvidedSession; -import org.argeo.util.LangUtils; +import org.argeo.cms.util.LangUtils; /** Partial reference implementation of a {@link ProvidedContent}. */ public abstract class AbstractContent extends AbstractMap implements ProvidedContent { @@ -60,22 +61,18 @@ public abstract class AbstractContent extends AbstractMap impleme if (value == null) return new ArrayList<>(); if (value instanceof List) { - if (isDefaultAttrTypeRequested(clss)) + if (clss.isAssignableFrom(Object.class)) return (List) value; List res = new ArrayList<>(); List lst = (List) value; for (Object o : lst) { - A item = clss.isAssignableFrom(String.class) ? (A) o.toString() : (A) o; + A item = CrAttributeType.cast(clss, o).get(); res.add(item); } return res; } else {// singleton -// try { - A res = (A) value; + A res = CrAttributeType.cast(clss, value).get(); return Collections.singletonList(res); -// } catch (ClassCastException e) { -// return Optional.empty(); -// } } } @@ -120,6 +117,11 @@ public abstract class AbstractContent extends AbstractMap impleme return ancestors.size(); } + @Override + public boolean isRoot() { + return CrName.root.qName().equals(getName()); + } + @Override public String getSessionLocalId() { return getPath(); @@ -146,10 +148,10 @@ public abstract class AbstractContent extends AbstractMap impleme /* * UTILITIES */ - protected boolean isDefaultAttrTypeRequested(Class clss) { - // check whether clss is Object.class - return clss.isAssignableFrom(Object.class); - } +// protected boolean isDefaultAttrTypeRequested(Class clss) { +// // check whether clss is Object.class +// return clss.isAssignableFrom(Object.class); +// } // @Override // public String toString() { @@ -183,7 +185,7 @@ public abstract class AbstractContent extends AbstractMap impleme @Override public Optional get(QName key, Class clss) { - return null; + return Optional.empty(); } protected void removeAttr(QName key) {