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=62148b9af354df302b12d8a63ebe7302f6fbe811;hpb=0ce8ecfe974cec9f524c16884209cd08544d890d;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 62148b9af..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; @@ -36,8 +37,11 @@ abstract class AbstractDirectoryContent extends AbstractContent { Object value = doGetProperties().get(attrName); 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 @@ -57,7 +61,7 @@ abstract class AbstractDirectoryContent extends AbstractContent { } @Override - public List getTypes() { + public List getContentClasses() { Dictionary properties = doGetProperties(); List contentClasses = new ArrayList<>(); String objectClass = properties.get(LdapAttrs.objectClass.name()).toString(); @@ -92,5 +96,4 @@ abstract class AbstractDirectoryContent extends AbstractContent { return provider; } - }