diff --git a/muscript/src/main/java/io/gitlab/jfronny/muscript/data/dynamic/Dynamic.java b/muscript/src/main/java/io/gitlab/jfronny/muscript/data/dynamic/Dynamic.java index 085a443..9cfca9a 100644 --- a/muscript/src/main/java/io/gitlab/jfronny/muscript/data/dynamic/Dynamic.java +++ b/muscript/src/main/java/io/gitlab/jfronny/muscript/data/dynamic/Dynamic.java @@ -17,7 +17,7 @@ import java.io.IOException; * Override toString(StringBuilder) to support custom serialization (note: the serialized form is ran with muScript to generate the tree) * @param the type represented */ -public sealed interface Dynamic permits DBool, DNumber, DString, DObject, DList, DCallable, DNull, DContainer { +public sealed interface Dynamic permits DBool, DCallable, DList, DNull, DNumber, DObject, DString, DynamicBase { /** * Deserialize simply dynamic values. DOES NOT SUPPORT CALLABLES! * Use Parser.parse() if you truly need to deserialize them, but be aware that that might enable DOS attacks diff --git a/muscript/src/main/java/io/gitlab/jfronny/muscript/data/dynamic/DynamicBase.java b/muscript/src/main/java/io/gitlab/jfronny/muscript/data/dynamic/DynamicBase.java new file mode 100644 index 0000000..c1e9e7e --- /dev/null +++ b/muscript/src/main/java/io/gitlab/jfronny/muscript/data/dynamic/DynamicBase.java @@ -0,0 +1,9 @@ +package io.gitlab.jfronny.muscript.data.dynamic; + +/** + * Use this for ABSTRACT (!) implementations of custom dynamic containers. + * Any concrete implementation MUST still implement a valid Dynamic subtype (DBool, DString, ...) + * @param the type represented + */ +public non-sealed interface DynamicBase extends Dynamic { +} diff --git a/muscript/src/main/java/io/gitlab/jfronny/muscript/data/dynamic/additional/DContainer.java b/muscript/src/main/java/io/gitlab/jfronny/muscript/data/dynamic/additional/DContainer.java index 9bfd552..c08002d 100644 --- a/muscript/src/main/java/io/gitlab/jfronny/muscript/data/dynamic/additional/DContainer.java +++ b/muscript/src/main/java/io/gitlab/jfronny/muscript/data/dynamic/additional/DContainer.java @@ -1,8 +1,9 @@ package io.gitlab.jfronny.muscript.data.dynamic.additional; import io.gitlab.jfronny.muscript.data.dynamic.Dynamic; +import io.gitlab.jfronny.muscript.data.dynamic.DynamicBase; -public abstract non-sealed class DContainer implements Dynamic { +public abstract class DContainer implements DynamicBase { private T value; @Override