feat(serialize): implement data binding
This commit is contained in:
parent
e9dffa3a33
commit
7f7eb954f8
|
@ -17,7 +17,7 @@ publishing {
|
|||
publications {
|
||||
create<MavenPublication>("maven") {
|
||||
groupId = "io.gitlab.jfronny"
|
||||
artifactId = "commons-serialize-gson"
|
||||
artifactId = "commons-gson"
|
||||
|
||||
from(components["java"])
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
package io.gitlab.jfronny.commons.serialize.gson.api.v2;
|
||||
|
||||
import io.gitlab.jfronny.commons.ref.WeakSet;
|
||||
import io.gitlab.jfronny.commons.serialize.Serializer;
|
||||
import io.gitlab.jfronny.commons.Serializer;
|
||||
import io.gitlab.jfronny.commons.serialize.gson.impl.GsonHolderSerializer;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package io.gitlab.jfronny.commons.serialize.gson.impl;
|
||||
|
||||
import io.gitlab.jfronny.commons.serialize.Serializer;
|
||||
import io.gitlab.jfronny.commons.Serializer;
|
||||
import io.gitlab.jfronny.commons.serialize.gson.api.v2.GsonHolder;
|
||||
import io.gitlab.jfronny.gson.*;
|
||||
|
|
@ -2,7 +2,7 @@ package io.gitlab.jfronny.commons.test;
|
|||
|
||||
import io.gitlab.jfronny.commons.ComparableVersion;
|
||||
import io.gitlab.jfronny.commons.data.String2ObjectMap;
|
||||
import io.gitlab.jfronny.commons.serialize.Serializer;
|
||||
import io.gitlab.jfronny.commons.Serializer;
|
||||
import io.gitlab.jfronny.commons.serialize.annotations.Ignore;
|
||||
import io.gitlab.jfronny.commons.serialize.gson.api.v2.GsonHolders;
|
||||
import io.gitlab.jfronny.gson.reflect.TypeToken;
|
|
@ -6,7 +6,6 @@ plugins {
|
|||
|
||||
dependencies {
|
||||
implementation(projects.commons)
|
||||
implementation(projects.commonsSerialize)
|
||||
}
|
||||
|
||||
publishing {
|
||||
|
@ -22,5 +21,4 @@ publishing {
|
|||
|
||||
tasks.javadoc {
|
||||
linksOffline("https://maven.frohnmeyer-wds.de/javadoc/artifacts/io/gitlab/jfronny/commons/$version/raw", projects.commons)
|
||||
linksOffline("https://maven.frohnmeyer-wds.de/javadoc/artifacts/io/gitlab/jfronny/commons-serialize/$version/raw", projects.commonsSerialize)
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package io.gitlab.jfronny.commons.http.client;
|
||||
|
||||
import io.gitlab.jfronny.commons.data.Either;
|
||||
import io.gitlab.jfronny.commons.serialize.Serializer;
|
||||
import io.gitlab.jfronny.commons.Serializer;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package io.gitlab.jfronny.commons.http.client;
|
||||
|
||||
import io.gitlab.jfronny.commons.data.Either;
|
||||
import io.gitlab.jfronny.commons.serialize.Serializer;
|
||||
import io.gitlab.jfronny.commons.Serializer;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
module io.gitlab.jfronny.commons.http.client {
|
||||
requires java.net.http;
|
||||
requires io.gitlab.jfronny.commons;
|
||||
requires io.gitlab.jfronny.commons.serialize;
|
||||
exports io.gitlab.jfronny.commons.http.client;
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
package io.gitlab.jfronny.commons.io;
|
||||
|
||||
import io.gitlab.jfronny.commons.serialize.Serializer;
|
||||
import io.gitlab.jfronny.commons.Serializer;
|
||||
import io.gitlab.jfronny.commons.throwable.ThrowingConsumer;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
|
|
|
@ -17,9 +17,9 @@
|
|||
package io.gitlab.jfronny.commons.serialize.databind.sql;
|
||||
|
||||
import io.gitlab.jfronny.commons.serialize.databind.*;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeWriter;
|
||||
import io.gitlab.jfronny.commons.serialize.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeWriter;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.ParseException;
|
||||
|
|
|
@ -19,10 +19,10 @@ package io.gitlab.jfronny.commons.serialize.databind.sql;
|
|||
|
||||
import io.gitlab.jfronny.commons.serialize.databind.SerializerFor;
|
||||
import io.gitlab.jfronny.commons.serialize.databind.TypeAdapter;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeWriter;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.Token;
|
||||
import io.gitlab.jfronny.commons.serialize.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeWriter;
|
||||
import io.gitlab.jfronny.commons.serialize.Token;
|
||||
|
||||
import java.sql.Time;
|
||||
import java.text.DateFormat;
|
||||
|
|
|
@ -20,9 +20,9 @@ import io.gitlab.jfronny.commons.serialize.databind.ObjectMapper;
|
|||
import io.gitlab.jfronny.commons.serialize.databind.TypeAdapter;
|
||||
import io.gitlab.jfronny.commons.serialize.databind.TypeAdapterFactory;
|
||||
import io.gitlab.jfronny.commons.serialize.databind.TypeToken;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeWriter;
|
||||
import io.gitlab.jfronny.commons.serialize.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeWriter;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.util.Date;
|
||||
|
|
|
@ -0,0 +1,56 @@
|
|||
package io.gitlab.jfronny.commons.serialize.databind;
|
||||
|
||||
import io.gitlab.jfronny.commons.Serializer;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeWriter;
|
||||
import io.gitlab.jfronny.commons.serialize.Transport;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.Objects;
|
||||
|
||||
public class DatabindSerializer<TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>, Writer extends SerializeWriter<TEx, Writer>> implements Serializer {
|
||||
private final Transport<TEx, Reader, Writer> transport;
|
||||
private final ObjectMapper mapper;
|
||||
|
||||
public DatabindSerializer(Transport<TEx, Reader, Writer> transport, ObjectMapper mapper) {
|
||||
this.transport = Objects.requireNonNull(transport);
|
||||
this.mapper = Objects.requireNonNull(mapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String serialize(Object object) throws IOException {
|
||||
try {
|
||||
return transport.write(writer -> mapper.serialize(object, writer));
|
||||
} catch (Throwable e) {
|
||||
throw e instanceof IOException x ? x : new IOException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T deserialize(java.io.Reader source, Type typeOfT) throws IOException {
|
||||
try (Reader reader = transport.createReader(source)) {
|
||||
return (T) mapper.getAdapter(TypeToken.get(typeOfT)).deserialize(reader);
|
||||
} catch (IOException e) {
|
||||
throw e;
|
||||
} catch (Throwable e) {
|
||||
throw new IOException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T deserialize(String source, Type typeOfT) throws IOException {
|
||||
try (Reader reader = transport.createReader(source)) {
|
||||
return (T) mapper.getAdapter(TypeToken.get(typeOfT)).deserialize(reader);
|
||||
} catch (IOException e) {
|
||||
throw e;
|
||||
} catch (Throwable e) {
|
||||
throw new IOException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFormatMime() {
|
||||
return transport.getFormatMime();
|
||||
}
|
||||
}
|
|
@ -1,9 +1,9 @@
|
|||
package io.gitlab.jfronny.commons.serialize.databind;
|
||||
|
||||
import io.gitlab.jfronny.commons.serialize.databind.impl.adapter.SerializationDelegatingTypeAdapter;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeWriter;
|
||||
import io.gitlab.jfronny.commons.serialize.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeWriter;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.*;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package io.gitlab.jfronny.commons.serialize.databind;
|
||||
|
||||
import io.gitlab.jfronny.commons.serialize.stream.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeWriter;
|
||||
import io.gitlab.jfronny.commons.serialize.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeWriter;
|
||||
|
||||
public abstract class TypeAdapter<T> {
|
||||
public abstract <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(T value, Writer writer) throws TEx, MalformedDataException;
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package io.gitlab.jfronny.commons.serialize.databind.impl;
|
||||
|
||||
import io.gitlab.jfronny.commons.data.LazilyParsedNumber;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.Token;
|
||||
import io.gitlab.jfronny.commons.serialize.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.Token;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package io.gitlab.jfronny.commons.serialize.databind.impl;
|
||||
|
||||
import io.gitlab.jfronny.commons.serialize.stream.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeWriter;
|
||||
import io.gitlab.jfronny.commons.serialize.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeWriter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
|
|
@ -5,10 +5,10 @@ import io.gitlab.jfronny.commons.serialize.databind.TypeAdapter;
|
|||
import io.gitlab.jfronny.commons.serialize.databind.TypeAdapterFactory;
|
||||
import io.gitlab.jfronny.commons.serialize.databind.TypeToken;
|
||||
import io.gitlab.jfronny.commons.serialize.databind.impl.TypeUtils;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeWriter;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.Token;
|
||||
import io.gitlab.jfronny.commons.serialize.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeWriter;
|
||||
import io.gitlab.jfronny.commons.serialize.Token;
|
||||
|
||||
import java.lang.reflect.Array;
|
||||
import java.lang.reflect.GenericArrayType;
|
||||
|
|
|
@ -4,9 +4,9 @@ import io.gitlab.jfronny.commons.serialize.databind.SerializerFor;
|
|||
import io.gitlab.jfronny.commons.serialize.databind.TypeAdapter;
|
||||
import io.gitlab.jfronny.commons.serialize.databind.impl.ISO8601Utils;
|
||||
import io.gitlab.jfronny.commons.serialize.databind.impl.PreJava9DateFormatProvider;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeWriter;
|
||||
import io.gitlab.jfronny.commons.serialize.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeWriter;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.ParseException;
|
||||
|
|
|
@ -5,9 +5,9 @@ import io.gitlab.jfronny.commons.serialize.databind.ObjectMapper;
|
|||
import io.gitlab.jfronny.commons.serialize.databind.TypeAdapter;
|
||||
import io.gitlab.jfronny.commons.serialize.databind.TypeAdapterFactory;
|
||||
import io.gitlab.jfronny.commons.serialize.databind.TypeToken;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeWriter;
|
||||
import io.gitlab.jfronny.commons.serialize.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeWriter;
|
||||
|
||||
import java.lang.reflect.AccessibleObject;
|
||||
import java.lang.reflect.Field;
|
||||
|
|
|
@ -7,10 +7,10 @@ import io.gitlab.jfronny.commons.serialize.databind.TypeToken;
|
|||
import io.gitlab.jfronny.commons.serialize.databind.impl.MapKeyReader;
|
||||
import io.gitlab.jfronny.commons.serialize.databind.impl.MapKeyWriter;
|
||||
import io.gitlab.jfronny.commons.serialize.databind.impl.TypeUtils;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeWriter;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.Token;
|
||||
import io.gitlab.jfronny.commons.serialize.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeWriter;
|
||||
import io.gitlab.jfronny.commons.serialize.Token;
|
||||
import io.gitlab.jfronny.commons.tuple.Tuple;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
|
|
|
@ -2,8 +2,8 @@ package io.gitlab.jfronny.commons.serialize.databind.impl.adapter;
|
|||
|
||||
import io.gitlab.jfronny.commons.serialize.databind.ObjectMapper;
|
||||
import io.gitlab.jfronny.commons.serialize.databind.TypeAdapter;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeWriter;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeWriter;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
|
||||
|
|
|
@ -4,12 +4,12 @@ import io.gitlab.jfronny.commons.data.LazilyParsedNumber;
|
|||
import io.gitlab.jfronny.commons.data.NumberLimits;
|
||||
import io.gitlab.jfronny.commons.serialize.databind.SerializerFor;
|
||||
import io.gitlab.jfronny.commons.serialize.databind.TypeAdapter;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeWriter;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.Token;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.emulated.DataElement;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.emulated.DataElementSerializer;
|
||||
import io.gitlab.jfronny.commons.serialize.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeWriter;
|
||||
import io.gitlab.jfronny.commons.serialize.Token;
|
||||
import io.gitlab.jfronny.commons.serialize.emulated.DataElement;
|
||||
import io.gitlab.jfronny.commons.serialize.emulated.DataElementSerializer;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigInteger;
|
||||
|
|
|
@ -6,7 +6,7 @@ plugins {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
implementation(projects.commonsSerializeGson)
|
||||
implementation(projects.commonsGson)
|
||||
|
||||
testImplementation(kotlin("test"))
|
||||
}
|
||||
|
@ -30,6 +30,6 @@ tasks.javadoc {
|
|||
enabled = false
|
||||
linksOffline("https://maven.frohnmeyer-wds.de/javadoc/artifacts/io/gitlab/jfronny/commons/$version/raw", projects.commons)
|
||||
linksOffline("https://maven.frohnmeyer-wds.de/javadoc/artifacts/io/gitlab/jfronny/commons-serialize/$version/raw", projects.commonsSerialize)
|
||||
linksOffline("https://maven.frohnmeyer-wds.de/javadoc/artifacts/io/gitlab/jfronny/commons-serialize-gson/$version/raw", projects.commonsSerializeGson)
|
||||
linksOffline("https://maven.frohnmeyer-wds.de/javadoc/artifacts/io/gitlab/jfronny/commons-gson/$version/raw", projects.commonsGson)
|
||||
//TODO link gson javadoc (harder to generate than expected)
|
||||
}
|
||||
|
|
|
@ -3,9 +3,9 @@ package io.gitlab.jfronny.commons.serialize.json;
|
|||
import io.gitlab.jfronny.commons.data.LazilyParsedNumber;
|
||||
import io.gitlab.jfronny.commons.serialize.StringEscapeUtil;
|
||||
import io.gitlab.jfronny.commons.serialize.json.impl.JsonScope;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.Token;
|
||||
import io.gitlab.jfronny.commons.serialize.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.Token;
|
||||
|
||||
import java.io.Closeable;
|
||||
import java.io.EOFException;
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
package io.gitlab.jfronny.commons.serialize.json;
|
||||
|
||||
import io.gitlab.jfronny.commons.serialize.Transport;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
import java.io.StringWriter;
|
||||
|
||||
public class JsonTransport implements Transport<IOException, JsonReader, JsonWriter> {
|
||||
@Override
|
||||
public JsonReader createReader(Reader source) {
|
||||
return new JsonReader(source);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String write(PerformWrite<IOException, JsonWriter> write) throws IOException {
|
||||
try (StringWriter sw = new StringWriter(); JsonWriter writer = new JsonWriter(sw)) {
|
||||
write.write(writer);
|
||||
return sw.toString();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFormatMime() {
|
||||
return "application/json";
|
||||
}
|
||||
}
|
|
@ -1,8 +1,8 @@
|
|||
package io.gitlab.jfronny.commons.serialize.json;
|
||||
|
||||
import io.gitlab.jfronny.commons.serialize.StringEscapeUtil;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeWriter;
|
||||
import io.gitlab.jfronny.commons.serialize.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeWriter;
|
||||
|
||||
import java.io.Closeable;
|
||||
import java.io.IOException;
|
||||
|
|
|
@ -17,10 +17,10 @@
|
|||
package io.gitlab.jfronny.commons.serialize.json.test;
|
||||
|
||||
import io.gitlab.jfronny.commons.serialize.json.JsonReader;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.Token;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.emulated.DataElementSerializer;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.emulated.EmulatedReader;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.Token;
|
||||
import io.gitlab.jfronny.commons.serialize.emulated.DataElementSerializer;
|
||||
import io.gitlab.jfronny.commons.serialize.emulated.EmulatedReader;
|
||||
import io.gitlab.jfronny.commons.throwable.Try;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
|
|
@ -17,8 +17,8 @@
|
|||
package io.gitlab.jfronny.commons.serialize.json.test;
|
||||
|
||||
import io.gitlab.jfronny.commons.serialize.json.JsonReader;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.Token;
|
||||
import io.gitlab.jfronny.commons.serialize.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.Token;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
|
@ -29,7 +29,7 @@ import java.io.StringReader;
|
|||
import java.util.Arrays;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static io.gitlab.jfronny.commons.serialize.stream.Token.*;
|
||||
import static io.gitlab.jfronny.commons.serialize.Token.*;
|
||||
import static org.junit.Assert.assertThrows;
|
||||
import static org.junit.Assert.fail;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package io.gitlab.jfronny.commons.serialize.stream;
|
||||
package io.gitlab.jfronny.commons.serialize;
|
||||
|
||||
import java.io.IOException;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package io.gitlab.jfronny.commons.serialize.stream;
|
||||
package io.gitlab.jfronny.commons.serialize;
|
||||
|
||||
import io.gitlab.jfronny.commons.SamWithReceiver;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package io.gitlab.jfronny.commons.serialize.stream;
|
||||
package io.gitlab.jfronny.commons.serialize;
|
||||
|
||||
import io.gitlab.jfronny.commons.SamWithReceiver;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package io.gitlab.jfronny.commons.serialize.stream;
|
||||
package io.gitlab.jfronny.commons.serialize;
|
||||
|
||||
public enum Token {
|
||||
BEGIN_ARRAY, END_ARRAY, BEGIN_OBJECT, END_OBJECT, NAME, STRING, NUMBER, BOOLEAN, NULL, END_DOCUMENT
|
|
@ -0,0 +1,20 @@
|
|||
package io.gitlab.jfronny.commons.serialize;
|
||||
|
||||
import java.io.StringReader;
|
||||
|
||||
public interface Transport<TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>, Writer extends SerializeWriter<TEx, Writer>> {
|
||||
Reader createReader(java.io.Reader source) throws TEx;
|
||||
|
||||
default Reader createReader(String source) throws TEx {
|
||||
return createReader(new StringReader(source));
|
||||
}
|
||||
|
||||
String write(PerformWrite<TEx, Writer> write) throws TEx;
|
||||
|
||||
String getFormatMime();
|
||||
|
||||
@FunctionalInterface
|
||||
interface PerformWrite<TEx extends Throwable, W extends SerializeWriter<TEx, W>> {
|
||||
void write(W writer) throws TEx, MalformedDataException;
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package io.gitlab.jfronny.commons.serialize.stream.emulated;
|
||||
package io.gitlab.jfronny.commons.serialize.emulated;
|
||||
|
||||
import io.gitlab.jfronny.commons.data.LinkedTreeMap;
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
package io.gitlab.jfronny.commons.serialize.stream.emulated;
|
||||
package io.gitlab.jfronny.commons.serialize.emulated;
|
||||
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeWriter;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeWriter;
|
||||
|
||||
import java.util.Map;
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
package io.gitlab.jfronny.commons.serialize.stream.emulated;
|
||||
package io.gitlab.jfronny.commons.serialize.emulated;
|
||||
|
||||
import io.gitlab.jfronny.commons.serialize.stream.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.stream.Token;
|
||||
import io.gitlab.jfronny.commons.serialize.MalformedDataException;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeReader;
|
||||
import io.gitlab.jfronny.commons.serialize.Token;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Iterator;
|
|
@ -1,6 +1,6 @@
|
|||
package io.gitlab.jfronny.commons.serialize.stream.emulated;
|
||||
package io.gitlab.jfronny.commons.serialize.emulated;
|
||||
|
||||
import io.gitlab.jfronny.commons.serialize.stream.SerializeWriter;
|
||||
import io.gitlab.jfronny.commons.serialize.SerializeWriter;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
|
@ -2,7 +2,6 @@ module io.gitlab.jfronny.commons.serialize {
|
|||
requires static org.jetbrains.annotations;
|
||||
requires io.gitlab.jfronny.commons;
|
||||
exports io.gitlab.jfronny.commons.serialize;
|
||||
exports io.gitlab.jfronny.commons.serialize.stream;
|
||||
exports io.gitlab.jfronny.commons.serialize.stream.emulated;
|
||||
exports io.gitlab.jfronny.commons.serialize.emulated;
|
||||
exports io.gitlab.jfronny.commons.serialize.annotations;
|
||||
}
|
|
@ -1,4 +1,6 @@
|
|||
package io.gitlab.jfronny.commons.serialize;
|
||||
package io.gitlab.jfronny.commons;
|
||||
|
||||
import io.gitlab.jfronny.commons.impl.SerializerHolder;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Reader;
|
|
@ -1,5 +1,6 @@
|
|||
package io.gitlab.jfronny.commons.serialize;
|
||||
package io.gitlab.jfronny.commons.impl;
|
||||
|
||||
import io.gitlab.jfronny.commons.Serializer;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.Objects;
|
||||
|
@ -7,7 +8,7 @@ import java.util.Objects;
|
|||
/**
|
||||
* Holds a serializer for use elsewhere
|
||||
*/
|
||||
class SerializerHolder {
|
||||
public class SerializerHolder {
|
||||
private static Serializer instance;
|
||||
|
||||
/**
|
|
@ -6,7 +6,7 @@ plugins {
|
|||
|
||||
dependencies {
|
||||
implementation(projects.muscriptDataAdditional)
|
||||
implementation(projects.commonsSerializeGson)
|
||||
implementation(projects.commonsGson)
|
||||
|
||||
testImplementation(libs.junit.jupiter.api)
|
||||
testImplementation(projects.muscriptParser)
|
||||
|
@ -28,7 +28,7 @@ publishing {
|
|||
tasks.javadoc {
|
||||
linksOffline("https://maven.frohnmeyer-wds.de/javadoc/artifacts/io/gitlab/jfronny/commons/$version/raw", projects.commons)
|
||||
linksOffline("https://maven.frohnmeyer-wds.de/javadoc/artifacts/io/gitlab/jfronny/commons-serialize/$version/raw", projects.commonsSerialize)
|
||||
linksOffline("https://maven.frohnmeyer-wds.de/javadoc/artifacts/io/gitlab/jfronny/commons-serialize-gson/$version/raw", projects.commonsSerializeGson)
|
||||
linksOffline("https://maven.frohnmeyer-wds.de/javadoc/artifacts/io/gitlab/jfronny/commons-gson/$version/raw", projects.commonsGson)
|
||||
linksOffline("https://maven.frohnmeyer-wds.de/javadoc/artifacts/io/gitlab/jfronny/muscript-data-dynamic/$version/raw", projects.muscriptDataDynamic)
|
||||
linksOffline("https://maven.frohnmeyer-wds.de/javadoc/artifacts/io/gitlab/jfronny/muscript-data-additional/$version/raw", projects.muscriptDataAdditional)
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@ rootProject.name = "JfCommons"
|
|||
|
||||
include("commons")
|
||||
include("commons-serialize")
|
||||
include("commons-serialize-gson")
|
||||
include("commons-serialize-gson-dsl")
|
||||
include("commons-serialize-json")
|
||||
include("commons-serialize-databind")
|
||||
|
@ -12,6 +11,7 @@ include("commons-logger")
|
|||
include("commons-http-client")
|
||||
include("commons-http-server")
|
||||
include("commons-manifold")
|
||||
include("commons-gson")
|
||||
include("commons-unsafe")
|
||||
// new muscript
|
||||
include("muscript-core")
|
||||
|
|
Loading…
Reference in New Issue