X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Facr%2FAbstractContent.java;h=ce05dc14c904e41ee5279725f864c346d7d0de94;hb=ea7d6818525ff88cc6b9ed0957c912545bd8eb81;hp=1cffef40ef5cc77f5be0783bfd5087ba48c1a565;hpb=7282c1638941227f4e3fc8c0506ab0caf96ad1ea;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 1cffef40e..ce05dc14c 100644 --- a/org.argeo.cms/src/org/argeo/cms/acr/AbstractContent.java +++ b/org.argeo.cms/src/org/argeo/cms/acr/AbstractContent.java @@ -55,34 +55,27 @@ public abstract class AbstractContent extends AbstractMap impleme @SuppressWarnings("unchecked") @Override - public Optional> getMultiple(QName key, Class clss) { + public List getMultiple(QName key, Class clss) { Object value = get(key); if (value == null) - return Optional.empty(); + return new ArrayList<>(); if (value instanceof List) { - try { - List res = (List) value; - return Optional.of(res); - } catch (ClassCastException e) { - List res = new ArrayList<>(); - List lst = (List) value; - try { - for (Object o : lst) { - A item = (A) o; - res.add(item); - } - return Optional.of(res); - } catch (ClassCastException e1) { - return Optional.empty(); - } + if (isDefaultAttrTypeRequested(clss)) + 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; + res.add(item); } + return res; } else {// singleton - try { - A res = (A) value; - return Optional.of(Collections.singletonList(res)); - } catch (ClassCastException e) { - return Optional.empty(); - } +// try { + A res = (A) value; + return Collections.singletonList(res); +// } catch (ClassCastException e) { +// return Optional.empty(); +// } } }