Merge tag 'v2.3.28' into testing
[lgpl/argeo-commons.git] / org.argeo.api.acr / src / org / argeo / api / acr / StructuredData.java
diff --git a/org.argeo.api.acr/src/org/argeo/api/acr/StructuredData.java b/org.argeo.api.acr/src/org/argeo/api/acr/StructuredData.java
new file mode 100644 (file)
index 0000000..7708232
--- /dev/null
@@ -0,0 +1,13 @@
+package org.argeo.api.acr;
+
+import java.util.Map;
+
+/** A hierarchical structure of unnamed mappings. */
+public interface StructuredData<KEY, VALUE, CHILD> extends Map<KEY, VALUE>, Iterable<CHILD> {
+       /*
+        * DEFAULT METHODS
+        */
+       default <A> A adapt(Class<A> clss) {
+               throw new UnsupportedOperationException("Cannot adapt content " + this + " to " + clss.getName());
+       }
+}