X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.api.acr%2Fsrc%2Forg%2Fargeo%2Fapi%2Facr%2FContent.java;h=c2202b0fa31e14ad7db87a0f104390beaa792a7f;hb=e3db2eba9a7f8380a6f76d7b0e6cd4825e91893e;hp=aeea27ef23ff272b2bb0fb0bf4a95c8c65336e1b;hpb=ceb6d574e9ea49fcac490d0923d23f259f271f8d;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.api.acr/src/org/argeo/api/acr/Content.java b/org.argeo.api.acr/src/org/argeo/api/acr/Content.java index aeea27ef2..c2202b0fa 100644 --- a/org.argeo.api.acr/src/org/argeo/api/acr/Content.java +++ b/org.argeo.api.acr/src/org/argeo/api/acr/Content.java @@ -5,6 +5,7 @@ import java.io.IOException; import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.concurrent.CompletableFuture; import javax.xml.XMLConstants; import javax.xml.namespace.QName; @@ -50,6 +51,7 @@ public interface Content extends Iterable, Map { Optional> getMultiple(QName key, Class clss); + @SuppressWarnings("unchecked") default List getMultiple(QName key) { Class type; try { @@ -70,6 +72,13 @@ public interface Content extends Iterable, Map { /* * CONTENT OPERATIONS */ +// default CompletionStage edit(Consumer work) { +// return CompletableFuture.supplyAsync(() -> { +// work.accept(this); +// return this; +// }).minimalCompletionStage(); +// } + Content add(QName name, QName... classes); default Content add(String name, QName... classes) { @@ -84,11 +93,15 @@ public interface Content extends Iterable, Map { * DEFAULT METHODS */ default A adapt(Class clss) throws IllegalArgumentException { - throw new IllegalArgumentException("Cannot adapt content " + this + " to " + clss.getName()); + throw new UnsupportedOperationException("Cannot adapt content " + this + " to " + clss.getName()); + } + + default C open(Class clss) throws IOException { + throw new UnsupportedOperationException("Cannot open content " + this + " as " + clss.getName()); } - default C open(Class clss) throws IOException, IllegalArgumentException { - throw new IllegalArgumentException("Cannot open content " + this + " as " + clss.getName()); + default CompletableFuture write(Class clss) { + throw new UnsupportedOperationException("Cannot write content " + this + " as " + clss.getName()); } /*