diff --git a/commons-serialize-generator/src/main/java/io/gitlab/jfronny/commons/serialize/generator/adapter/impl/ArrayAdapter.java b/commons-serialize-generator/src/main/java/io/gitlab/jfronny/commons/serialize/generator/adapter/impl/ArrayAdapter.java index 1a9b330..7b5a6ba 100644 --- a/commons-serialize-generator/src/main/java/io/gitlab/jfronny/commons/serialize/generator/adapter/impl/ArrayAdapter.java +++ b/commons-serialize-generator/src/main/java/io/gitlab/jfronny/commons/serialize/generator/adapter/impl/ArrayAdapter.java @@ -2,6 +2,8 @@ package io.gitlab.jfronny.commons.serialize.generator.adapter.impl; import com.squareup.javapoet.CodeBlock; import com.squareup.javapoet.MethodSpec; +import com.squareup.javapoet.ParameterizedTypeName; +import com.squareup.javapoet.TypeVariableName; import io.gitlab.jfronny.commons.serialize.generator.Cl; import io.gitlab.jfronny.commons.serialize.generator.adapter.Adapter; import io.gitlab.jfronny.commons.serialize.generator.core.TypeHelper; @@ -75,8 +77,11 @@ public class ArrayAdapter extends Adapter { MethodSpec.methodBuilder(methodName) .addModifiers(Modifier.PRIVATE, Modifier.STATIC) .returns(typeName) - .addParameter(Cl.SERIALIZE_READER, "reader") - .addException(IOException.class) + .addTypeVariable(TypeVariableName.get("TEx", Exception.class)) + .addTypeVariable(TypeVariableName.get("Reader", ParameterizedTypeName.get(Cl.SERIALIZE_READER, TypeVariableName.get("TEx"), TypeVariableName.get("Reader")))) + .addParameter(TypeVariableName.get("Reader"), "reader") + .addException(TypeVariableName.get("TEx")) + .addException(Cl.MALFORMED_DATA_EXCEPTION) .addCode(kode.build()) .build() ); diff --git a/commons-serialize-generator/src/main/java/io/gitlab/jfronny/commons/serialize/generator/adapter/impl/CollectionAdapter.java b/commons-serialize-generator/src/main/java/io/gitlab/jfronny/commons/serialize/generator/adapter/impl/CollectionAdapter.java index 18b82dd..d346e70 100644 --- a/commons-serialize-generator/src/main/java/io/gitlab/jfronny/commons/serialize/generator/adapter/impl/CollectionAdapter.java +++ b/commons-serialize-generator/src/main/java/io/gitlab/jfronny/commons/serialize/generator/adapter/impl/CollectionAdapter.java @@ -1,8 +1,6 @@ package io.gitlab.jfronny.commons.serialize.generator.adapter.impl; -import com.squareup.javapoet.CodeBlock; -import com.squareup.javapoet.MethodSpec; -import com.squareup.javapoet.TypeName; +import com.squareup.javapoet.*; import io.gitlab.jfronny.commons.data.MutCollection; import io.gitlab.jfronny.commons.serialize.generator.Cl; import io.gitlab.jfronny.commons.serialize.generator.adapter.Adapter; @@ -107,8 +105,11 @@ public class CollectionAdapter extends Adapter { MethodSpec.methodBuilder(methodName) .addModifiers(Modifier.PRIVATE, Modifier.STATIC) .returns(typeName) - .addParameter(Cl.SERIALIZE_READER, "reader") - .addException(IOException.class) + .addTypeVariable(TypeVariableName.get("TEx", Exception.class)) + .addTypeVariable(TypeVariableName.get("Reader", ParameterizedTypeName.get(Cl.SERIALIZE_READER, TypeVariableName.get("TEx"), TypeVariableName.get("Reader")))) + .addParameter(TypeVariableName.get("Reader"), "reader") + .addException(TypeVariableName.get("TEx")) + .addException(Cl.MALFORMED_DATA_EXCEPTION) .addCode(kode.build()) .build() ); diff --git a/commons-serialize-generator/src/main/java/io/gitlab/jfronny/commons/serialize/generator/adapter/impl/DateAdapter.java b/commons-serialize-generator/src/main/java/io/gitlab/jfronny/commons/serialize/generator/adapter/impl/DateAdapter.java index 99da9f4..f83315c 100644 --- a/commons-serialize-generator/src/main/java/io/gitlab/jfronny/commons/serialize/generator/adapter/impl/DateAdapter.java +++ b/commons-serialize-generator/src/main/java/io/gitlab/jfronny/commons/serialize/generator/adapter/impl/DateAdapter.java @@ -45,6 +45,7 @@ public class DateAdapter extends Adapter { .addModifiers(Modifier.PRIVATE, Modifier.STATIC) .returns(Date.class) .addParameter(String.class, "date") + .addException(Cl.MALFORMED_DATA_EXCEPTION) .addCode( CodeBlock.builder() .beginControlFlow("try") diff --git a/commons-serialize-generator/src/main/java/io/gitlab/jfronny/commons/serialize/generator/adapter/impl/MapAdapter.java b/commons-serialize-generator/src/main/java/io/gitlab/jfronny/commons/serialize/generator/adapter/impl/MapAdapter.java index 8a2cb2a..f79ebf5 100644 --- a/commons-serialize-generator/src/main/java/io/gitlab/jfronny/commons/serialize/generator/adapter/impl/MapAdapter.java +++ b/commons-serialize-generator/src/main/java/io/gitlab/jfronny/commons/serialize/generator/adapter/impl/MapAdapter.java @@ -1,8 +1,6 @@ package io.gitlab.jfronny.commons.serialize.generator.adapter.impl; -import com.squareup.javapoet.CodeBlock; -import com.squareup.javapoet.MethodSpec; -import com.squareup.javapoet.TypeName; +import com.squareup.javapoet.*; import io.gitlab.jfronny.commons.data.String2ObjectMap; import io.gitlab.jfronny.commons.serialize.generator.Cl; import io.gitlab.jfronny.commons.serialize.generator.adapter.Adapter; @@ -185,8 +183,11 @@ public class MapAdapter extends Adapter { MethodSpec.methodBuilder(methodName) .addModifiers(Modifier.PRIVATE, Modifier.STATIC) .returns(typeName) - .addParameter(Cl.SERIALIZE_READER, "reader") - .addException(IOException.class) + .addTypeVariable(TypeVariableName.get("TEx", Exception.class)) + .addTypeVariable(TypeVariableName.get("Reader", ParameterizedTypeName.get(Cl.SERIALIZE_READER, TypeVariableName.get("TEx"), TypeVariableName.get("Reader")))) + .addParameter(TypeVariableName.get("Reader"), "reader") + .addException(TypeVariableName.get("TEx")) + .addException(Cl.MALFORMED_DATA_EXCEPTION) .addCode(kode.build()) .build() ); diff --git a/commons-serialize-generator/src/main/java/io/gitlab/jfronny/commons/serialize/generator/gprocessor/GProcessor.java b/commons-serialize-generator/src/main/java/io/gitlab/jfronny/commons/serialize/generator/gprocessor/GProcessor.java index 8f69639..113bfdd 100644 --- a/commons-serialize-generator/src/main/java/io/gitlab/jfronny/commons/serialize/generator/gprocessor/GProcessor.java +++ b/commons-serialize-generator/src/main/java/io/gitlab/jfronny/commons/serialize/generator/gprocessor/GProcessor.java @@ -97,6 +97,7 @@ public abstract class GProcessor { .addTypeVariable(TypeVariableName.get("Reader", ParameterizedTypeName.get(Cl.SERIALIZE_READER, TypeVariableName.get("TEx"), TypeVariableName.get("Reader")))) .addParameter(TypeVariableName.get("Reader"), "reader") .addException(TypeVariableName.get("TEx")) + .addException(Cl.MALFORMED_DATA_EXCEPTION) .returns(isStatic ? TypeName.VOID : classType) .addCode(isStatic ? this.isStatic ? "$T.deserialize(reader);" : "return $T.deserialize(reader);" : this.isStatic ? "$L.deserialize(reader);" : "return $L.deserialize(reader);", isStatic ? adapter : "adapter") .build() @@ -108,6 +109,7 @@ public abstract class GProcessor { .addTypeVariable(TypeVariableName.get("Writer", ParameterizedTypeName.get(Cl.SERIALIZE_WRITER, TypeVariableName.get("TEx"), TypeVariableName.get("Writer")))) .addParameter(TypeVariableName.get("Writer"), "writer") .addException(TypeVariableName.get("TEx")) + .addException(Cl.MALFORMED_DATA_EXCEPTION) .addCode(isStatic ? "$T.$L;" : "$L.$L", isStatic ? adapter : "adapter", writeStatement) .build() ); @@ -132,10 +134,11 @@ public abstract class GProcessor { .addParameter(TypeName.get(Reader.class), "in") .addParameter(ParameterizedTypeName.get(Cl.TRANSPORT, TypeVariableName.get("TEx"), TypeVariableName.get("Reader"), TypeVariableName.get("Writer")), "transport") .addException(TypeVariableName.get("TEx")) + .addException(Cl.MALFORMED_DATA_EXCEPTION) .returns(isStatic ? TypeName.VOID : classType) - .addCode(configureReader.apply(CodeBlock.builder().beginControlFlow("try ($T reader = transport.createReader(in))", Cl.SERIALIZE_READER)) + .addCode(configureReader.apply(CodeBlock.builder().beginControlFlow((isStatic ? "" : "return ") + "transport.read(in, reader -> ")) .addStatement(readStatement) - .endControlFlow() + .addStatement("$<})") .build()) .build() ); @@ -143,14 +146,15 @@ public abstract class GProcessor { spec.addMethod( extension(MethodSpec.methodBuilder("deserialize")) .addModifiers(Modifier.PUBLIC, Modifier.STATIC) - .addParameter(TypeName.get(String.class), "json") + .addParameter(TypeName.get(String.class), "serialized") .addTypeVariable(TypeVariableName.get("TEx", Exception.class)) .addTypeVariable(TypeVariableName.get("Reader", ParameterizedTypeName.get(Cl.SERIALIZE_READER, TypeVariableName.get("TEx"), TypeVariableName.get("Reader")))) .addTypeVariable(TypeVariableName.get("Writer", ParameterizedTypeName.get(Cl.SERIALIZE_WRITER, TypeVariableName.get("TEx"), TypeVariableName.get("Writer")))) .addParameter(ParameterizedTypeName.get(Cl.TRANSPORT, TypeVariableName.get("TEx"), TypeVariableName.get("Reader"), TypeVariableName.get("Writer")), "transport") .addException(TypeVariableName.get("TEx")) + .addException(Cl.MALFORMED_DATA_EXCEPTION) .returns(isStatic ? TypeName.VOID : classType) - .addCode(CodeBlock.builder().beginControlFlow("try ($1T reader = new $1T(json))", StringReader.class) + .addCode(CodeBlock.builder().beginControlFlow("try ($1T reader = new $1T(serialized))", StringReader.class) .addStatement(readStatementT) .endControlFlow() .build()) @@ -179,6 +183,7 @@ public abstract class GProcessor { .addTypeVariable(TypeVariableName.get("Writer", ParameterizedTypeName.get(Cl.SERIALIZE_WRITER, TypeVariableName.get("TEx"), TypeVariableName.get("Writer")))) .addParameter(ParameterizedTypeName.get(Cl.TRANSPORT, TypeVariableName.get("TEx"), TypeVariableName.get("Reader"), TypeVariableName.get("Writer")), "transport") .addException(TypeVariableName.get("TEx")) + .addException(Cl.MALFORMED_DATA_EXCEPTION) .addException(IOException.class) .returns(isStatic ? TypeName.VOID : classType) .addCode(CodeBlock.builder().beginControlFlow("try ($T reader = $T.newBufferedReader(path))", BufferedReader.class, Files.class) @@ -197,9 +202,10 @@ public abstract class GProcessor { .addTypeVariable(TypeVariableName.get("Writer", ParameterizedTypeName.get(Cl.SERIALIZE_WRITER, TypeVariableName.get("TEx"), TypeVariableName.get("Writer")))) .addParameter(ParameterizedTypeName.get(Cl.TRANSPORT, TypeVariableName.get("TEx"), TypeVariableName.get("Reader"), TypeVariableName.get("Writer")), "transport") .addException(TypeVariableName.get("TEx")) - .addCode(configureWriter.apply(CodeBlock.builder().beginControlFlow("try ($T writer = transport.createWriter(out))", Cl.SERIALIZE_WRITER)) + .addException(Cl.MALFORMED_DATA_EXCEPTION) + .addCode(configureWriter.apply(CodeBlock.builder().beginControlFlow("transport.write(out, writer -> ", Cl.SERIALIZE_WRITER)) .addStatement(writeStatement) - .endControlFlow() + .addStatement("$<})") .build()) .build() ); @@ -213,6 +219,7 @@ public abstract class GProcessor { .addTypeVariable(TypeVariableName.get("Writer", ParameterizedTypeName.get(Cl.SERIALIZE_WRITER, TypeVariableName.get("TEx"), TypeVariableName.get("Writer")))) .addParameter(ParameterizedTypeName.get(Cl.TRANSPORT, TypeVariableName.get("TEx"), TypeVariableName.get("Reader"), TypeVariableName.get("Writer")), "transport") .addException(TypeVariableName.get("TEx")) + .addException(Cl.MALFORMED_DATA_EXCEPTION) .addException(IOException.class) .addCode(disableSafe ? CodeBlock.builder().beginControlFlow("try ($1T writer = $2T.newBufferedWriter(path, $3T.CREATE, $3T.WRITE, $3T.TRUNCATE_EXISTING))", BufferedWriter.class, Files.class, StandardOpenOption.class) .addStatement(writeStatementT) @@ -237,13 +244,10 @@ public abstract class GProcessor { .addTypeVariable(TypeVariableName.get("Writer", ParameterizedTypeName.get(Cl.SERIALIZE_WRITER, TypeVariableName.get("TEx"), TypeVariableName.get("Writer")))) .addParameter(ParameterizedTypeName.get(Cl.TRANSPORT, TypeVariableName.get("TEx"), TypeVariableName.get("Reader"), TypeVariableName.get("Writer")), "transport") .addException(TypeVariableName.get("TEx")) + .addException(Cl.MALFORMED_DATA_EXCEPTION) .addException(IOException.class) .returns(String.class) - .addCode(CodeBlock.builder().beginControlFlow("try ($1T writer = new $1T())", StringWriter.class) - .addStatement(writeStatementT) - .addStatement("return writer.toString()") - .endControlFlow() - .build()) + .addCode("return transport.write(writer -> "+ writeStatement + ");") .build() ); diff --git a/commons-serialize-generator/src/main/java/io/gitlab/jfronny/commons/serialize/generator/gprocessor/InstanceProcessor.java b/commons-serialize-generator/src/main/java/io/gitlab/jfronny/commons/serialize/generator/gprocessor/InstanceProcessor.java index 2f7585f..6c70c18 100644 --- a/commons-serialize-generator/src/main/java/io/gitlab/jfronny/commons/serialize/generator/gprocessor/InstanceProcessor.java +++ b/commons-serialize-generator/src/main/java/io/gitlab/jfronny/commons/serialize/generator/gprocessor/InstanceProcessor.java @@ -33,6 +33,7 @@ public class InstanceProcessor extends GProcessor { .addParameter(classType, "value") .addParameter(TypeVariableName.get("Writer"), "writer") .addException(TypeVariableName.get("TEx")) + .addException(Cl.MALFORMED_DATA_EXCEPTION) .addCode(generatedClassName.simpleName() + ".serialize(value, writer);") .build()) .addMethod(MethodSpec.methodBuilder("deserialize") @@ -42,6 +43,7 @@ public class InstanceProcessor extends GProcessor { .addTypeVariable(TypeVariableName.get("Reader", ParameterizedTypeName.get(Cl.SERIALIZE_READER, TypeVariableName.get("TEx"), TypeVariableName.get("Reader")))) .addParameter(TypeVariableName.get("Reader"), "reader") .addException(TypeVariableName.get("TEx")) + .addException(Cl.MALFORMED_DATA_EXCEPTION) .returns(classType) .addCode("return " + generatedClassName.simpleName() + ".deserialize(reader);") .build()) @@ -113,6 +115,7 @@ public class InstanceProcessor extends GProcessor { .addTypeVariable(TypeVariableName.get("Writer", ParameterizedTypeName.get(Cl.SERIALIZE_WRITER, TypeVariableName.get("TEx"), TypeVariableName.get("Writer")))) .addParameter(TypeVariableName.get("Writer"), "writer") .addException(TypeVariableName.get("TEx")) + .addException(Cl.MALFORMED_DATA_EXCEPTION) .addCode(code.build()) .build()); } @@ -208,6 +211,7 @@ public class InstanceProcessor extends GProcessor { .addTypeVariable(TypeVariableName.get("Reader", ParameterizedTypeName.get(Cl.SERIALIZE_READER, TypeVariableName.get("TEx"), TypeVariableName.get("Reader")))) .addParameter(TypeVariableName.get("Reader"), "reader") .addException(TypeVariableName.get("TEx")) + .addException(Cl.MALFORMED_DATA_EXCEPTION) .addCode(code.build()) .build()); } diff --git a/commons-serialize-generator/src/main/java/io/gitlab/jfronny/commons/serialize/generator/gprocessor/StaticProcessor.java b/commons-serialize-generator/src/main/java/io/gitlab/jfronny/commons/serialize/generator/gprocessor/StaticProcessor.java index 4de40f4..1ad425b 100644 --- a/commons-serialize-generator/src/main/java/io/gitlab/jfronny/commons/serialize/generator/gprocessor/StaticProcessor.java +++ b/commons-serialize-generator/src/main/java/io/gitlab/jfronny/commons/serialize/generator/gprocessor/StaticProcessor.java @@ -9,7 +9,6 @@ import io.gitlab.jfronny.commons.serialize.generator.core.value.*; import javax.annotation.processing.Messager; import javax.lang.model.element.Modifier; -import java.io.IOException; import java.util.List; import java.util.Set; @@ -80,6 +79,7 @@ public class StaticProcessor extends GProcessor { .addTypeVariable(TypeVariableName.get("Writer", ParameterizedTypeName.get(Cl.SERIALIZE_WRITER, TypeVariableName.get("TEx"), TypeVariableName.get("Writer")))) .addParameter(TypeVariableName.get("Writer"), "writer") .addException(TypeVariableName.get("TEx")) + .addException(Cl.MALFORMED_DATA_EXCEPTION) .addCode(code.build()) .build()); } @@ -133,6 +133,7 @@ public class StaticProcessor extends GProcessor { .addTypeVariable(TypeVariableName.get("Reader", ParameterizedTypeName.get(Cl.SERIALIZE_READER, TypeVariableName.get("TEx"), TypeVariableName.get("Reader")))) .addParameter(TypeVariableName.get("Reader"), "reader") .addException(TypeVariableName.get("TEx")) + .addException(Cl.MALFORMED_DATA_EXCEPTION) .addCode(code.build()) .build()); } diff --git a/commons-serialize-xml/src/main/java/io/gitlab/jfronny/commons/serialize/xml/wrapper/XmlWriter.java b/commons-serialize-xml/src/main/java/io/gitlab/jfronny/commons/serialize/xml/wrapper/XmlWriter.java index 52f589e..ed4215b 100644 --- a/commons-serialize-xml/src/main/java/io/gitlab/jfronny/commons/serialize/xml/wrapper/XmlWriter.java +++ b/commons-serialize-xml/src/main/java/io/gitlab/jfronny/commons/serialize/xml/wrapper/XmlWriter.java @@ -56,7 +56,7 @@ public class XmlWriter extends SerializeWriter { } @Override - public void close() throws Exception { + public void close() throws IOException { throw new UnsupportedOperationException("Not yet implemented"); } } diff --git a/commons-serialize/src/main/java/io/gitlab/jfronny/commons/serialize/Transport.java b/commons-serialize/src/main/java/io/gitlab/jfronny/commons/serialize/Transport.java index 8616f24..1a7ef76 100644 --- a/commons-serialize/src/main/java/io/gitlab/jfronny/commons/serialize/Transport.java +++ b/commons-serialize/src/main/java/io/gitlab/jfronny/commons/serialize/Transport.java @@ -4,7 +4,9 @@ import io.gitlab.jfronny.commons.concurrent.ScopedValue; import io.gitlab.jfronny.commons.concurrent.WithScopedValue; import org.jetbrains.annotations.ApiStatus; +import java.io.IOException; import java.io.StringReader; +import java.io.StringWriter; public interface Transport, Writer extends SerializeWriter> extends WithScopedValue> { ScopedValue> DEFAULT = new ScopedValue<>(); @@ -30,4 +32,46 @@ public interface Transport action) throws TEx, MalformedDataException { + try (Reader reader = createReader(source)) { + action.run(reader); + } + } + + default void read(String source, Action action) throws TEx, MalformedDataException { + read(new StringReader(source), action); + } + + default R read(java.io.Reader source, Returnable action) throws TEx, MalformedDataException { + try (Reader reader = createReader(source)) { + return action.run(reader); + } + } + + default R read(String source, Returnable action) throws TEx, MalformedDataException { + return read(new StringReader(source), action); + } + + default void write(java.io.Writer target, Action action) throws TEx, MalformedDataException { + try (Writer writer = createWriter(target)) { + action.run(writer); + } + } + + default String write(Action action) throws TEx, IOException { + try (StringWriter sw = new StringWriter()) { + write(sw, action); + return sw.toString(); + } + } + + interface Returnable { + R run(T value) throws TEx, MalformedDataException; + } + + interface Action { + void run(T value) throws TEx, MalformedDataException; + } } diff --git a/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/TransportLib.java b/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/TransportLib.java index ab481d5..2913560 100644 --- a/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/TransportLib.java +++ b/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/TransportLib.java @@ -17,7 +17,7 @@ import java.io.StringWriter; import static io.gitlab.jfronny.muscript.data.dynamic.type.DSL.*; import static io.gitlab.jfronny.muscript.data.dynamic.type.DSL.BOOL; -public class TransportLib, Writer extends SerializeWriter> { +public class TransportLib, Writer extends SerializeWriter> { private final DynamicTypeAdapter adapter = new DynamicTypeAdapter(); private final String serializeName; private final String deserializeName; diff --git a/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/DynamicTypeAdapter.java b/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/DynamicTypeAdapter.java index 112cab0..fcc8daf 100644 --- a/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/DynamicTypeAdapter.java +++ b/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/DynamicTypeAdapter.java @@ -31,7 +31,7 @@ public class DynamicTypeAdapter extends TypeAdapter { } @Override - public > void serialize(Dynamic value, Writer writer) throws TEx, MalformedDataException { + public > void serialize(Dynamic value, Writer writer) throws TEx, MalformedDataException { if (value == null) writer.nullValue(); else if (value instanceof DDate date) dDate.serialize(date, writer); else if (value instanceof DTime time) dTime.serialize(time, writer); @@ -48,7 +48,7 @@ public class DynamicTypeAdapter extends TypeAdapter { } @Override - public > Dynamic deserialize(Reader reader) throws TEx, MalformedDataException { + public > Dynamic deserialize(Reader reader) throws TEx, MalformedDataException { return switch (reader.peek()) { case BEGIN_OBJECT -> dObject.deserialize(reader); case BEGIN_ARRAY -> dList.deserialize(reader); diff --git a/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DBoolTypeAdapter.java b/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DBoolTypeAdapter.java index 2ec1a5b..574911f 100644 --- a/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DBoolTypeAdapter.java +++ b/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DBoolTypeAdapter.java @@ -11,12 +11,12 @@ import io.gitlab.jfronny.muscript.data.dynamic.DBool; @SerializerFor(targets = DBool.class, hierarchical = true) public class DBoolTypeAdapter extends TypeAdapter { @Override - public > void serialize(DBool value, Writer writer) throws TEx, MalformedDataException { + public > void serialize(DBool value, Writer writer) throws TEx, MalformedDataException { writer.value(value.getValue()); } @Override - public > DBool deserialize(Reader reader) throws TEx, MalformedDataException { + public > DBool deserialize(Reader reader) throws TEx, MalformedDataException { return DFinal.of(reader.nextBoolean()); } } diff --git a/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DCallableTypeAdapter.java b/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DCallableTypeAdapter.java index 96488db..8085178 100644 --- a/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DCallableTypeAdapter.java +++ b/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DCallableTypeAdapter.java @@ -10,13 +10,13 @@ import io.gitlab.jfronny.muscript.data.dynamic.DCallable; @SerializerFor(targets = DCallable.class, hierarchical = true) public class DCallableTypeAdapter extends TypeAdapter { @Override - public > void serialize(DCallable value, Writer writer) throws TEx, MalformedDataException { + public > void serialize(DCallable value, Writer writer) throws TEx, MalformedDataException { if (value.getName().equals(DCallable.DEFAULT_NAME)) throw new IllegalArgumentException("Unnamed callables cannot be serialized to json"); else writer.value(value.getName()); } @Override - public > DCallable deserialize(Reader reader) throws TEx, MalformedDataException { + public > DCallable deserialize(Reader reader) throws TEx, MalformedDataException { throw new UnsupportedOperationException("DCallables cannot be deserialized from json"); } } diff --git a/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DListTypeAdapter.java b/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DListTypeAdapter.java index 1af4ff5..6eca351 100644 --- a/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DListTypeAdapter.java +++ b/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DListTypeAdapter.java @@ -17,7 +17,7 @@ import java.util.List; @SerializerFor(targets = DList.class, hierarchical = true) public class DListTypeAdapter extends TypeAdapter { @Override - public > void serialize(DList value, Writer writer) throws TEx, MalformedDataException { + public > void serialize(DList value, Writer writer) throws TEx, MalformedDataException { writer.beginArray(); for (Dynamic v : value.getValue()) { DynamicTypeAdapterHolder.getInstance().serialize(v, writer); @@ -26,7 +26,7 @@ public class DListTypeAdapter extends TypeAdapter { } @Override - public > DList deserialize(Reader reader) throws TEx, MalformedDataException { + public > DList deserialize(Reader reader) throws TEx, MalformedDataException { List elements = new LinkedList<>(); reader.beginArray(); while (reader.peek() != Token.END_ARRAY) { diff --git a/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DNullTypeAdapter.java b/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DNullTypeAdapter.java index 94196b9..e9cee3d 100644 --- a/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DNullTypeAdapter.java +++ b/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DNullTypeAdapter.java @@ -10,12 +10,12 @@ import io.gitlab.jfronny.muscript.data.dynamic.DNull; @SerializerFor(targets = DNull.class, hierarchical = true) public class DNullTypeAdapter extends TypeAdapter { @Override - public > void serialize(DNull value, Writer writer) throws TEx, MalformedDataException { + public > void serialize(DNull value, Writer writer) throws TEx, MalformedDataException { writer.nullValue(); } @Override - public > DNull deserialize(Reader reader) throws TEx, MalformedDataException { + public > DNull deserialize(Reader reader) throws TEx, MalformedDataException { reader.nextNull(); return new DNull(); } diff --git a/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DNumberTypeAdapter.java b/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DNumberTypeAdapter.java index 1e7e07e..860290c 100644 --- a/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DNumberTypeAdapter.java +++ b/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DNumberTypeAdapter.java @@ -11,14 +11,14 @@ import io.gitlab.jfronny.muscript.data.dynamic.DNumber; @SerializerFor(targets = DNumber.class, hierarchical = true) public class DNumberTypeAdapter extends TypeAdapter { @Override - public > void serialize(DNumber value, Writer writer) throws TEx, MalformedDataException { + public > void serialize(DNumber value, Writer writer) throws TEx, MalformedDataException { double d = value.getValue(); if (d % 1.0 != 0 || d > Long.MAX_VALUE) writer.value(d); else writer.value((long) d); } @Override - public > DNumber deserialize(Reader reader) throws TEx, MalformedDataException { + public > DNumber deserialize(Reader reader) throws TEx, MalformedDataException { return DFinal.of(reader.nextDouble()); } } diff --git a/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DObjectTypeAdapter.java b/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DObjectTypeAdapter.java index 3237b1a..2d46286 100644 --- a/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DObjectTypeAdapter.java +++ b/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DObjectTypeAdapter.java @@ -17,7 +17,7 @@ import java.util.Map; @SerializerFor(targets = DObject.class, hierarchical = true) public class DObjectTypeAdapter extends TypeAdapter { @Override - public > void serialize(DObject value, Writer writer) throws TEx, MalformedDataException { + public > void serialize(DObject value, Writer writer) throws TEx, MalformedDataException { writer.beginObject(); for (Map.Entry entry : value.getValue().entrySet()) { writer.name(entry.getKey()); @@ -27,7 +27,7 @@ public class DObjectTypeAdapter extends TypeAdapter { } @Override - public > DObject deserialize(Reader reader) throws TEx, MalformedDataException { + public > DObject deserialize(Reader reader) throws TEx, MalformedDataException { Map elements = new LinkedHashMap<>(); reader.beginObject(); while (reader.peek() != Token.END_OBJECT) { diff --git a/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DStringTypeAdapter.java b/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DStringTypeAdapter.java index df1b4c7..31e6cc2 100644 --- a/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DStringTypeAdapter.java +++ b/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DStringTypeAdapter.java @@ -13,12 +13,12 @@ import io.gitlab.jfronny.muscript.json.impl.DynamicTypeAdapterHolder; @SerializerFor(targets = DString.class, hierarchical = true) public class DStringTypeAdapter extends TypeAdapter { @Override - public > void serialize(DString value, Writer writer) throws TEx, MalformedDataException { + public > void serialize(DString value, Writer writer) throws TEx, MalformedDataException { writer.value(value.getValue()); } @Override - public > DString deserialize(Reader reader) throws TEx, MalformedDataException { + public > DString deserialize(Reader reader) throws TEx, MalformedDataException { if (reader.peek() == Token.STRING) return DFinal.of(reader.nextString()); else return DynamicTypeAdapterHolder.getInstance().deserialize(reader).asString(); } diff --git a/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DynamicBaseTypeAdapter.java b/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DynamicBaseTypeAdapter.java index 1cc1e78..423dfc3 100644 --- a/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DynamicBaseTypeAdapter.java +++ b/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/DynamicBaseTypeAdapter.java @@ -10,12 +10,12 @@ import io.gitlab.jfronny.muscript.data.dynamic.DynamicBase; @SerializerFor(targets = DynamicBase.class, hierarchical = true) public class DynamicBaseTypeAdapter extends TypeAdapter { @Override - public > void serialize(DynamicBase value, Writer writer) throws TEx, MalformedDataException { + public > void serialize(DynamicBase value, Writer writer) throws TEx, MalformedDataException { throw new UnsupportedOperationException("Tried to write unsupported custom dynamic: " + value); } @Override - public > DynamicBase deserialize(Reader reader) throws TEx, MalformedDataException { + public > DynamicBase deserialize(Reader reader) throws TEx, MalformedDataException { throw new UnsupportedOperationException("Tried to read unsupported custom dynamic"); } } diff --git a/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/additional/DDateTypeAdapter.java b/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/additional/DDateTypeAdapter.java index 379413e..8bc8bb8 100644 --- a/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/additional/DDateTypeAdapter.java +++ b/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/additional/DDateTypeAdapter.java @@ -12,12 +12,12 @@ import java.time.LocalDate; @SerializerFor(targets = DDate.class, hierarchical = true) public class DDateTypeAdapter extends TypeAdapter { @Override - public > void serialize(DDate value, Writer writer) throws TEx, MalformedDataException { + public > void serialize(DDate value, Writer writer) throws TEx, MalformedDataException { writer.value(value.toString()); } @Override - public > DDate deserialize(Reader reader) throws TEx, MalformedDataException { + public > DDate deserialize(Reader reader) throws TEx, MalformedDataException { String s = reader.nextString(); return new DDate(() -> LocalDate.parse(s)); } diff --git a/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/additional/DEnumTypeAdapter.java b/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/additional/DEnumTypeAdapter.java index 240623b..0eadfdc 100644 --- a/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/additional/DEnumTypeAdapter.java +++ b/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/additional/DEnumTypeAdapter.java @@ -10,7 +10,7 @@ import io.gitlab.jfronny.muscript.data.additional.DEnum; @SerializerFor(targets = DEnum.class, hierarchical = true) public class DEnumTypeAdapter extends TypeAdapter { @Override - public > void serialize(DEnum value, Writer writer) throws TEx, MalformedDataException { + public > void serialize(DEnum value, Writer writer) throws TEx, MalformedDataException { if (value.value() == null) { writer.beginArray(); for (String s : value.values().keySet()) { @@ -21,7 +21,7 @@ public class DEnumTypeAdapter extends TypeAdapter { } @Override - public > DEnum deserialize(Reader reader) throws TEx, MalformedDataException { + public > DEnum deserialize(Reader reader) throws TEx, MalformedDataException { throw new UnsupportedOperationException("Deserializing DEnum is unsupported"); } } diff --git a/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/additional/DTimeTypeAdapter.java b/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/additional/DTimeTypeAdapter.java index 272595f..2002436 100644 --- a/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/additional/DTimeTypeAdapter.java +++ b/muscript-json/src/main/java/io/gitlab/jfronny/muscript/json/impl/typed/additional/DTimeTypeAdapter.java @@ -12,12 +12,12 @@ import java.time.LocalTime; @SerializerFor(targets = DTime.class, hierarchical = true) public class DTimeTypeAdapter extends TypeAdapter { @Override - public > void serialize(DTime value, Writer writer) throws TEx, MalformedDataException { + public > void serialize(DTime value, Writer writer) throws TEx, MalformedDataException { writer.value(value.toString()); } @Override - public > DTime deserialize(Reader reader) throws TEx, MalformedDataException { + public > DTime deserialize(Reader reader) throws TEx, MalformedDataException { String s = reader.nextString(); return new DTime(() -> LocalTime.parse(s)); }