X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Facr%2Fdirectory%2FAbstractDirectoryContent.java;h=2d337c0dda38d78bdfc5d78a428a6ae110942cd8;hb=da1148af1d866cb815c69dd3d9a46415bcf8e7ef;hp=42b0a08044370a8bc57dfe0adcd5c6e275850f73;hpb=15f93a026914b55e52f147e6aa53392434652522;p=lgpl%2Fargeo-commons.git
diff --git a/org.argeo.cms/src/org/argeo/cms/acr/directory/AbstractDirectoryContent.java b/org.argeo.cms/src/org/argeo/cms/acr/directory/AbstractDirectoryContent.java
index 42b0a0804..2d337c0dd 100644
--- a/org.argeo.cms/src/org/argeo/cms/acr/directory/AbstractDirectoryContent.java
+++ b/org.argeo.cms/src/org/argeo/cms/acr/directory/AbstractDirectoryContent.java
@@ -11,6 +11,7 @@ import java.util.TreeSet;
import javax.xml.namespace.QName;
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.spi.ContentProvider;
@@ -34,12 +35,13 @@ abstract class AbstractDirectoryContent extends AbstractContent {
public Optional get(QName key, Class clss) {
String attrName = key.getLocalPart();
Object value = doGetProperties().get(attrName);
- if (Long.class.isAssignableFrom(clss))
- return Optional.of((A) (Long) Long.parseLong(value.toString()));
if (value == null)
return Optional.empty();
- // TODO deal with type and multiple
- return Optional.of((A) value);
+ Optional res = CrAttributeType.cast(clss, value);
+ if (res.isEmpty())
+ return Optional.of((A) value);
+ else
+ return res;
}
@Override