fix(serialize-generator): Patch related components to use Exception instead of Throwable

This commit is contained in:
Johannes Frohnmeyer 2024-04-18 21:04:58 +02:00
parent 54f16611cc
commit b669803fa1
Signed by: Johannes
GPG Key ID: E76429612C2929F4
16 changed files with 94 additions and 99 deletions

View File

@ -41,7 +41,7 @@ final class SqlDateTypeAdapter extends TypeAdapter<java.sql.Date> {
private SqlDateTypeAdapter() {}
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(java.sql.Date value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(java.sql.Date value, Writer writer) throws TEx, MalformedDataException {
if (value == null) {
writer.nullValue();
return;
@ -54,7 +54,7 @@ final class SqlDateTypeAdapter extends TypeAdapter<java.sql.Date> {
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> java.sql.Date deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> java.sql.Date deserialize(Reader reader) throws TEx, MalformedDataException {
String s = reader.nextString();
synchronized (this) {
TimeZone originalTimeZone = format.getTimeZone(); // Save the original time zone

View File

@ -44,7 +44,7 @@ final class SqlTimeTypeAdapter extends TypeAdapter<Time> {
private SqlTimeTypeAdapter() {}
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(Time value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(Time value, Writer writer) throws TEx, MalformedDataException {
if (value == null) {
writer.nullValue();
return;
@ -57,7 +57,7 @@ final class SqlTimeTypeAdapter extends TypeAdapter<Time> {
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> Time deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> Time deserialize(Reader reader) throws TEx, MalformedDataException {
if (reader.peek() == Token.NULL) {
reader.nextNull();
return null;

View File

@ -44,12 +44,12 @@ class SqlTimestampTypeAdapterFactory implements TypeAdapterFactory {
}
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(Timestamp value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(Timestamp value, Writer writer) throws TEx, MalformedDataException {
dateTypeAdapter.serialize(value, writer);
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> Timestamp deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> Timestamp deserialize(Reader reader) throws TEx, MalformedDataException {
Date date = dateTypeAdapter.deserialize(reader);
return date != null ? new Timestamp(date.getTime()) : null;
}

View File

@ -11,7 +11,7 @@ import java.io.StringWriter;
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 {
public class DatabindSerializer<TEx extends Exception, Reader extends SerializeReader<TEx, Reader>, Writer extends SerializeWriter<TEx, Writer>> implements Serializer {
private final Transport<TEx, Reader, Writer> transport;
private final ObjectMapper mapper;

View File

@ -50,11 +50,11 @@ public class ObjectMapper implements WithScopedValue<ObjectMapper> {
return this;
}
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>, T> T deserialize(Class<T> type, Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>, T> T deserialize(Class<T> type, Reader reader) throws TEx, MalformedDataException {
return this.<T, TEx, MalformedDataException>withContext(() -> getAdapter(type).deserialize(reader));
}
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>, T> void serialize(T value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>, T> void serialize(T value, Writer writer) throws TEx, MalformedDataException {
this.<TEx, MalformedDataException>withContext(() -> getAdapter((Class<T>) value.getClass()).serialize(value, writer));
}
@ -167,12 +167,12 @@ public class ObjectMapper implements WithScopedValue<ObjectMapper> {
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> T deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> T deserialize(Reader reader) throws TEx, MalformedDataException {
return delegate().deserialize(reader);
}
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(T value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(T value, Writer writer) throws TEx, MalformedDataException {
delegate().serialize(value, writer);
}
}

View File

@ -15,12 +15,12 @@ public class HierarchyAdapter<T> extends TypeAdapter<T> {
}
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(T value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(T value, Writer writer) throws TEx, MalformedDataException {
baseAdapter.serialize(value, writer);
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> T deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> T deserialize(Reader reader) throws TEx, MalformedDataException {
var result = baseAdapter.deserialize(reader);
if (result == null) return null;
if (!type.isInstance(result)) {

View File

@ -38,7 +38,7 @@ public class ArrayTypeAdapterFactory implements TypeAdapterFactory {
}
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(Object value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(Object value, Writer writer) throws TEx, MalformedDataException {
if (value == null) {
writer.nullValue();
return;
@ -53,7 +53,7 @@ public class ArrayTypeAdapterFactory implements TypeAdapterFactory {
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> Object deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> Object deserialize(Reader reader) throws TEx, MalformedDataException {
if (reader.peek() == Token.NULL) {
reader.nextNull();
return null;

View File

@ -33,7 +33,7 @@ public class DefaultDateTypeAdapter extends TypeAdapter<Date> {
}
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(Date value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(Date value, Writer writer) throws TEx, MalformedDataException {
DateFormat dateFormat = dateFormats.getFirst();
String dateFormatAsString;
// Needs to be synchronized since JDK DateFormat classes are not thread-safe
@ -45,7 +45,7 @@ public class DefaultDateTypeAdapter extends TypeAdapter<Date> {
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> Date deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> Date deserialize(Reader reader) throws TEx, MalformedDataException {
String s = reader.nextString();
// Needs to be synchronized since JDK DateFormat classes are not thread-safe
synchronized (dateFormats) {

View File

@ -76,12 +76,12 @@ public class EnumTypeAdapterFactory implements TypeAdapterFactory {
}
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(T value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(T value, Writer writer) throws TEx, MalformedDataException {
writer.value(value == null ? null : constantToName.get(value));
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> T deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> T deserialize(Reader reader) throws TEx, MalformedDataException {
String key = reader.nextString();
T constant = nameToConstant.get(key);
return (constant == null) ? stringToConstant.get(key) : constant;

View File

@ -52,7 +52,7 @@ public class MapTypeAdapterFactory implements TypeAdapterFactory {
}
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(Map<K, V> value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(Map<K, V> value, Writer writer) throws TEx, MalformedDataException {
writer.beginObject();
Map<String, Tuple<V, List<String>>> tmp = new LinkedHashMap<>();
List<Map.Entry<K, V>> toWrite = new ArrayList<>(value.entrySet());
@ -100,7 +100,7 @@ public class MapTypeAdapterFactory implements TypeAdapterFactory {
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> Map<K, V> deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> Map<K, V> deserialize(Reader reader) throws TEx, MalformedDataException {
Token peek = reader.peek();
Map<K, V> map = new HashMap<>();
if (peek == Token.BEGIN_ARRAY) {

View File

@ -19,12 +19,12 @@ public class TypeAdapterRuntimeTypeWrapper<T> extends TypeAdapter<T> {
}
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(T value, Writer writer) throws TEx {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(T value, Writer writer) throws TEx {
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> T deserialize(Reader reader) throws TEx {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> T deserialize(Reader reader) throws TEx {
return null;
}
}

View File

@ -25,12 +25,12 @@ public class TypeAdapters {
@SerializerFor(targets = {boolean.class, Boolean.class})
public static class BooleanTypeAdapter extends TypeAdapter<Boolean> {
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(Boolean value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(Boolean value, Writer writer) throws TEx, MalformedDataException {
writer.value(value);
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> Boolean deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> Boolean deserialize(Reader reader) throws TEx, MalformedDataException {
if (reader.peek() == Token.STRING) {
// special casing for boolean strings
String value = reader.nextString();
@ -49,12 +49,12 @@ public class TypeAdapters {
@SerializerFor(targets = {byte.class, Byte.class})
public static class ByteTypeAdapter extends TypeAdapter<Byte> {
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(Byte value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(Byte value, Writer writer) throws TEx, MalformedDataException {
writer.value(value);
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> Byte deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> Byte deserialize(Reader reader) throws TEx, MalformedDataException {
int value;
try {
value = reader.nextInt();
@ -72,12 +72,12 @@ public class TypeAdapters {
@SerializerFor(targets = {short.class, Short.class})
public static class ShortTypeAdapter extends TypeAdapter<Short> {
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(Short value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(Short value, Writer writer) throws TEx, MalformedDataException {
writer.value(value);
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> Short deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> Short deserialize(Reader reader) throws TEx, MalformedDataException {
int value;
try {
value = reader.nextInt();
@ -95,12 +95,12 @@ public class TypeAdapters {
@SerializerFor(targets = {int.class, Integer.class})
public static class IntegerTypeAdapter extends TypeAdapter<Integer> {
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(Integer value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(Integer value, Writer writer) throws TEx, MalformedDataException {
writer.value(value);
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> Integer deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> Integer deserialize(Reader reader) throws TEx, MalformedDataException {
try {
return reader.nextInt();
} catch (NumberFormatException e) {
@ -112,12 +112,12 @@ public class TypeAdapters {
@SerializerFor(targets = {long.class, Long.class})
public static class LongTypeAdapter extends TypeAdapter<Long> {
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(Long value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(Long value, Writer writer) throws TEx, MalformedDataException {
writer.value(value);
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> Long deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> Long deserialize(Reader reader) throws TEx, MalformedDataException {
try {
return reader.nextLong();
} catch (NumberFormatException e) {
@ -129,12 +129,12 @@ public class TypeAdapters {
@SerializerFor(targets = {float.class, Float.class})
public static class FloatTypeAdapter extends TypeAdapter<Float> {
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(Float value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(Float value, Writer writer) throws TEx, MalformedDataException {
writer.value(value);
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> Float deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> Float deserialize(Reader reader) throws TEx, MalformedDataException {
try {
return (float) reader.nextDouble();
} catch (NumberFormatException e) {
@ -146,12 +146,12 @@ public class TypeAdapters {
@SerializerFor(targets = {double.class, Double.class})
public static class DoubleTypeAdapter extends TypeAdapter<Double> {
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(Double value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(Double value, Writer writer) throws TEx, MalformedDataException {
writer.value(value);
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> Double deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> Double deserialize(Reader reader) throws TEx, MalformedDataException {
try {
return reader.nextDouble();
} catch (NumberFormatException e) {
@ -163,12 +163,12 @@ public class TypeAdapters {
@SerializerFor(targets = {char.class, Character.class})
public static class CharacterTypeAdapter extends TypeAdapter<Character> {
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(Character value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(Character value, Writer writer) throws TEx, MalformedDataException {
writer.value(String.valueOf(value));
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> Character deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> Character deserialize(Reader reader) throws TEx, MalformedDataException {
String value = reader.nextString();
if (value.length() != 1) {
throw new MalformedDataException("Expected single character, got " + value);
@ -180,12 +180,12 @@ public class TypeAdapters {
@SerializerFor(targets = String.class)
public static class StringTypeAdapter extends TypeAdapter<String> {
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(String value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(String value, Writer writer) throws TEx, MalformedDataException {
writer.value(value);
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> String deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> String deserialize(Reader reader) throws TEx, MalformedDataException {
return reader.nextString();
}
}
@ -193,7 +193,7 @@ public class TypeAdapters {
@SerializerFor(targets = BitSet.class)
public static class BitSetTypeAdapter extends TypeAdapter<BitSet> {
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(BitSet value, Writer writer) throws TEx {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(BitSet value, Writer writer) throws TEx {
writer.beginArray();
for (int i = 0; i < value.length(); i++) {
writer.value(value.get(i) ? 1 : 0);
@ -202,7 +202,7 @@ public class TypeAdapters {
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> BitSet deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> BitSet deserialize(Reader reader) throws TEx, MalformedDataException {
BitSet bitset = new BitSet();
reader.beginArray();
int i = 0;
@ -246,12 +246,12 @@ public class TypeAdapters {
@SerializerFor(targets = AtomicInteger.class)
public static class AtomicIntegerTypeAdapter extends TypeAdapter<AtomicInteger> {
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(AtomicInteger value, Writer writer) throws TEx {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(AtomicInteger value, Writer writer) throws TEx {
writer.value(value.get());
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> AtomicInteger deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> AtomicInteger deserialize(Reader reader) throws TEx, MalformedDataException {
try {
return new AtomicInteger(reader.nextInt());
} catch (NumberFormatException e) {
@ -263,12 +263,12 @@ public class TypeAdapters {
@SerializerFor(targets = AtomicBoolean.class)
public static class AtomicBooleanTypeAdapter extends TypeAdapter<AtomicBoolean> {
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(AtomicBoolean value, Writer writer) throws TEx {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(AtomicBoolean value, Writer writer) throws TEx {
writer.value(value.get());
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> AtomicBoolean deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> AtomicBoolean deserialize(Reader reader) throws TEx, MalformedDataException {
return new AtomicBoolean(reader.nextBoolean());
}
}
@ -276,7 +276,7 @@ public class TypeAdapters {
@SerializerFor(targets = AtomicIntegerArray.class)
public static class AtomicIntegerArrayTypeAdapter extends TypeAdapter<AtomicIntegerArray> {
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(AtomicIntegerArray value, Writer writer) throws TEx {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(AtomicIntegerArray value, Writer writer) throws TEx {
writer.beginArray();
for (int i = 0; i < value.length(); i++) {
writer.value(value.get(i));
@ -285,7 +285,7 @@ public class TypeAdapters {
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> AtomicIntegerArray deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> AtomicIntegerArray deserialize(Reader reader) throws TEx, MalformedDataException {
if (reader.isLenient() && reader.peek() != Token.BEGIN_ARRAY) {
// Coerce
return new AtomicIntegerArray(new int[]{reader.nextInt()});
@ -310,12 +310,12 @@ public class TypeAdapters {
@SerializerFor(targets = BigDecimal.class)
public static class BigDecimalTypeAdapter extends TypeAdapter<BigDecimal> {
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(BigDecimal value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(BigDecimal value, Writer writer) throws TEx, MalformedDataException {
writer.value(value);
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> BigDecimal deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> BigDecimal deserialize(Reader reader) throws TEx, MalformedDataException {
String value = reader.nextString();
try {
return NumberLimits.parseBigDecimal(value);
@ -328,12 +328,12 @@ public class TypeAdapters {
@SerializerFor(targets = BigInteger.class)
public static class BigIntegerTypeAdapter extends TypeAdapter<BigInteger> {
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(BigInteger value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(BigInteger value, Writer writer) throws TEx, MalformedDataException {
writer.value(value);
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> BigInteger deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> BigInteger deserialize(Reader reader) throws TEx, MalformedDataException {
try {
return NumberLimits.parseBigInteger(reader.nextString());
} catch (NumberFormatException e) {
@ -345,12 +345,12 @@ public class TypeAdapters {
@SerializerFor(targets = Number.class)
public static class NumberTypeAdapter extends TypeAdapter<Number> {
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(Number value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(Number value, Writer writer) throws TEx, MalformedDataException {
writer.value(value);
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> Number deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> Number deserialize(Reader reader) throws TEx, MalformedDataException {
return reader.nextNumber();
}
}
@ -358,12 +358,12 @@ public class TypeAdapters {
@SerializerFor(targets = LazilyParsedNumber.class)
public static class LazilyParsedNumberTypeAdapter extends TypeAdapter<LazilyParsedNumber> {
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(LazilyParsedNumber value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(LazilyParsedNumber value, Writer writer) throws TEx, MalformedDataException {
writer.value(value);
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> LazilyParsedNumber deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> LazilyParsedNumber deserialize(Reader reader) throws TEx, MalformedDataException {
if (reader.peek() == Token.NUMBER) {
Number number = reader.nextNumber();
if (number instanceof LazilyParsedNumber l) return l;
@ -377,12 +377,12 @@ public class TypeAdapters {
@SerializerFor(targets = StringBuilder.class)
public static class StringBuilderTypeAdapter extends TypeAdapter<StringBuilder> {
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(StringBuilder value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(StringBuilder value, Writer writer) throws TEx, MalformedDataException {
writer.value(value.toString());
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> StringBuilder deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> StringBuilder deserialize(Reader reader) throws TEx, MalformedDataException {
return new StringBuilder(reader.nextString());
}
}
@ -390,12 +390,12 @@ public class TypeAdapters {
@SerializerFor(targets = StringBuffer.class)
public static class StringBufferTypeAdapter extends TypeAdapter<StringBuffer> {
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(StringBuffer value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(StringBuffer value, Writer writer) throws TEx, MalformedDataException {
writer.value(value.toString());
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> StringBuffer deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> StringBuffer deserialize(Reader reader) throws TEx, MalformedDataException {
return new StringBuffer(reader.nextString());
}
}
@ -403,12 +403,12 @@ public class TypeAdapters {
@SerializerFor(targets = URL.class)
public static class URLTypeAdapter extends TypeAdapter<URL> {
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(URL value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(URL value, Writer writer) throws TEx, MalformedDataException {
writer.value(value.toExternalForm());
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> URL deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> URL deserialize(Reader reader) throws TEx, MalformedDataException {
try {
String str = reader.nextString();
if (str.equals("null")) return null;
@ -422,12 +422,12 @@ public class TypeAdapters {
@SerializerFor(targets = URI.class)
public static class URITypeAdapter extends TypeAdapter<URI> {
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(URI value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(URI value, Writer writer) throws TEx, MalformedDataException {
writer.value(value.toString());
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> URI deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> URI deserialize(Reader reader) throws TEx, MalformedDataException {
try {
String str = reader.nextString();
if (str.equals("null")) return null;
@ -441,12 +441,12 @@ public class TypeAdapters {
@SerializerFor(targets = InetAddress.class, hierarchical = true)
public static class InetAddressTypeAdapter extends TypeAdapter<InetAddress> {
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(InetAddress value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(InetAddress value, Writer writer) throws TEx, MalformedDataException {
writer.value(value.getHostAddress());
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> InetAddress deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> InetAddress deserialize(Reader reader) throws TEx, MalformedDataException {
try {
return InetAddress.getByName(reader.nextString());
} catch (Exception e) {
@ -458,12 +458,12 @@ public class TypeAdapters {
@SerializerFor(targets = UUID.class)
public static class UUIDTypeAdapter extends TypeAdapter<UUID> {
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(UUID value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(UUID value, Writer writer) throws TEx, MalformedDataException {
writer.value(value.toString());
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> UUID deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> UUID deserialize(Reader reader) throws TEx, MalformedDataException {
try {
return UUID.fromString(reader.nextString());
} catch (IllegalArgumentException e) {
@ -475,12 +475,12 @@ public class TypeAdapters {
@SerializerFor(targets = Currency.class)
public static class CurrencyTypeAdapter extends TypeAdapter<Currency> {
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(Currency value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(Currency value, Writer writer) throws TEx, MalformedDataException {
writer.value(value.getCurrencyCode());
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> Currency deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> Currency deserialize(Reader reader) throws TEx, MalformedDataException {
return Currency.getInstance(reader.nextString());
}
}
@ -495,7 +495,7 @@ public class TypeAdapters {
private static final String SECOND = "second";
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(Calendar value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(Calendar value, Writer writer) throws TEx, MalformedDataException {
if (value == null) {
writer.nullValue();
return;
@ -517,7 +517,7 @@ public class TypeAdapters {
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> Calendar deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> Calendar deserialize(Reader reader) throws TEx, MalformedDataException {
reader.beginObject();
int year = 0;
int month = 0;
@ -559,12 +559,12 @@ public class TypeAdapters {
@SerializerFor(targets = Locale.class)
public static class LocaleTypeAdapter extends TypeAdapter<Locale> {
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(Locale value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(Locale value, Writer writer) throws TEx, MalformedDataException {
writer.value(value == null ? null : value.toString());
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> Locale deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> Locale deserialize(Reader reader) throws TEx, MalformedDataException {
String locale = reader.nextString();
StringTokenizer tokenizer = new StringTokenizer(locale, "_");
String language = null;
@ -592,12 +592,12 @@ public class TypeAdapters {
@SerializerFor(targets = DataElement.class, hierarchical = true)
public static class DataElementTypeAdapter extends TypeAdapter<DataElement> {
@Override
public <TEx extends Throwable, Writer extends SerializeWriter<TEx, Writer>> void serialize(DataElement value, Writer writer) throws TEx, MalformedDataException {
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void serialize(DataElement value, Writer writer) throws TEx, MalformedDataException {
DataElementSerializer.serialize(value, writer);
}
@Override
public <TEx extends Throwable, Reader extends SerializeReader<TEx, Reader>> DataElement deserialize(Reader reader) throws TEx, MalformedDataException {
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> DataElement deserialize(Reader reader) throws TEx, MalformedDataException {
return DataElementSerializer.deserialize(reader);
}
}

View File

@ -1,8 +1,9 @@
package io.gitlab.jfronny.commons.serialize.dsl
import io.gitlab.jfronny.commons.serialize.SerializeWriter
import java.lang.Exception
class ArrayScope<TEx : Throwable, Writer: SerializeWriter<TEx, Writer>>(val writer: Writer) {
class ArrayScope<TEx : Exception, Writer: SerializeWriter<TEx, Writer>>(val writer: Writer) {
fun jObject(content: (@JsonDsl ObjectScope<TEx, Writer>).() -> Unit) {
writer.beginObject()
ObjectScope(writer).content()

View File

@ -15,17 +15,17 @@ import kotlin.io.path.writer
@Target(AnnotationTarget.CLASS, AnnotationTarget.TYPE)
annotation class JsonDsl
fun <TEx : Throwable, Reader : SerializeReader<TEx, Reader>, Writer : SerializeWriter<TEx, Writer>> Path.jObject(transport: Transport<TEx, Reader, Writer>, content: (@JsonDsl ObjectScope<TEx, Writer>).() -> Unit) = openJson(transport) { jObject(content) }
fun <TEx : Throwable, Reader : SerializeReader<TEx, Reader>, Writer : SerializeWriter<TEx, Writer>> Path.jArray(transport: Transport<TEx, Reader, Writer>, content: (@JsonDsl ArrayScope<TEx, Writer>).() -> Unit) = openJson(transport) { jArray(content) }
fun <TEx : Throwable, Reader : SerializeReader<TEx, Reader>, Writer : SerializeWriter<TEx, Writer>> IOWriter.jObject(transport: Transport<TEx, Reader, Writer>, content: (@JsonDsl ObjectScope<TEx, Writer>).() -> Unit) = openJson(transport) { jObject(content) }
fun <TEx : Throwable, Reader : SerializeReader<TEx, Reader>, Writer : SerializeWriter<TEx, Writer>> IOWriter.jArray(transport: Transport<TEx, Reader, Writer>, content: (@JsonDsl ArrayScope<TEx, Writer>).() -> Unit) = openJson(transport) { jArray(content) }
fun <TEx : Throwable, Reader : SerializeReader<TEx, Reader>, Writer : SerializeWriter<TEx, Writer>> OutputStream.jObject(transport: Transport<TEx, Reader, Writer>, content: (@JsonDsl ObjectScope<TEx, Writer>).() -> Unit) = openJson(transport) { jObject(content) }
fun <TEx : Throwable, Reader : SerializeReader<TEx, Reader>, Writer : SerializeWriter<TEx, Writer>> OutputStream.jArray(transport: Transport<TEx, Reader, Writer>, content: (@JsonDsl ArrayScope<TEx, Writer>).() -> Unit) = openJson(transport) { jArray(content) }
fun <TEx : Throwable, Reader : SerializeReader<TEx, Reader>, Writer : SerializeWriter<TEx, Writer>> jObjectString(transport: Transport<TEx, Reader, Writer>, content: (@JsonDsl ObjectScope<TEx, Writer>).() -> Unit): String = StringWriter().use {
fun <TEx : Exception, Reader : SerializeReader<TEx, Reader>, Writer : SerializeWriter<TEx, Writer>> Path.jObject(transport: Transport<TEx, Reader, Writer>, content: (@JsonDsl ObjectScope<TEx, Writer>).() -> Unit) = openJson(transport) { jObject(content) }
fun <TEx : Exception, Reader : SerializeReader<TEx, Reader>, Writer : SerializeWriter<TEx, Writer>> Path.jArray(transport: Transport<TEx, Reader, Writer>, content: (@JsonDsl ArrayScope<TEx, Writer>).() -> Unit) = openJson(transport) { jArray(content) }
fun <TEx : Exception, Reader : SerializeReader<TEx, Reader>, Writer : SerializeWriter<TEx, Writer>> IOWriter.jObject(transport: Transport<TEx, Reader, Writer>, content: (@JsonDsl ObjectScope<TEx, Writer>).() -> Unit) = openJson(transport) { jObject(content) }
fun <TEx : Exception, Reader : SerializeReader<TEx, Reader>, Writer : SerializeWriter<TEx, Writer>> IOWriter.jArray(transport: Transport<TEx, Reader, Writer>, content: (@JsonDsl ArrayScope<TEx, Writer>).() -> Unit) = openJson(transport) { jArray(content) }
fun <TEx : Exception, Reader : SerializeReader<TEx, Reader>, Writer : SerializeWriter<TEx, Writer>> OutputStream.jObject(transport: Transport<TEx, Reader, Writer>, content: (@JsonDsl ObjectScope<TEx, Writer>).() -> Unit) = openJson(transport) { jObject(content) }
fun <TEx : Exception, Reader : SerializeReader<TEx, Reader>, Writer : SerializeWriter<TEx, Writer>> OutputStream.jArray(transport: Transport<TEx, Reader, Writer>, content: (@JsonDsl ArrayScope<TEx, Writer>).() -> Unit) = openJson(transport) { jArray(content) }
fun <TEx : Exception, Reader : SerializeReader<TEx, Reader>, Writer : SerializeWriter<TEx, Writer>> jObjectString(transport: Transport<TEx, Reader, Writer>, content: (@JsonDsl ObjectScope<TEx, Writer>).() -> Unit): String = StringWriter().use {
it.jObject(transport, content)
it.toString()
}
fun <TEx : Throwable, Reader : SerializeReader<TEx, Reader>, Writer : SerializeWriter<TEx, Writer>> jArrayString(transport: Transport<TEx, Reader, Writer>, content: (@JsonDsl ArrayScope<TEx, Writer>).() -> Unit): String = StringWriter().use {
fun <TEx : Exception, Reader : SerializeReader<TEx, Reader>, Writer : SerializeWriter<TEx, Writer>> jArrayString(transport: Transport<TEx, Reader, Writer>, content: (@JsonDsl ArrayScope<TEx, Writer>).() -> Unit): String = StringWriter().use {
it.jArray(transport, content)
it.toString()
}
@ -38,18 +38,18 @@ fun jArrayTree(content: (@JsonDsl ArrayScope<RuntimeException, EmulatedWriter>).
it.get()
} as DataElement.Array
fun <TEx : Throwable, Writer : SerializeWriter<TEx, Writer>> Writer.jObject(content: (@JsonDsl ObjectScope<TEx, Writer>).() -> Unit) {
fun <TEx : Exception, Writer : SerializeWriter<TEx, Writer>> Writer.jObject(content: (@JsonDsl ObjectScope<TEx, Writer>).() -> Unit) {
beginObject()
ObjectScope(this).content()
endObject()
}
fun <TEx : Throwable, Writer : SerializeWriter<TEx, Writer>> Writer.jArray(content: (@JsonDsl ArrayScope<TEx, Writer>).() -> Unit) {
fun <TEx : Exception, Writer : SerializeWriter<TEx, Writer>> Writer.jArray(content: (@JsonDsl ArrayScope<TEx, Writer>).() -> Unit) {
beginArray()
ArrayScope(this).content()
endArray()
}
private fun <TEx : Throwable, Reader : SerializeReader<TEx, Reader>, Writer : SerializeWriter<TEx, Writer>> Path.openJson(transport: Transport<TEx, Reader, Writer>, write: Writer.() -> Unit) = writer().use { it.openJson(transport, write) }
private fun <TEx : Throwable, Reader : SerializeReader<TEx, Reader>, Writer : SerializeWriter<TEx, Writer>> IOWriter.openJson(transport: Transport<TEx, Reader, Writer>, write: Writer.() -> Unit) = transport.createWriter(this).write()
private fun <TEx : Throwable, Reader : SerializeReader<TEx, Reader>, Writer : SerializeWriter<TEx, Writer>> OutputStream.openJson(transport: Transport<TEx, Reader, Writer>, write: Writer.() -> Unit) = writer().use { it.openJson(transport, write) }
private fun <TEx : Exception, Reader : SerializeReader<TEx, Reader>, Writer : SerializeWriter<TEx, Writer>> Path.openJson(transport: Transport<TEx, Reader, Writer>, write: Writer.() -> Unit) = writer().use { it.openJson(transport, write) }
private fun <TEx : Exception, Reader : SerializeReader<TEx, Reader>, Writer : SerializeWriter<TEx, Writer>> IOWriter.openJson(transport: Transport<TEx, Reader, Writer>, write: Writer.() -> Unit) = transport.createWriter(this).write()
private fun <TEx : Exception, Reader : SerializeReader<TEx, Reader>, Writer : SerializeWriter<TEx, Writer>> OutputStream.openJson(transport: Transport<TEx, Reader, Writer>, write: Writer.() -> Unit) = writer().use { it.openJson(transport, write) }

View File

@ -2,7 +2,7 @@ package io.gitlab.jfronny.commons.serialize.dsl
import io.gitlab.jfronny.commons.serialize.SerializeWriter
class ObjectScope<TEx : Throwable, Writer : SerializeWriter<TEx, Writer>>(val writer: Writer) {
class ObjectScope<TEx : Exception, Writer : SerializeWriter<TEx, Writer>>(val writer: Writer) {
fun jObject(name: String, content: (@JsonDsl ObjectScope<TEx, Writer>).() -> Unit) {
writer.name(name)
writer.beginObject()

View File

@ -13,13 +13,7 @@ import java.util.*;
*/
public class LinkedTreeMap<K, V> extends AbstractMap<K, V> implements Serializable {
@SuppressWarnings({"unchecked", "rawtypes"}) // to avoid Comparable<Comparable<Comparable<...>>>
private static final Comparator<Comparable> NATURAL_ORDER =
new Comparator<Comparable>() {
@Override
public int compare(Comparable a, Comparable b) {
return a.compareTo(b);
}
};
private static final Comparator<Comparable> NATURAL_ORDER = Comparable::compareTo;
private final Comparator<? super K> comparator;
private final boolean allowNullValues;