diff --git a/ast/src/main/java/net/hamnaberg/json/Folder.java b/ast/src/main/java/net/hamnaberg/json/Folder.java new file mode 100644 index 0000000..5b47c13 --- /dev/null +++ b/ast/src/main/java/net/hamnaberg/json/Folder.java @@ -0,0 +1,87 @@ +package net.hamnaberg.json; + +import java.util.function.Function; +import java.util.function.Supplier; + +public interface Folder { + A onNull(); + + A onBoolean(Json.JBoolean b); + + A onNumber(Json.JNumber n); + + A onString(Json.JString s); + + A onArray(Json.JArray a); + + A onObject(Json.JObject o); + + default VoidFolder toVoid() { + var self = this; + return new VoidFolder() { + @Override + public void onNull() { + self.onNull(); + } + + @Override + public void onBoolean(Json.JBoolean b) { + self.onBoolean(b); + } + + @Override + public void onNumber(Json.JNumber n) { + self.onNumber(n); + } + + @Override + public void onString(Json.JString s) { + self.onString(s); + } + + @Override + public void onArray(Json.JArray a) { + self.onArray(a); + } + + @Override + public void onObject(Json.JObject o) { + self.onObject(o); + } + }; + } + + static Folder from(Function fString, Function fBoolean, Function fNumber, Function fObject, Function fArray, Supplier fNull) { + return new Folder<>() { + @Override + public X onNull() { + return fNull.get(); + } + + @Override + public X onBoolean(Json.JBoolean b) { + return fBoolean.apply(b); + } + + @Override + public X onNumber(Json.JNumber n) { + return fNumber.apply(n); + } + + @Override + public X onString(Json.JString s) { + return fString.apply(s); + } + + @Override + public X onArray(Json.JArray a) { + return fArray.apply(a); + } + + @Override + public X onObject(Json.JObject o) { + return fObject.apply(o); + } + }; + } +} diff --git a/ast/src/main/java/net/hamnaberg/json/Json.java b/ast/src/main/java/net/hamnaberg/json/Json.java index 71da627..617cba5 100644 --- a/ast/src/main/java/net/hamnaberg/json/Json.java +++ b/ast/src/main/java/net/hamnaberg/json/Json.java @@ -1,12 +1,9 @@ package net.hamnaberg.json; -import java.util.Map.Entry; - import java.io.Serializable; import java.math.BigDecimal; import java.util.*; -import java.util.Iterator; import java.util.function.*; import java.util.stream.Collector; import java.util.stream.Collectors; @@ -55,12 +52,12 @@ public static JArray jEmptyArray() { public static JArray jArray(Iterable iterable) { Objects.requireNonNull(iterable, "iterable was null"); - List list = StreamSupport.stream(iterable.spliterator(), false).collect(Collectors.toUnmodifiableList()); + List list = StreamSupport.stream(iterable.spliterator(), false).toList(); return new JArray(list); } public static JArray jArray(JValue first, JValue... rest) { - return new JArray(Stream.concat(Stream.of(first), Stream.of(rest)).collect(Collectors.toUnmodifiableList())); + return new JArray(Stream.concat(Stream.of(first), Stream.of(rest)).toList()); } public static JObject jEmptyObject() { @@ -68,10 +65,7 @@ public static JObject jEmptyObject() { } public static JObject jObject(String name, JValue value) { - return new JObject(Map.of( - Objects.requireNonNull(name, "Name for entry may not be null"), - Objects.requireNonNull(value, String.format("Value for named entry '%s' may not be null", name)) - )); + return new JObject(Map.of(Objects.requireNonNull(name, "Name for entry may not be null"), Objects.requireNonNull(value, String.format("Value for named entry '%s' may not be null", name)))); } public static JObject jObject(String name, String value) { @@ -103,172 +97,55 @@ public static JObject jObject(String name, boolean value) { } @SafeVarargs - public static JObject jObject(Entry first, Entry... list) { + public static JObject jObject(Map.Entry first, Map.Entry... list) { LinkedHashMap map = new LinkedHashMap<>(Map.of(first.getKey(), first.getValue())); - for (Entry kv : list) { + for (Map.Entry kv : list) { map.put(kv.getKey(), kv.getValue()); } return new JObject(map); } - public static JObject jObject(Iterable> value) { + public static JObject jObject(Iterable> value) { if (value instanceof JObject) { return (JObject) value; } return new JObject(copyOf(value)); } - public static JObject jObject( - String k1, JValue v1, - String k2, JValue v2) { - return jObject( - tuple(k1, v1), - tuple(k2, v2) - ); + public static JObject jObject(String k1, JValue v1, String k2, JValue v2) { + return jObject(tuple(k1, v1), tuple(k2, v2)); } - public static JObject jObject( - String k1, JValue v1, - String k2, JValue v2, - String k3, JValue v3) { - return jObject( - tuple(k1, v1), - tuple(k2, v2), - tuple(k3, v3) - ); + public static JObject jObject(String k1, JValue v1, String k2, JValue v2, String k3, JValue v3) { + return jObject(tuple(k1, v1), tuple(k2, v2), tuple(k3, v3)); } - public static JObject jObject( - String k1, JValue v1, - String k2, JValue v2, - String k3, JValue v3, - String k4, JValue v4) { - return jObject( - tuple(k1, v1), - tuple(k2, v2), - tuple(k3, v3), - tuple(k4, v4) - ); + public static JObject jObject(String k1, JValue v1, String k2, JValue v2, String k3, JValue v3, String k4, JValue v4) { + return jObject(tuple(k1, v1), tuple(k2, v2), tuple(k3, v3), tuple(k4, v4)); } - public static JObject jObject( - String k1, JValue v1, - String k2, JValue v2, - String k3, JValue v3, - String k4, JValue v4, - String k5, JValue v5) { - return jObject( - tuple(k1, v1), - tuple(k2, v2), - tuple(k3, v3), - tuple(k4, v4), - tuple(k5, v5) - ); + public static JObject jObject(String k1, JValue v1, String k2, JValue v2, String k3, JValue v3, String k4, JValue v4, String k5, JValue v5) { + return jObject(tuple(k1, v1), tuple(k2, v2), tuple(k3, v3), tuple(k4, v4), tuple(k5, v5)); } - public static JObject jObject( - String k1, JValue v1, - String k2, JValue v2, - String k3, JValue v3, - String k4, JValue v4, - String k5, JValue v5, - String k6, JValue v6) { - return jObject( - tuple(k1, v1), - tuple(k2, v2), - tuple(k3, v3), - tuple(k4, v4), - tuple(k5, v5), - tuple(k6, v6) - ); + public static JObject jObject(String k1, JValue v1, String k2, JValue v2, String k3, JValue v3, String k4, JValue v4, String k5, JValue v5, String k6, JValue v6) { + return jObject(tuple(k1, v1), tuple(k2, v2), tuple(k3, v3), tuple(k4, v4), tuple(k5, v5), tuple(k6, v6)); } - public static JObject jObject( - String k1, JValue v1, - String k2, JValue v2, - String k3, JValue v3, - String k4, JValue v4, - String k5, JValue v5, - String k6, JValue v6, - String k7, JValue v7) { - return jObject( - tuple(k1, v1), - tuple(k2, v2), - tuple(k3, v3), - tuple(k4, v4), - tuple(k5, v5), - tuple(k6, v6), - tuple(k7, v7) - ); + public static JObject jObject(String k1, JValue v1, String k2, JValue v2, String k3, JValue v3, String k4, JValue v4, String k5, JValue v5, String k6, JValue v6, String k7, JValue v7) { + return jObject(tuple(k1, v1), tuple(k2, v2), tuple(k3, v3), tuple(k4, v4), tuple(k5, v5), tuple(k6, v6), tuple(k7, v7)); } - public static JObject jObject( - String k1, JValue v1, - String k2, JValue v2, - String k3, JValue v3, - String k4, JValue v4, - String k5, JValue v5, - String k6, JValue v6, - String k7, JValue v7, - String k8, JValue v8) { - return jObject( - tuple(k1, v1), - tuple(k2, v2), - tuple(k3, v3), - tuple(k4, v4), - tuple(k5, v5), - tuple(k6, v6), - tuple(k7, v7), - tuple(k8, v8) - ); + public static JObject jObject(String k1, JValue v1, String k2, JValue v2, String k3, JValue v3, String k4, JValue v4, String k5, JValue v5, String k6, JValue v6, String k7, JValue v7, String k8, JValue v8) { + return jObject(tuple(k1, v1), tuple(k2, v2), tuple(k3, v3), tuple(k4, v4), tuple(k5, v5), tuple(k6, v6), tuple(k7, v7), tuple(k8, v8)); } - public static JObject jObject( - String k1, JValue v1, - String k2, JValue v2, - String k3, JValue v3, - String k4, JValue v4, - String k5, JValue v5, - String k6, JValue v6, - String k7, JValue v7, - String k8, JValue v8, - String k9, JValue v9) { - return jObject( - tuple(k1, v1), - tuple(k2, v2), - tuple(k3, v3), - tuple(k4, v4), - tuple(k5, v5), - tuple(k6, v6), - tuple(k7, v7), - tuple(k8, v8), - tuple(k9, v9) - ); + public static JObject jObject(String k1, JValue v1, String k2, JValue v2, String k3, JValue v3, String k4, JValue v4, String k5, JValue v5, String k6, JValue v6, String k7, JValue v7, String k8, JValue v8, String k9, JValue v9) { + return jObject(tuple(k1, v1), tuple(k2, v2), tuple(k3, v3), tuple(k4, v4), tuple(k5, v5), tuple(k6, v6), tuple(k7, v7), tuple(k8, v8), tuple(k9, v9)); } - public static JObject jObject( - String k1, JValue v1, - String k2, JValue v2, - String k3, JValue v3, - String k4, JValue v4, - String k5, JValue v5, - String k6, JValue v6, - String k7, JValue v7, - String k8, JValue v8, - String k9, JValue v9, - String k10, JValue v10) { - return jObject( - tuple(k1, v1), - tuple(k2, v2), - tuple(k3, v3), - tuple(k4, v4), - tuple(k5, v5), - tuple(k6, v6), - tuple(k7, v7), - tuple(k8, v8), - tuple(k9, v9), - tuple(k10, v10) - ); + public static JObject jObject(String k1, JValue v1, String k2, JValue v2, String k3, JValue v3, String k4, JValue v4, String k5, JValue v5, String k6, JValue v6, String k7, JValue v7, String k8, JValue v8, String k9, JValue v9, String k10, JValue v10) { + return jObject(tuple(k1, v1), tuple(k2, v2), tuple(k3, v3), tuple(k4, v4), tuple(k5, v5), tuple(k6, v6), tuple(k7, v7), tuple(k8, v8), tuple(k9, v9), tuple(k10, v10)); } public static JObject jObject(Map value) { @@ -276,10 +153,7 @@ public static JObject jObject(Map value) { } public static Map.Entry tuple(String name, JValue value) { - return Map.entry( - Objects.requireNonNull(name, "Name for entry may not be null"), - Objects.requireNonNull(value, String.format("Value for named entry '%s' may not be null", name)) - ); + return Map.entry(Objects.requireNonNull(name, "Name for entry may not be null"), Objects.requireNonNull(value, String.format("Value for named entry '%s' may not be null", name))); } public static Map.Entry tuple(String name, Optional opt) { @@ -338,26 +212,15 @@ public static Map.Entry nullableTuple(String name, JValue value) return tuple(name, Optional.ofNullable(value)); } - private static LinkedHashMap copyOf(Iterable> value) { + private static LinkedHashMap copyOf(Iterable> value) { LinkedHashMap map = new LinkedHashMap<>(); - for (Entry kv : value) { + for (Map.Entry kv : value) { map.put(kv.getKey(), kv.getValue()); } return map; } - private static Function> emptyOption() { - return (ignore) -> Optional.empty(); - } - - public static abstract class JValue implements Serializable { - - private JValue() { - } - - public abstract boolean equals(Object obj); - - public abstract int hashCode(); + public sealed interface JValue extends Serializable permits JScalarValue, JObject, JArray { /** * This is NOT the json representation. For that you @@ -365,93 +228,120 @@ private JValue() { * * @return as String describing the data structure. */ - public abstract String toString(); + String toString(); - public abstract X fold(Function fString, - Function fBoolean, - Function fNumber, - Function fObject, - Function fArray, - Supplier fNull); + X fold(Folder folder); - public abstract void foldUnit(Consumer fString, - Consumer fBoolean, - Consumer fNumber, - Consumer fObject, - Consumer fArray, - Runnable fNull); + void foldUnit(VoidFolder folder); - public final Optional asJsonArray() { - return fold(Json.emptyOption(), Json.emptyOption(), Json.emptyOption(), Json.emptyOption(), Optional::of, Optional::empty); + default Optional asJsonArray() { + return fold(new OptionalFolder<>() { + @Override + public Optional onArray(JArray a) { + return Optional.of(a); + } + }); } - public final JArray asJsonArrayOrEmpty() { + default JArray asJsonArrayOrEmpty() { return asJsonArray().orElse(jEmptyArray()); } - public final Optional asJsonObject() { - return fold(Json.emptyOption(), Json.emptyOption(), Json.emptyOption(), Optional::of, Json.emptyOption(), Optional::empty); + default Optional asJsonObject() { + return fold(new OptionalFolder<>() { + @Override + public Optional onObject(JObject o) { + return Optional.of(o); + } + }); } - public final JObject asJsonObjectOrEmpty() { + default JObject asJsonObjectOrEmpty() { return asJsonObject().orElse(jEmptyObject()); } - public final Optional asJsonBoolean() { - return fold(Json.emptyOption(), Optional::of, Json.emptyOption(), Json.emptyOption(), Json.emptyOption(), Optional::empty); + default Optional asJsonBoolean() { + return fold(new OptionalFolder<>() { + @Override + public Optional onBoolean(JBoolean b) { + return Optional.of(b); + } + }); } - public final Optional asBoolean() { + default Optional asBoolean() { return asJsonBoolean().map(j -> j.value); } - public final Optional asJsonNull() { - return fold(Json.emptyOption(), Json.emptyOption(), Json.emptyOption(), Json.emptyOption(), Json.emptyOption(), () -> Optional.of(jNull())); + default Optional asJsonNull() { + return fold(new OptionalFolder<>() { + @Override + public Optional onNull() { + return Optional.of(JNull.INSTANCE); + } + }); } - public final Optional asJsonString() { - return fold(Optional::of, Json.emptyOption(), Json.emptyOption(), Json.emptyOption(), Json.emptyOption(), Optional::empty); + default Optional asJsonString() { + return fold(new OptionalFolder<>() { + @Override + public Optional onString(JString s) { + return Optional.of(s); + } + }); } - public final Optional asString() { + default Optional asString() { return asJsonString().map(j -> j.value); } - public final Optional asJsonNumber() { - return fold(Json.emptyOption(), Json.emptyOption(), Optional::of, Json.emptyOption(), Json.emptyOption(), Optional::empty); + default Optional asJsonNumber() { + return fold(new OptionalFolder<>() { + @Override + public Optional onNumber(JNumber n) { + return Optional.of(n); + } + }); } - public final Optional asBigDecimal() { + default Optional asBigDecimal() { return asJsonNumber().map(j -> j.value); } - public final boolean isObject() { return asJsonObject().isPresent(); } - public final boolean isArray() { return asJsonArray().isPresent(); } - public final boolean isString() { return asJsonString().isPresent(); } - public final boolean isNull() { return asJsonNull().isPresent(); } - public final boolean isBoolean() { return asJsonBoolean().isPresent(); } - public final boolean isNumber() { return asJsonNumber().isPresent(); } + default boolean isObject() { + return asJsonObject().isPresent(); + } - public final boolean isScalar() { - return fold(j -> true, j -> true, j -> true, j -> false, j -> false, () -> true); + default boolean isArray() { + return asJsonArray().isPresent(); } - public final JValue mapJson(Function f) { - return f.apply(this); + default boolean isString() { + return asJsonString().isPresent(); + } + + default boolean isNull() { + return asJsonNull().isPresent(); } - public final Optional scalarToString() { - return fold( - j -> Optional.of(j.value), - j -> Optional.of(String.valueOf(j.value)), - j -> Optional.of(j.value.toString()), - emptyOption(), - emptyOption(), - () -> Optional.of("null") - ); + default boolean isBoolean() { + return asJsonBoolean().isPresent(); } + default boolean isNumber() { + return asJsonNumber().isPresent(); + } + + default boolean isScalar() { + return false; + } + + default JValue mapJson(Function f) { + return f.apply(this); + } + + /** * Perform a deep merge of this JSON value with another JSON value. *

@@ -463,80 +353,92 @@ public final Optional scalarToString() { * and values from the argument JSON completely replace values * from this JSON. */ - public final JValue deepmerge(JValue value) { + default JValue deepmerge(JValue value) { Optional first = asJsonObject(); Optional second = value.asJsonObject(); if (first.isPresent() && second.isPresent()) { return second.get().stream().reduce(first.get(), (obj, kv) -> { Optional v1 = obj.get(kv.getKey()); - if (v1.isPresent()) { - return obj.put(kv.getKey(), v1.get().deepmerge(kv.getValue())); - } else { - return obj.put(kv.getKey(), kv.getValue()); - } + return v1.map(jValue -> obj.put(kv.getKey(), jValue.deepmerge(kv.getValue()))).orElseGet(() -> obj.put(kv.getKey(), kv.getValue())); }, JObject::concat); } else { return value; } } - public final JValue asJValue() { + default JValue asJValue() { return this; } - public final String nospaces() { + default String nospaces() { return pretty(PrettyPrinter.nospaces()); } - public final String spaces2() { + default String spaces2() { return pretty(PrettyPrinter.spaces2()); } - public final String spaces4() { + default String spaces4() { return pretty(PrettyPrinter.spaces4()); } - public final String pretty(PrettyPrinter p) { + default String pretty(PrettyPrinter p) { return p.writeString(this); } - } - public static final class JString extends JValue { - public final String value; - - private JString(String value) { - this.value = Objects.requireNonNull(value, "String may not be null"); + /** + * Can emit directly to an Appendable without having to realize a String + * + * @param p the pretty printer + * @param appendable for instance a Writer instance + */ + default void writeTo(PrettyPrinter p, Appendable appendable) { + p.writeTo(this, appendable); } + } + public sealed interface JScalarValue extends JValue permits JNull, JBoolean, JNumber, JString { @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - JString jString = (JString) o; - return Objects.equals(value, jString.value); + default boolean isScalar() { + return true; } - @Override - public int hashCode() { - return Objects.hash(value); + default String scalarToString() { + // todo: replace with switch pattern match expression when moving to 21 + if (this instanceof JNull) { + return "null"; + } else if (this instanceof JBoolean b) { + return String.valueOf(b.value); + } else if (this instanceof JNumber n) { + return n.value.toString(); + } else if (this instanceof JString s) { + return s.value; + } else { + throw new UnsupportedOperationException("Not supported"); + //not needed in 21, since we have exhaustiveness checking + } + } + } + + public record JString(String value) implements JScalarValue { + public JString(String value) { + this.value = Objects.requireNonNull(value, "String may not be null"); } @Override public String toString() { - return "JString{" + - "value='" + value + '\'' + - '}'; + return "JString{value=\"" + value + "\"}"; } @Override - public X fold(Function fString, Function fBoolean, Function fNumber, Function fObject, Function fArray, Supplier fNull) { - return fString.apply(this); + public X fold(Folder f) { + return f.onString(this); } @Override - public void foldUnit(Consumer fString, Consumer fBoolean, Consumer fNumber, Consumer fObject, Consumer fArray, Runnable fNull) { - fString.accept(this); + public void foldUnit(VoidFolder f) { + f.onString(this); } public String getValue() { @@ -544,41 +446,20 @@ public String getValue() { } } - public static final class JBoolean extends JValue { - public final boolean value; - - private JBoolean(boolean value) { - this.value = value; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - JBoolean jBoolean = (JBoolean) o; - return value == jBoolean.value; - } - - @Override - public int hashCode() { - return Objects.hash(value); - } - + public record JBoolean(boolean value) implements JScalarValue { @Override public String toString() { - return "JBoolean{" + - "value=" + value + - '}'; + return "JBoolean{value=" + value + "}"; } @Override - public X fold(Function fString, Function fBoolean, Function fNumber, Function fObject, Function fArray, Supplier fNull) { - return fBoolean.apply(this); + public X fold(Folder f) { + return f.onBoolean(this); } @Override - public void foldUnit(Consumer fString, Consumer fBoolean, Consumer fNumber, Consumer fObject, Consumer fArray, Runnable fNull) { - fBoolean.accept(this); + public void foldUnit(VoidFolder f) { + f.onBoolean(this); } public boolean isValue() { @@ -586,22 +467,8 @@ public boolean isValue() { } } - public static final class JNull extends JValue { - public static final JNull INSTANCE = new JNull(); - - private JNull() { - } - - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - return true; - } - - @Override - public int hashCode() { - return 31; - } + public enum JNull implements JScalarValue { + INSTANCE; @Override public String toString() { @@ -609,52 +476,35 @@ public String toString() { } @Override - public X fold(Function fString, Function fBoolean, Function fNumber, Function fObject, Function fArray, Supplier fNull) { - return fNull.get(); + public X fold(Folder f) { + return f.onNull(); } @Override - public void foldUnit(Consumer fString, Consumer fBoolean, Consumer fNumber, Consumer fObject, Consumer fArray, Runnable fNull) { - fNull.run(); + public void foldUnit(VoidFolder f) { + f.onNull(); } } - public static final class JNumber extends JValue { - public final BigDecimal value; + public record JNumber(BigDecimal value) implements JScalarValue { - private JNumber(BigDecimal value) { + public JNumber(BigDecimal value) { this.value = Objects.requireNonNull(value, "Number may not be null"); } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - JNumber jNumber = (JNumber) o; - return Objects.equals(value, jNumber.value); - } - - @Override - public int hashCode() { - return Objects.hash(value); - } - @Override public String toString() { - return "JNumber{" + - "value=" + value + - '}'; + return "JNumber{value=" + value + "}"; } @Override - public X fold(Function fString, Function fBoolean, Function fNumber, Function fObject, Function fArray, Supplier fNull) { - return fNumber.apply(this); + public X fold(Folder f) { + return f.onNumber(this); } @Override - public void foldUnit(Consumer fString, Consumer fBoolean, Consumer fNumber, Consumer fObject, Consumer fArray, Runnable fNull) { - fNumber.accept(this); + public void foldUnit(VoidFolder f) { + f.onNumber(this); } public long asLong() { @@ -674,41 +524,25 @@ public BigDecimal getValue() { } } - public static final class JArray extends JValue implements Iterable { - public final List value; + public record JArray(List value) implements JValue, Iterable { - private JArray(List value) { + public JArray(List value) { this.value = Objects.requireNonNull(value, "You may not supply a null List in JArray"); } - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - JArray jValues = (JArray) o; - return Objects.equals(value, jValues.value); - } - - @Override - public int hashCode() { - return Objects.hash(value); - } - @Override public String toString() { - return "JArray{" + - "value=" + value + - '}'; + return "JArray{value=" + value + "}"; } @Override - public X fold(Function fString, Function fBoolean, Function fNumber, Function fObject, Function fArray, Supplier fNull) { - return fArray.apply(this); + public X fold(Folder f) { + return f.onArray(this); } @Override - public void foldUnit(Consumer fString, Consumer fBoolean, Consumer fNumber, Consumer fObject, Consumer fArray, Runnable fNull) { - fArray.accept(this); + public void foldUnit(VoidFolder f) { + f.onArray(this); } public List getValue() { @@ -745,11 +579,11 @@ public List getListAsBigDecimals() { } public List mapOpt(Function> f) { - return this.value.stream().flatMap(f.andThen(Optional::stream)).collect(Collectors.toUnmodifiableList()); + return this.value.stream().flatMap(f.andThen(Optional::stream)).toList(); } public List mapToList(Function f) { - return value.stream().map(f).collect(Collectors.toUnmodifiableList()); + return value.stream().map(f).toList(); } public JArray map(Function f) { @@ -762,7 +596,7 @@ public JArray flatMap(Function f) { } public List flatMapToList(Function> f) { - return value.stream().flatMap(f.andThen(List::stream)).collect(Collectors.toUnmodifiableList()); + return value.stream().flatMap(f.andThen(List::stream)).toList(); } public int size() { @@ -770,7 +604,7 @@ public int size() { } public JArray append(JValue toAdd) { - List list = Stream.concat(value.stream(), Stream.of(toAdd)).collect(Collectors.toUnmodifiableList()); + List list = Stream.concat(value.stream(), Stream.of(toAdd)).toList(); return new JArray(list); } @@ -804,7 +638,7 @@ public JArray append(boolean toAdd) { public JArray prepend(JValue toAdd) { - List list = Stream.concat(Stream.of(toAdd), value.stream()).collect(Collectors.toUnmodifiableList()); + List list = Stream.concat(Stream.of(toAdd), value.stream()).toList(); return new JArray(list); } @@ -870,15 +704,14 @@ public JArray remove(int index) { } public JArray concat(JArray other) { - return new JArray(Stream.concat(this.value.stream(), other.stream()).collect(Collectors.toUnmodifiableList())); + return new JArray(Stream.concat(this.value.stream(), other.stream()).toList()); } } - public static final class JObject extends JValue implements Iterable> { - public static final Collector, ?, Map> MapCollector = Collectors.toUnmodifiableMap(Entry::getKey, Entry::getValue); - public final Map value; + public record JObject(Map value) implements JValue, Iterable> { + public static final Collector, ?, Map> MapCollector = Collectors.toUnmodifiableMap(Map.Entry::getKey, Map.Entry::getValue); - private JObject(Map value) { + public JObject(Map value) { this.value = Objects.requireNonNull(value, "You may not supply a null Map to JObject"); } @@ -897,19 +730,17 @@ public int hashCode() { @Override public String toString() { - return "JObject{" + - "value=" + value + - '}'; + return "JObject{value=" + value + "}"; } @Override - public X fold(Function fString, Function fBoolean, Function fNumber, Function fObject, Function fArray, Supplier fNull) { - return fObject.apply(this); + public X fold(Folder f) { + return f.onObject(this); } @Override - public void foldUnit(Consumer fString, Consumer fBoolean, Consumer fNumber, Consumer fObject, Consumer fArray, Runnable fNull) { - fObject.accept(this); + public void foldUnit(VoidFolder f) { + f.onObject(this); } public Map getValue() { @@ -1007,13 +838,11 @@ public void forEach(BiConsumer f) { } public List mapToList(BiFunction f) { - return value.entrySet().stream().map( - e -> f.apply(e.getKey(), e.getValue()) - ).collect(Collectors.toUnmodifiableList()); + return value.entrySet().stream().map(e -> f.apply(e.getKey(), e.getValue())).toList(); } public List mapValues(Function f) { - return values().stream().map(f).collect(Collectors.toUnmodifiableList()); + return values().stream().map(f).toList(); } public JValue getOrDefault(String key, JValue defaultValue) { diff --git a/ast/src/main/java/net/hamnaberg/json/OptionalFolder.java b/ast/src/main/java/net/hamnaberg/json/OptionalFolder.java new file mode 100644 index 0000000..c5754e3 --- /dev/null +++ b/ast/src/main/java/net/hamnaberg/json/OptionalFolder.java @@ -0,0 +1,35 @@ +package net.hamnaberg.json; + +import java.util.Optional; + +public class OptionalFolder implements Folder> { + @Override + public Optional onNull() { + return Optional.empty(); + } + + @Override + public Optional onBoolean(Json.JBoolean b) { + return Optional.empty(); + } + + @Override + public Optional onNumber(Json.JNumber n) { + return Optional.empty(); + } + + @Override + public Optional onString(Json.JString s) { + return Optional.empty(); + } + + @Override + public Optional onArray(Json.JArray a) { + return Optional.empty(); + } + + @Override + public Optional onObject(Json.JObject o) { + return Optional.empty(); + } +} diff --git a/ast/src/main/java/net/hamnaberg/json/PrettyPrinter.java b/ast/src/main/java/net/hamnaberg/json/PrettyPrinter.java index a9e0e9b..2bd6709 100644 --- a/ast/src/main/java/net/hamnaberg/json/PrettyPrinter.java +++ b/ast/src/main/java/net/hamnaberg/json/PrettyPrinter.java @@ -1,20 +1,20 @@ package net.hamnaberg.json; +import java.io.IOException; +import java.nio.CharBuffer; import java.util.Map; public final class PrettyPrinter { private final static int INDENT_LEVELS = 16; private final int charsPerLevel; - private final boolean spaceafterColon; - private final char[] indents; + private final boolean spaceAfterColon; private final boolean dropNullKeys; public PrettyPrinter(int charsPerLevel, boolean spaceAfterColon, boolean dropNullKeys) { - this.spaceafterColon = spaceAfterColon; + this.spaceAfterColon = spaceAfterColon; this.charsPerLevel = charsPerLevel; - this.indents = newIndent(charsPerLevel); this.dropNullKeys = dropNullKeys; } @@ -35,204 +35,244 @@ public static PrettyPrinter spaces4() { } public PrettyPrinter dropNullKeys(boolean choice) { - return new PrettyPrinter(charsPerLevel, spaceafterColon, choice); + return new PrettyPrinter(charsPerLevel, spaceAfterColon, choice); } - private static char[] newIndent(int level) { + public String writeString(Json.JValue value) { StringBuilder sb = new StringBuilder(); - for (int i = 0; i <= level; i++) { - sb.append(" "); - } - String indent = sb.toString(); - - char[] indents = new char[indent.length() * INDENT_LEVELS]; - int offset = 0; - for (int i = 0; i < INDENT_LEVELS; i++) { - indent.getChars(0, indent.length(), indents, offset); - offset += indent.length(); - } - return indents; - } - - private void writeStartObject(PrinterState state) { - state.append("{"); - state.levelUp(); + writeTo(value, sb); + return sb.toString(); } - public String writeString(Json.JValue value) { - PrinterState state = new PrinterState(); + public void writeTo(Json.JValue value, Appendable appendable) { + PrinterState state = new PrinterState(appendable); writeValue(value, state); - return state.toString(); } private void writeValue(Json.JValue value, PrinterState state) { - value.foldUnit( - js -> state.append(escape(js.value)), - jb -> state.append(jb.value), - jn -> state.append(jn.value.toString()), - obj -> writeObject(obj, state), - arr -> writeArray(arr, state), - () -> state.append("null") - ); + value.foldUnit(new PrinterStateFolder(state, charsPerLevel)); } - private void writeObject(Json.JObject obj, PrinterState state) { - writeStartObject(state); + public static class JsonWriteException extends RuntimeException { + public JsonWriteException(String message, Throwable cause) { + super(message, cause); + } + } - int index = 0; - Map map = obj.value; - for (Map.Entry entry : map.entrySet()) { - if (entry.getValue().isNull() && dropNullKeys) { - continue; - } + private class PrinterState { + private final Appendable appendable; + private int level = 0; - if (index > 0) { - state.append(","); - } - doIndent(state); - writeProperty(entry.getKey(), entry.getValue(), state); - index++; + + private PrinterState(Appendable appendable) { + this.appendable = appendable; } - writeEndObject(state); - } - private void writeProperty(String name, Json.JValue value, PrinterState state) { - state.append(escape(name)).append(":"); - if (spaceafterColon) { - state.append(" "); + void levelUp() { + level++; } - writeValue(value, state); - } - private void writeEndObject(PrinterState state) { - state.levelDown(); - doIndent(state); - state.append("}"); - } + void levelDown() { + level--; + } - private void writeStartArray(PrinterState state) { - state.append("["); - state.levelUp(); - } + int getLevel() { + return level; + } - private void writeArray(Json.JArray arr, PrinterState state) { - writeStartArray(state); + PrinterState append(String s) { + try { + appendable.append(s); + } catch (IOException e) { + throw new JsonWriteException("Unable to append to writer", e); + } + return this; + } - int length = arr.size(); - for (int i = 0; i < length; i++) { - Json.JValue v = arr.getValue().get(i); - if (i > 0) { - state.append(","); + void append(char[] chars, int i, int length) { + try { + appendable.append(CharBuffer.wrap(chars), i, length); + } catch (IOException e) { + throw new JsonWriteException("Unable to append to writer", e); } - doIndent(state); - writeValue(v, state); } - writeEndArray(state); + void append(boolean s) { + append(String.valueOf(s)); + } } - private void writeEndArray(PrinterState state) { - state.levelDown(); - doIndent(state); - state.append("]"); - } + private class PrinterStateFolder implements VoidFolder { + private final PrinterState state; + private final char[] indents; - private String escape(String js) { - StringBuilder sb = new StringBuilder(); - sb.append('\"'); - - for (int i = 0; i < js.length(); ++i) { - char c = js.charAt(i); - if (c >= 32 && c <= 1114111 && c != 34 && c != 92) { - sb.append(c); - } else { - switch (c) { - case '\b': - sb.append('\\'); - sb.append('b'); - break; - case '\t': - sb.append('\\'); - sb.append('t'); - break; - case '\n': - sb.append('\\'); - sb.append('n'); - break; - case '\f': - sb.append('\\'); - sb.append('f'); - break; - case '\r': - sb.append('\\'); - sb.append('r'); - break; - case '\"': - case '\\': - sb.append('\\'); - sb.append(c); - break; - default: - String hex = "000" + Integer.toHexString(c); - sb.append("\\u").append(hex.substring(hex.length() - 4)); - } + private static char[] newIndent(int level) { + String indent = " ".repeat(Math.max(0, level + 1)); + + char[] indents = new char[indent.length() * INDENT_LEVELS]; + int offset = 0; + for (int i = 0; i < INDENT_LEVELS; i++) { + indent.getChars(0, indent.length(), indents, offset); + offset += indent.length(); } + return indents; } - sb.append('\"'); - return sb.toString(); - } + public PrinterStateFolder(PrinterState state, int charsPerLevel) { + this.state = state; + this.indents = newIndent(charsPerLevel); + } - private void doIndent(PrinterState state) { - if (charsPerLevel > 0) { - state.append("\n"); + @Override + public void onNull() { + state.append("null"); } - int level = state.getLevel(); - if (level > 0) { - level *= charsPerLevel; - while (level > indents.length) { - state.append(indents, 0, indents.length); - level -= indents.length; + + @Override + public void onBoolean(Json.JBoolean b) { + state.append(b.value()); + } + + @Override + public void onNumber(Json.JNumber n) { + state.append(n.value().toString()); + } + + @Override + public void onString(Json.JString s) { + state.append(escape(s.value())); + } + + @Override + public void onArray(Json.JArray a) { + writeStartArray(state); + + int length = a.size(); + for (int i = 0; i < length; i++) { + Json.JValue v = a.getValue().get(i); + if (i > 0) { + state.append(","); + } + doIndent(state); + writeValue(v, state); } - state.append(indents, 0, level); + + writeEndArray(state); } - } - private class PrinterState { - private int level = 0; - private final StringBuilder sb = new StringBuilder(); + @Override + public void onObject(Json.JObject o) { + writeStartObject(state); + + int index = 0; + Map map = o.value(); + for (Map.Entry entry : map.entrySet()) { + if (entry.getValue().isNull() && dropNullKeys) { + continue; + } - PrinterState append(String s) { - sb.append(s); - return this; + if (index > 0) { + state.append(","); + } + doIndent(state); + writeProperty(entry.getKey(), entry.getValue(), state); + index++; + } + + writeEndObject(state); } - PrinterState append(char[] chars, int i, int length) { - sb.append(chars, i, length); - return this; + private void writeProperty(String name, Json.JValue value, PrinterState state) { + state.append(escape(name)).append(":"); + if (spaceAfterColon) { + state.append(" "); + } + writeValue(value, state); } - PrinterState append(boolean s) { - sb.append(s); - return this; + private void writeStartObject(PrinterState state) { + state.append("{"); + state.levelUp(); } - void levelUp() { - level++; + + private void writeEndObject(PrinterState state) { + state.levelDown(); + doIndent(state); + state.append("}"); } - void levelDown() { - level--; + private void writeStartArray(PrinterState state) { + state.append("["); + state.levelUp(); } - int getLevel() { - return level; + private void writeEndArray(PrinterState state) { + state.levelDown(); + doIndent(state); + state.append("]"); } - @Override - public String toString() { + private String escape(String js) { + StringBuilder sb = new StringBuilder(); + sb.append('\"'); + + for (int i = 0; i < js.length(); ++i) { + char c = js.charAt(i); + if (c >= 32 && c <= 1114111 && c != 34 && c != 92) { + sb.append(c); + } else { + switch (c) { + case '\b': + sb.append('\\'); + sb.append('b'); + break; + case '\t': + sb.append('\\'); + sb.append('t'); + break; + case '\n': + sb.append('\\'); + sb.append('n'); + break; + case '\f': + sb.append('\\'); + sb.append('f'); + break; + case '\r': + sb.append('\\'); + sb.append('r'); + break; + case '\"': + case '\\': + sb.append('\\'); + sb.append(c); + break; + default: + String hex = "000" + Integer.toHexString(c); + sb.append("\\u").append(hex.substring(hex.length() - 4)); + } + } + } + + sb.append('\"'); return sb.toString(); } + + private void doIndent(PrinterState state) { + if (charsPerLevel > 0) { + state.append("\n"); + } + int level = state.getLevel(); + if (level > 0) { + level *= charsPerLevel; + while (level > indents.length) { + state.append(indents, 0, indents.length); + level -= indents.length; + } + state.append(indents, 0, level); + } + } } } diff --git a/ast/src/main/java/net/hamnaberg/json/VoidFolder.java b/ast/src/main/java/net/hamnaberg/json/VoidFolder.java new file mode 100644 index 0000000..7561ab6 --- /dev/null +++ b/ast/src/main/java/net/hamnaberg/json/VoidFolder.java @@ -0,0 +1,57 @@ +package net.hamnaberg.json; + +import java.util.function.Consumer; + +public interface VoidFolder { + default void onNull() { + } + + default void onBoolean(Json.JBoolean b) { + } + + default void onNumber(Json.JNumber n) { + } + + default void onString(Json.JString s) { + } + + default void onArray(Json.JArray a) { + } + + default void onObject(Json.JObject o) { + } + + static VoidFolder from(Consumer fString, Consumer fBoolean, Consumer fNumber, Consumer fObject, Consumer fArray, Runnable fNull) { + return new VoidFolder() { + @Override + public void onNull() { + fNull.run(); + } + + @Override + public void onBoolean(Json.JBoolean b) { + fBoolean.accept(b); + } + + @Override + public void onNumber(Json.JNumber n) { + fNumber.accept(n); + } + + @Override + public void onString(Json.JString s) { + fString.accept(s); + } + + @Override + public void onArray(Json.JArray a) { + fArray.accept(a); + } + + @Override + public void onObject(Json.JObject o) { + fObject.accept(o); + } + }; + } +} diff --git a/ast/src/test/java/net/hamnaberg/json/JValueTest.java b/ast/src/test/java/net/hamnaberg/json/JValueTest.java index 598a1c7..d554555 100644 --- a/ast/src/test/java/net/hamnaberg/json/JValueTest.java +++ b/ast/src/test/java/net/hamnaberg/json/JValueTest.java @@ -17,7 +17,7 @@ public void jNumber() { assertEquals(expected, Json.jNumber(20.0)); assertTrue(expected.isNumber()); assertTrue(expected.isScalar()); - assertEquals("20", expected.scalarToString().orElse("")); + assertEquals("20", expected.scalarToString()); } @Test @@ -25,7 +25,7 @@ public void JString() { Json.JString string = Json.jString("Hello"); assertTrue(string.isString()); assertTrue(string.isScalar()); - assertEquals("Hello", string.scalarToString().orElse("")); + assertEquals("Hello", string.scalarToString()); } @Test @@ -34,18 +34,18 @@ public void JNull() { assertTrue(nullable.isNull()); assertTrue(nullable.isScalar()); assertFalse(nullable.isString()); - assertEquals("null", nullable.scalarToString().orElse("")); + assertEquals("null", nullable.scalarToString()); } @Test public void JBoolean() { - Json.JBoolean tru = Json.jBoolean(true); - Json.JBoolean fals = Json.jBoolean(false); - assertTrue(tru.value); - assertFalse(fals.value); - assertNotEquals(tru, fals); - assertEquals("true", tru.scalarToString().orElse("")); - assertEquals("false", fals.scalarToString().orElse("")); + Json.JBoolean truthy = Json.jBoolean(true); + Json.JBoolean falsy = Json.jBoolean(false); + assertTrue(truthy.value()); + assertFalse(falsy.value()); + assertNotEquals(truthy, falsy); + assertEquals("true", truthy.scalarToString()); + assertEquals("false", falsy.scalarToString()); } @Test diff --git a/ast/src/test/java/net/hamnaberg/json/JsonTest.java b/ast/src/test/java/net/hamnaberg/json/JsonTest.java index e088bc0..21d1672 100644 --- a/ast/src/test/java/net/hamnaberg/json/JsonTest.java +++ b/ast/src/test/java/net/hamnaberg/json/JsonTest.java @@ -16,7 +16,7 @@ public void jString() { Json.JString hello = Json.jString("hello"); assertEquals("hello", hello.getValue()); assertEquals(hello, Json.jString("hello")); - assertNotEquals(hello.toString(), Json.jString("hello").value); + assertNotEquals(hello.toString(), Json.jString("hello").value()); } @Test @@ -37,9 +37,9 @@ public void jBoolean() { Json.JBoolean no = Json.jBoolean(false); assertEquals(yes, Json.jBoolean(true)); assertEquals(no, Json.jBoolean(false)); - assertNotEquals(yes.value, no.value); - assertEquals(yes.value, true); - assertEquals(no.value, false); + assertNotEquals(yes.value(), no.value()); + assertTrue(yes.value()); + assertFalse(no.value()); } @Test diff --git a/codec/pom.xml b/codec/pom.xml index 67ba840..476869b 100644 --- a/codec/pom.xml +++ b/codec/pom.xml @@ -37,7 +37,7 @@ net.hamnaberg arities - 0.5.0 + 0.6.0-RC1 diff --git a/codec/src/main/java/net/hamnaberg/json/codec/Encoders.java b/codec/src/main/java/net/hamnaberg/json/codec/Encoders.java index 079ef84..ba54390 100644 --- a/codec/src/main/java/net/hamnaberg/json/codec/Encoders.java +++ b/codec/src/main/java/net/hamnaberg/json/codec/Encoders.java @@ -58,8 +58,8 @@ public static EncodeJson objectEncoder(Function encoder) public static EncodeJson> encode(FieldEncoder e1, FieldEncoder e2) { return tuple -> Json.jObject( - Json.tuple(e1.name, e1.toJson(tuple._1)), - Json.tuple(e2.name, e2.toJson(tuple._2)) + Json.tuple(e1.name, e1.toJson(tuple._1())), + Json.tuple(e2.name, e2.toJson(tuple._2())) ); } @@ -69,9 +69,9 @@ public static EncodeJson encode(FieldEncoder e1, FieldEncod public static EncodeJson> encode(FieldEncoder e1, FieldEncoder e2, FieldEncoder e3) { return tuple -> Json.jObject( - Json.tuple(e1.name, e1.toJson(tuple._1)), - Json.tuple(e2.name, e2.toJson(tuple._2)), - Json.tuple(e3.name, e3.toJson(tuple._3)) + Json.tuple(e1.name, e1.toJson(tuple._1())), + Json.tuple(e2.name, e2.toJson(tuple._2())), + Json.tuple(e3.name, e3.toJson(tuple._3())) ); } @@ -81,10 +81,10 @@ public static EncodeJson encode(FieldEncoder e1, FieldE public static EncodeJson> encode(FieldEncoder e1, FieldEncoder e2, FieldEncoder e3, FieldEncoder e4) { return tuple -> Json.jObject( - Json.tuple(e1.name, e1.toJson(tuple._1)), - Json.tuple(e2.name, e2.toJson(tuple._2)), - Json.tuple(e3.name, e3.toJson(tuple._3)), - Json.tuple(e4.name, e4.toJson(tuple._4)) + Json.tuple(e1.name, e1.toJson(tuple._1())), + Json.tuple(e2.name, e2.toJson(tuple._2())), + Json.tuple(e3.name, e3.toJson(tuple._3())), + Json.tuple(e4.name, e4.toJson(tuple._4())) ); } @@ -94,11 +94,11 @@ public static EncodeJson encode(FieldEncoder e1, Fi public static EncodeJson> encode(FieldEncoder e1, FieldEncoder e2, FieldEncoder e3, FieldEncoder e4, FieldEncoder e5) { return tuple -> Json.jObject( - Json.tuple(e1.name, e1.toJson(tuple._1)), - Json.tuple(e2.name, e2.toJson(tuple._2)), - Json.tuple(e3.name, e3.toJson(tuple._3)), - Json.tuple(e4.name, e4.toJson(tuple._4)), - Json.tuple(e5.name, e5.toJson(tuple._5)) + Json.tuple(e1.name, e1.toJson(tuple._1())), + Json.tuple(e2.name, e2.toJson(tuple._2())), + Json.tuple(e3.name, e3.toJson(tuple._3())), + Json.tuple(e4.name, e4.toJson(tuple._4())), + Json.tuple(e5.name, e5.toJson(tuple._5())) ); } @@ -108,12 +108,12 @@ public static EncodeJson encode(FieldEncoder e1 public static EncodeJson> encode(FieldEncoder e1, FieldEncoder e2, FieldEncoder e3, FieldEncoder e4, FieldEncoder e5, FieldEncoder e6) { return tuple -> Json.jObject( - Json.tuple(e1.name, e1.toJson(tuple._1)), - Json.tuple(e2.name, e2.toJson(tuple._2)), - Json.tuple(e3.name, e3.toJson(tuple._3)), - Json.tuple(e4.name, e4.toJson(tuple._4)), - Json.tuple(e5.name, e5.toJson(tuple._5)), - Json.tuple(e6.name, e6.toJson(tuple._6)) + Json.tuple(e1.name, e1.toJson(tuple._1())), + Json.tuple(e2.name, e2.toJson(tuple._2())), + Json.tuple(e3.name, e3.toJson(tuple._3())), + Json.tuple(e4.name, e4.toJson(tuple._4())), + Json.tuple(e5.name, e5.toJson(tuple._5())), + Json.tuple(e6.name, e6.toJson(tuple._6())) ); } @@ -123,13 +123,13 @@ public static EncodeJson encode(FieldEncoder EncodeJson> encode(FieldEncoder e1, FieldEncoder e2, FieldEncoder e3, FieldEncoder e4, FieldEncoder e5, FieldEncoder e6, FieldEncoder e7) { return tuple -> Json.jObject( - Json.tuple(e1.name, e1.toJson(tuple._1)), - Json.tuple(e2.name, e2.toJson(tuple._2)), - Json.tuple(e3.name, e3.toJson(tuple._3)), - Json.tuple(e4.name, e4.toJson(tuple._4)), - Json.tuple(e5.name, e5.toJson(tuple._5)), - Json.tuple(e6.name, e6.toJson(tuple._6)), - Json.tuple(e7.name, e7.toJson(tuple._7)) + Json.tuple(e1.name, e1.toJson(tuple._1())), + Json.tuple(e2.name, e2.toJson(tuple._2())), + Json.tuple(e3.name, e3.toJson(tuple._3())), + Json.tuple(e4.name, e4.toJson(tuple._4())), + Json.tuple(e5.name, e5.toJson(tuple._5())), + Json.tuple(e6.name, e6.toJson(tuple._6())), + Json.tuple(e7.name, e7.toJson(tuple._7())) ); } @@ -139,14 +139,14 @@ public static EncodeJson encode(FieldEncode public static EncodeJson> encode(FieldEncoder e1, FieldEncoder e2, FieldEncoder e3, FieldEncoder e4, FieldEncoder e5, FieldEncoder e6, FieldEncoder e7, FieldEncoder e8) { return tuple -> Json.jObject( - Json.tuple(e1.name, e1.toJson(tuple._1)), - Json.tuple(e2.name, e2.toJson(tuple._2)), - Json.tuple(e3.name, e3.toJson(tuple._3)), - Json.tuple(e4.name, e4.toJson(tuple._4)), - Json.tuple(e5.name, e5.toJson(tuple._5)), - Json.tuple(e6.name, e6.toJson(tuple._6)), - Json.tuple(e7.name, e7.toJson(tuple._7)), - Json.tuple(e8.name, e8.toJson(tuple._8)) + Json.tuple(e1.name, e1.toJson(tuple._1())), + Json.tuple(e2.name, e2.toJson(tuple._2())), + Json.tuple(e3.name, e3.toJson(tuple._3())), + Json.tuple(e4.name, e4.toJson(tuple._4())), + Json.tuple(e5.name, e5.toJson(tuple._5())), + Json.tuple(e6.name, e6.toJson(tuple._6())), + Json.tuple(e7.name, e7.toJson(tuple._7())), + Json.tuple(e8.name, e8.toJson(tuple._8())) ); } @@ -156,15 +156,15 @@ public static EncodeJson encode(FieldEn public static EncodeJson> encode(FieldEncoder e1, FieldEncoder e2, FieldEncoder e3, FieldEncoder e4, FieldEncoder e5, FieldEncoder e6, FieldEncoder e7, FieldEncoder e8, FieldEncoder e9) { return tuple -> Json.jObject( - Json.tuple(e1.name, e1.toJson(tuple._1)), - Json.tuple(e2.name, e2.toJson(tuple._2)), - Json.tuple(e3.name, e3.toJson(tuple._3)), - Json.tuple(e4.name, e4.toJson(tuple._4)), - Json.tuple(e5.name, e5.toJson(tuple._5)), - Json.tuple(e6.name, e6.toJson(tuple._6)), - Json.tuple(e7.name, e7.toJson(tuple._7)), - Json.tuple(e8.name, e8.toJson(tuple._8)), - Json.tuple(e9.name, e9.toJson(tuple._9)) + Json.tuple(e1.name, e1.toJson(tuple._1())), + Json.tuple(e2.name, e2.toJson(tuple._2())), + Json.tuple(e3.name, e3.toJson(tuple._3())), + Json.tuple(e4.name, e4.toJson(tuple._4())), + Json.tuple(e5.name, e5.toJson(tuple._5())), + Json.tuple(e6.name, e6.toJson(tuple._6())), + Json.tuple(e7.name, e7.toJson(tuple._7())), + Json.tuple(e8.name, e8.toJson(tuple._8())), + Json.tuple(e9.name, e9.toJson(tuple._9())) ); } @@ -174,16 +174,16 @@ public static EncodeJson encode(Fie public static EncodeJson> encode(FieldEncoder e1, FieldEncoder e2, FieldEncoder e3, FieldEncoder e4, FieldEncoder e5, FieldEncoder e6, FieldEncoder e7, FieldEncoder e8, FieldEncoder e9, FieldEncoder e10) { return tuple -> Json.jObject( - Json.tuple(e1.name, e1.toJson(tuple._1)), - Json.tuple(e2.name, e2.toJson(tuple._2)), - Json.tuple(e3.name, e3.toJson(tuple._3)), - Json.tuple(e4.name, e4.toJson(tuple._4)), - Json.tuple(e5.name, e5.toJson(tuple._5)), - Json.tuple(e6.name, e6.toJson(tuple._6)), - Json.tuple(e7.name, e7.toJson(tuple._7)), - Json.tuple(e8.name, e8.toJson(tuple._8)), - Json.tuple(e9.name, e9.toJson(tuple._9)), - Json.tuple(e10.name, e10.toJson(tuple._10)) + Json.tuple(e1.name, e1.toJson(tuple._1())), + Json.tuple(e2.name, e2.toJson(tuple._2())), + Json.tuple(e3.name, e3.toJson(tuple._3())), + Json.tuple(e4.name, e4.toJson(tuple._4())), + Json.tuple(e5.name, e5.toJson(tuple._5())), + Json.tuple(e6.name, e6.toJson(tuple._6())), + Json.tuple(e7.name, e7.toJson(tuple._7())), + Json.tuple(e8.name, e8.toJson(tuple._8())), + Json.tuple(e9.name, e9.toJson(tuple._9())), + Json.tuple(e10.name, e10.toJson(tuple._10())) ); } @@ -193,17 +193,17 @@ public static EncodeJson encod public static EncodeJson> encode(FieldEncoder e1, FieldEncoder e2, FieldEncoder e3, FieldEncoder e4, FieldEncoder e5, FieldEncoder e6, FieldEncoder e7, FieldEncoder e8, FieldEncoder e9, FieldEncoder e10, FieldEncoder e11) { return tuple -> Json.jObject( - Json.tuple(e1.name, e1.toJson(tuple._1)), - Json.tuple(e2.name, e2.toJson(tuple._2)), - Json.tuple(e3.name, e3.toJson(tuple._3)), - Json.tuple(e4.name, e4.toJson(tuple._4)), - Json.tuple(e5.name, e5.toJson(tuple._5)), - Json.tuple(e6.name, e6.toJson(tuple._6)), - Json.tuple(e7.name, e7.toJson(tuple._7)), - Json.tuple(e8.name, e8.toJson(tuple._8)), - Json.tuple(e9.name, e9.toJson(tuple._9)), - Json.tuple(e10.name, e10.toJson(tuple._10)), - Json.tuple(e11.name, e11.toJson(tuple._11)) + Json.tuple(e1.name, e1.toJson(tuple._1())), + Json.tuple(e2.name, e2.toJson(tuple._2())), + Json.tuple(e3.name, e3.toJson(tuple._3())), + Json.tuple(e4.name, e4.toJson(tuple._4())), + Json.tuple(e5.name, e5.toJson(tuple._5())), + Json.tuple(e6.name, e6.toJson(tuple._6())), + Json.tuple(e7.name, e7.toJson(tuple._7())), + Json.tuple(e8.name, e8.toJson(tuple._8())), + Json.tuple(e9.name, e9.toJson(tuple._9())), + Json.tuple(e10.name, e10.toJson(tuple._10())), + Json.tuple(e11.name, e11.toJson(tuple._11())) ); } @@ -213,18 +213,18 @@ public static EncodeJson public static EncodeJson> encode(FieldEncoder e1, FieldEncoder e2, FieldEncoder e3, FieldEncoder e4, FieldEncoder e5, FieldEncoder e6, FieldEncoder e7, FieldEncoder e8, FieldEncoder e9, FieldEncoder e10, FieldEncoder e11, FieldEncoder e12) { return tuple -> Json.jObject( - Json.tuple(e1.name, e1.toJson(tuple._1)), - Json.tuple(e2.name, e2.toJson(tuple._2)), - Json.tuple(e3.name, e3.toJson(tuple._3)), - Json.tuple(e4.name, e4.toJson(tuple._4)), - Json.tuple(e5.name, e5.toJson(tuple._5)), - Json.tuple(e6.name, e6.toJson(tuple._6)), - Json.tuple(e7.name, e7.toJson(tuple._7)), - Json.tuple(e8.name, e8.toJson(tuple._8)), - Json.tuple(e9.name, e9.toJson(tuple._9)), - Json.tuple(e10.name, e10.toJson(tuple._10)), - Json.tuple(e11.name, e11.toJson(tuple._11)), - Json.tuple(e12.name, e12.toJson(tuple._12)) + Json.tuple(e1.name, e1.toJson(tuple._1())), + Json.tuple(e2.name, e2.toJson(tuple._2())), + Json.tuple(e3.name, e3.toJson(tuple._3())), + Json.tuple(e4.name, e4.toJson(tuple._4())), + Json.tuple(e5.name, e5.toJson(tuple._5())), + Json.tuple(e6.name, e6.toJson(tuple._6())), + Json.tuple(e7.name, e7.toJson(tuple._7())), + Json.tuple(e8.name, e8.toJson(tuple._8())), + Json.tuple(e9.name, e9.toJson(tuple._9())), + Json.tuple(e10.name, e10.toJson(tuple._10())), + Json.tuple(e11.name, e11.toJson(tuple._11())), + Json.tuple(e12.name, e12.toJson(tuple._12())) ); } @@ -234,19 +234,19 @@ public static EncodeJson public static EncodeJson> encode(FieldEncoder e1, FieldEncoder e2, FieldEncoder e3, FieldEncoder e4, FieldEncoder e5, FieldEncoder e6, FieldEncoder e7, FieldEncoder e8, FieldEncoder e9, FieldEncoder e10, FieldEncoder e11, FieldEncoder e12, FieldEncoder e13) { return tuple -> Json.jObject( - Json.tuple(e1.name, e1.toJson(tuple._1)), - Json.tuple(e2.name, e2.toJson(tuple._2)), - Json.tuple(e3.name, e3.toJson(tuple._3)), - Json.tuple(e4.name, e4.toJson(tuple._4)), - Json.tuple(e5.name, e5.toJson(tuple._5)), - Json.tuple(e6.name, e6.toJson(tuple._6)), - Json.tuple(e7.name, e7.toJson(tuple._7)), - Json.tuple(e8.name, e8.toJson(tuple._8)), - Json.tuple(e9.name, e9.toJson(tuple._9)), - Json.tuple(e10.name, e10.toJson(tuple._10)), - Json.tuple(e11.name, e11.toJson(tuple._11)), - Json.tuple(e12.name, e12.toJson(tuple._12)), - Json.tuple(e13.name, e13.toJson(tuple._13)) + Json.tuple(e1.name, e1.toJson(tuple._1())), + Json.tuple(e2.name, e2.toJson(tuple._2())), + Json.tuple(e3.name, e3.toJson(tuple._3())), + Json.tuple(e4.name, e4.toJson(tuple._4())), + Json.tuple(e5.name, e5.toJson(tuple._5())), + Json.tuple(e6.name, e6.toJson(tuple._6())), + Json.tuple(e7.name, e7.toJson(tuple._7())), + Json.tuple(e8.name, e8.toJson(tuple._8())), + Json.tuple(e9.name, e9.toJson(tuple._9())), + Json.tuple(e10.name, e10.toJson(tuple._10())), + Json.tuple(e11.name, e11.toJson(tuple._11())), + Json.tuple(e12.name, e12.toJson(tuple._12())), + Json.tuple(e13.name, e13.toJson(tuple._13())) ); } @@ -256,20 +256,20 @@ public static Encod public static EncodeJson> encode(FieldEncoder e1, FieldEncoder e2, FieldEncoder e3, FieldEncoder e4, FieldEncoder e5, FieldEncoder e6, FieldEncoder e7, FieldEncoder e8, FieldEncoder e9, FieldEncoder e10, FieldEncoder e11, FieldEncoder e12, FieldEncoder e13, FieldEncoder e14) { return tuple -> Json.jObject( - Json.tuple(e1.name, e1.toJson(tuple._1)), - Json.tuple(e2.name, e2.toJson(tuple._2)), - Json.tuple(e3.name, e3.toJson(tuple._3)), - Json.tuple(e4.name, e4.toJson(tuple._4)), - Json.tuple(e5.name, e5.toJson(tuple._5)), - Json.tuple(e6.name, e6.toJson(tuple._6)), - Json.tuple(e7.name, e7.toJson(tuple._7)), - Json.tuple(e8.name, e8.toJson(tuple._8)), - Json.tuple(e9.name, e9.toJson(tuple._9)), - Json.tuple(e10.name, e10.toJson(tuple._10)), - Json.tuple(e11.name, e11.toJson(tuple._11)), - Json.tuple(e12.name, e12.toJson(tuple._12)), - Json.tuple(e13.name, e13.toJson(tuple._13)), - Json.tuple(e14.name, e14.toJson(tuple._14)) + Json.tuple(e1.name, e1.toJson(tuple._1())), + Json.tuple(e2.name, e2.toJson(tuple._2())), + Json.tuple(e3.name, e3.toJson(tuple._3())), + Json.tuple(e4.name, e4.toJson(tuple._4())), + Json.tuple(e5.name, e5.toJson(tuple._5())), + Json.tuple(e6.name, e6.toJson(tuple._6())), + Json.tuple(e7.name, e7.toJson(tuple._7())), + Json.tuple(e8.name, e8.toJson(tuple._8())), + Json.tuple(e9.name, e9.toJson(tuple._9())), + Json.tuple(e10.name, e10.toJson(tuple._10())), + Json.tuple(e11.name, e11.toJson(tuple._11())), + Json.tuple(e12.name, e12.toJson(tuple._12())), + Json.tuple(e13.name, e13.toJson(tuple._13())), + Json.tuple(e14.name, e14.toJson(tuple._14())) ); } @@ -279,21 +279,21 @@ public static public static EncodeJson> encode(FieldEncoder e1, FieldEncoder e2, FieldEncoder e3, FieldEncoder e4, FieldEncoder e5, FieldEncoder e6, FieldEncoder e7, FieldEncoder e8, FieldEncoder e9, FieldEncoder e10, FieldEncoder e11, FieldEncoder e12, FieldEncoder e13, FieldEncoder e14, FieldEncoder e15) { return tuple -> Json.jObject( - Json.tuple(e1.name, e1.toJson(tuple._1)), - Json.tuple(e2.name, e2.toJson(tuple._2)), - Json.tuple(e3.name, e3.toJson(tuple._3)), - Json.tuple(e4.name, e4.toJson(tuple._4)), - Json.tuple(e5.name, e5.toJson(tuple._5)), - Json.tuple(e6.name, e6.toJson(tuple._6)), - Json.tuple(e7.name, e7.toJson(tuple._7)), - Json.tuple(e8.name, e8.toJson(tuple._8)), - Json.tuple(e9.name, e9.toJson(tuple._9)), - Json.tuple(e10.name, e10.toJson(tuple._10)), - Json.tuple(e11.name, e11.toJson(tuple._11)), - Json.tuple(e12.name, e12.toJson(tuple._12)), - Json.tuple(e13.name, e13.toJson(tuple._13)), - Json.tuple(e14.name, e14.toJson(tuple._14)), - Json.tuple(e15.name, e15.toJson(tuple._15)) + Json.tuple(e1.name, e1.toJson(tuple._1())), + Json.tuple(e2.name, e2.toJson(tuple._2())), + Json.tuple(e3.name, e3.toJson(tuple._3())), + Json.tuple(e4.name, e4.toJson(tuple._4())), + Json.tuple(e5.name, e5.toJson(tuple._5())), + Json.tuple(e6.name, e6.toJson(tuple._6())), + Json.tuple(e7.name, e7.toJson(tuple._7())), + Json.tuple(e8.name, e8.toJson(tuple._8())), + Json.tuple(e9.name, e9.toJson(tuple._9())), + Json.tuple(e10.name, e10.toJson(tuple._10())), + Json.tuple(e11.name, e11.toJson(tuple._11())), + Json.tuple(e12.name, e12.toJson(tuple._12())), + Json.tuple(e13.name, e13.toJson(tuple._13())), + Json.tuple(e14.name, e14.toJson(tuple._14())), + Json.tuple(e15.name, e15.toJson(tuple._15())) ); } @@ -303,22 +303,22 @@ public static EncodeJson> encode(FieldEncoder e1, FieldEncoder e2, FieldEncoder e3, FieldEncoder e4, FieldEncoder e5, FieldEncoder e6, FieldEncoder e7, FieldEncoder e8, FieldEncoder e9, FieldEncoder e10, FieldEncoder e11, FieldEncoder e12, FieldEncoder e13, FieldEncoder e14, FieldEncoder e15, FieldEncoder e16) { return tuple -> Json.jObject( - Json.tuple(e1.name, e1.toJson(tuple._1)), - Json.tuple(e2.name, e2.toJson(tuple._2)), - Json.tuple(e3.name, e3.toJson(tuple._3)), - Json.tuple(e4.name, e4.toJson(tuple._4)), - Json.tuple(e5.name, e5.toJson(tuple._5)), - Json.tuple(e6.name, e6.toJson(tuple._6)), - Json.tuple(e7.name, e7.toJson(tuple._7)), - Json.tuple(e8.name, e8.toJson(tuple._8)), - Json.tuple(e9.name, e9.toJson(tuple._9)), - Json.tuple(e10.name, e10.toJson(tuple._10)), - Json.tuple(e11.name, e11.toJson(tuple._11)), - Json.tuple(e12.name, e12.toJson(tuple._12)), - Json.tuple(e13.name, e13.toJson(tuple._13)), - Json.tuple(e14.name, e14.toJson(tuple._14)), - Json.tuple(e15.name, e15.toJson(tuple._15)), - Json.tuple(e16.name, e16.toJson(tuple._16)) + Json.tuple(e1.name, e1.toJson(tuple._1())), + Json.tuple(e2.name, e2.toJson(tuple._2())), + Json.tuple(e3.name, e3.toJson(tuple._3())), + Json.tuple(e4.name, e4.toJson(tuple._4())), + Json.tuple(e5.name, e5.toJson(tuple._5())), + Json.tuple(e6.name, e6.toJson(tuple._6())), + Json.tuple(e7.name, e7.toJson(tuple._7())), + Json.tuple(e8.name, e8.toJson(tuple._8())), + Json.tuple(e9.name, e9.toJson(tuple._9())), + Json.tuple(e10.name, e10.toJson(tuple._10())), + Json.tuple(e11.name, e11.toJson(tuple._11())), + Json.tuple(e12.name, e12.toJson(tuple._12())), + Json.tuple(e13.name, e13.toJson(tuple._13())), + Json.tuple(e14.name, e14.toJson(tuple._14())), + Json.tuple(e15.name, e15.toJson(tuple._15())), + Json.tuple(e16.name, e16.toJson(tuple._16())) ); } @@ -328,23 +328,23 @@ public static EncodeJson> encode(FieldEncoder e1, FieldEncoder e2, FieldEncoder e3, FieldEncoder e4, FieldEncoder e5, FieldEncoder e6, FieldEncoder e7, FieldEncoder e8, FieldEncoder e9, FieldEncoder e10, FieldEncoder e11, FieldEncoder e12, FieldEncoder e13, FieldEncoder e14, FieldEncoder e15, FieldEncoder e16, FieldEncoder e17) { return tuple -> Json.jObject( - Json.tuple(e1.name, e1.toJson(tuple._1)), - Json.tuple(e2.name, e2.toJson(tuple._2)), - Json.tuple(e3.name, e3.toJson(tuple._3)), - Json.tuple(e4.name, e4.toJson(tuple._4)), - Json.tuple(e5.name, e5.toJson(tuple._5)), - Json.tuple(e6.name, e6.toJson(tuple._6)), - Json.tuple(e7.name, e7.toJson(tuple._7)), - Json.tuple(e8.name, e8.toJson(tuple._8)), - Json.tuple(e9.name, e9.toJson(tuple._9)), - Json.tuple(e10.name, e10.toJson(tuple._10)), - Json.tuple(e11.name, e11.toJson(tuple._11)), - Json.tuple(e12.name, e12.toJson(tuple._12)), - Json.tuple(e13.name, e13.toJson(tuple._13)), - Json.tuple(e14.name, e14.toJson(tuple._14)), - Json.tuple(e15.name, e15.toJson(tuple._15)), - Json.tuple(e16.name, e16.toJson(tuple._16)), - Json.tuple(e17.name, e17.toJson(tuple._17)) + Json.tuple(e1.name, e1.toJson(tuple._1())), + Json.tuple(e2.name, e2.toJson(tuple._2())), + Json.tuple(e3.name, e3.toJson(tuple._3())), + Json.tuple(e4.name, e4.toJson(tuple._4())), + Json.tuple(e5.name, e5.toJson(tuple._5())), + Json.tuple(e6.name, e6.toJson(tuple._6())), + Json.tuple(e7.name, e7.toJson(tuple._7())), + Json.tuple(e8.name, e8.toJson(tuple._8())), + Json.tuple(e9.name, e9.toJson(tuple._9())), + Json.tuple(e10.name, e10.toJson(tuple._10())), + Json.tuple(e11.name, e11.toJson(tuple._11())), + Json.tuple(e12.name, e12.toJson(tuple._12())), + Json.tuple(e13.name, e13.toJson(tuple._13())), + Json.tuple(e14.name, e14.toJson(tuple._14())), + Json.tuple(e15.name, e15.toJson(tuple._15())), + Json.tuple(e16.name, e16.toJson(tuple._16())), + Json.tuple(e17.name, e17.toJson(tuple._17())) ); } @@ -354,24 +354,24 @@ public static EncodeJson> encode(FieldEncoder e1, FieldEncoder e2, FieldEncoder e3, FieldEncoder e4, FieldEncoder e5, FieldEncoder e6, FieldEncoder e7, FieldEncoder e8, FieldEncoder e9, FieldEncoder e10, FieldEncoder e11, FieldEncoder e12, FieldEncoder e13, FieldEncoder e14, FieldEncoder e15, FieldEncoder e16, FieldEncoder e17, FieldEncoder e18) { return tuple -> Json.jObject( - Json.tuple(e1.name, e1.toJson(tuple._1)), - Json.tuple(e2.name, e2.toJson(tuple._2)), - Json.tuple(e3.name, e3.toJson(tuple._3)), - Json.tuple(e4.name, e4.toJson(tuple._4)), - Json.tuple(e5.name, e5.toJson(tuple._5)), - Json.tuple(e6.name, e6.toJson(tuple._6)), - Json.tuple(e7.name, e7.toJson(tuple._7)), - Json.tuple(e8.name, e8.toJson(tuple._8)), - Json.tuple(e9.name, e9.toJson(tuple._9)), - Json.tuple(e10.name, e10.toJson(tuple._10)), - Json.tuple(e11.name, e11.toJson(tuple._11)), - Json.tuple(e12.name, e12.toJson(tuple._12)), - Json.tuple(e13.name, e13.toJson(tuple._13)), - Json.tuple(e14.name, e14.toJson(tuple._14)), - Json.tuple(e15.name, e15.toJson(tuple._15)), - Json.tuple(e16.name, e16.toJson(tuple._16)), - Json.tuple(e17.name, e17.toJson(tuple._17)), - Json.tuple(e18.name, e18.toJson(tuple._18)) + Json.tuple(e1.name, e1.toJson(tuple._1())), + Json.tuple(e2.name, e2.toJson(tuple._2())), + Json.tuple(e3.name, e3.toJson(tuple._3())), + Json.tuple(e4.name, e4.toJson(tuple._4())), + Json.tuple(e5.name, e5.toJson(tuple._5())), + Json.tuple(e6.name, e6.toJson(tuple._6())), + Json.tuple(e7.name, e7.toJson(tuple._7())), + Json.tuple(e8.name, e8.toJson(tuple._8())), + Json.tuple(e9.name, e9.toJson(tuple._9())), + Json.tuple(e10.name, e10.toJson(tuple._10())), + Json.tuple(e11.name, e11.toJson(tuple._11())), + Json.tuple(e12.name, e12.toJson(tuple._12())), + Json.tuple(e13.name, e13.toJson(tuple._13())), + Json.tuple(e14.name, e14.toJson(tuple._14())), + Json.tuple(e15.name, e15.toJson(tuple._15())), + Json.tuple(e16.name, e16.toJson(tuple._16())), + Json.tuple(e17.name, e17.toJson(tuple._17())), + Json.tuple(e18.name, e18.toJson(tuple._18())) ); } @@ -381,25 +381,25 @@ public static EncodeJson> encode(FieldEncoder e1, FieldEncoder e2, FieldEncoder e3, FieldEncoder e4, FieldEncoder e5, FieldEncoder e6, FieldEncoder e7, FieldEncoder e8, FieldEncoder e9, FieldEncoder e10, FieldEncoder e11, FieldEncoder e12, FieldEncoder e13, FieldEncoder e14, FieldEncoder e15, FieldEncoder e16, FieldEncoder e17, FieldEncoder e18, FieldEncoder e19) { return tuple -> Json.jObject( - Json.tuple(e1.name, e1.toJson(tuple._1)), - Json.tuple(e2.name, e2.toJson(tuple._2)), - Json.tuple(e3.name, e3.toJson(tuple._3)), - Json.tuple(e4.name, e4.toJson(tuple._4)), - Json.tuple(e5.name, e5.toJson(tuple._5)), - Json.tuple(e6.name, e6.toJson(tuple._6)), - Json.tuple(e7.name, e7.toJson(tuple._7)), - Json.tuple(e8.name, e8.toJson(tuple._8)), - Json.tuple(e9.name, e9.toJson(tuple._9)), - Json.tuple(e10.name, e10.toJson(tuple._10)), - Json.tuple(e11.name, e11.toJson(tuple._11)), - Json.tuple(e12.name, e12.toJson(tuple._12)), - Json.tuple(e13.name, e13.toJson(tuple._13)), - Json.tuple(e14.name, e14.toJson(tuple._14)), - Json.tuple(e15.name, e15.toJson(tuple._15)), - Json.tuple(e16.name, e16.toJson(tuple._16)), - Json.tuple(e17.name, e17.toJson(tuple._17)), - Json.tuple(e18.name, e18.toJson(tuple._18)), - Json.tuple(e19.name, e19.toJson(tuple._19)) + Json.tuple(e1.name, e1.toJson(tuple._1())), + Json.tuple(e2.name, e2.toJson(tuple._2())), + Json.tuple(e3.name, e3.toJson(tuple._3())), + Json.tuple(e4.name, e4.toJson(tuple._4())), + Json.tuple(e5.name, e5.toJson(tuple._5())), + Json.tuple(e6.name, e6.toJson(tuple._6())), + Json.tuple(e7.name, e7.toJson(tuple._7())), + Json.tuple(e8.name, e8.toJson(tuple._8())), + Json.tuple(e9.name, e9.toJson(tuple._9())), + Json.tuple(e10.name, e10.toJson(tuple._10())), + Json.tuple(e11.name, e11.toJson(tuple._11())), + Json.tuple(e12.name, e12.toJson(tuple._12())), + Json.tuple(e13.name, e13.toJson(tuple._13())), + Json.tuple(e14.name, e14.toJson(tuple._14())), + Json.tuple(e15.name, e15.toJson(tuple._15())), + Json.tuple(e16.name, e16.toJson(tuple._16())), + Json.tuple(e17.name, e17.toJson(tuple._17())), + Json.tuple(e18.name, e18.toJson(tuple._18())), + Json.tuple(e19.name, e19.toJson(tuple._19())) ); } @@ -409,26 +409,26 @@ public static EncodeJson> encode(FieldEncoder e1, FieldEncoder e2, FieldEncoder e3, FieldEncoder e4, FieldEncoder e5, FieldEncoder e6, FieldEncoder e7, FieldEncoder e8, FieldEncoder e9, FieldEncoder e10, FieldEncoder e11, FieldEncoder e12, FieldEncoder e13, FieldEncoder e14, FieldEncoder e15, FieldEncoder e16, FieldEncoder e17, FieldEncoder e18, FieldEncoder e19, FieldEncoder e20) { return tuple -> Json.jObject( - Json.tuple(e1.name, e1.toJson(tuple._1)), - Json.tuple(e2.name, e2.toJson(tuple._2)), - Json.tuple(e3.name, e3.toJson(tuple._3)), - Json.tuple(e4.name, e4.toJson(tuple._4)), - Json.tuple(e5.name, e5.toJson(tuple._5)), - Json.tuple(e6.name, e6.toJson(tuple._6)), - Json.tuple(e7.name, e7.toJson(tuple._7)), - Json.tuple(e8.name, e8.toJson(tuple._8)), - Json.tuple(e9.name, e9.toJson(tuple._9)), - Json.tuple(e10.name, e10.toJson(tuple._10)), - Json.tuple(e11.name, e11.toJson(tuple._11)), - Json.tuple(e12.name, e12.toJson(tuple._12)), - Json.tuple(e13.name, e13.toJson(tuple._13)), - Json.tuple(e14.name, e14.toJson(tuple._14)), - Json.tuple(e15.name, e15.toJson(tuple._15)), - Json.tuple(e16.name, e16.toJson(tuple._16)), - Json.tuple(e17.name, e17.toJson(tuple._17)), - Json.tuple(e18.name, e18.toJson(tuple._18)), - Json.tuple(e19.name, e19.toJson(tuple._19)), - Json.tuple(e20.name, e20.toJson(tuple._20)) + Json.tuple(e1.name, e1.toJson(tuple._1())), + Json.tuple(e2.name, e2.toJson(tuple._2())), + Json.tuple(e3.name, e3.toJson(tuple._3())), + Json.tuple(e4.name, e4.toJson(tuple._4())), + Json.tuple(e5.name, e5.toJson(tuple._5())), + Json.tuple(e6.name, e6.toJson(tuple._6())), + Json.tuple(e7.name, e7.toJson(tuple._7())), + Json.tuple(e8.name, e8.toJson(tuple._8())), + Json.tuple(e9.name, e9.toJson(tuple._9())), + Json.tuple(e10.name, e10.toJson(tuple._10())), + Json.tuple(e11.name, e11.toJson(tuple._11())), + Json.tuple(e12.name, e12.toJson(tuple._12())), + Json.tuple(e13.name, e13.toJson(tuple._13())), + Json.tuple(e14.name, e14.toJson(tuple._14())), + Json.tuple(e15.name, e15.toJson(tuple._15())), + Json.tuple(e16.name, e16.toJson(tuple._16())), + Json.tuple(e17.name, e17.toJson(tuple._17())), + Json.tuple(e18.name, e18.toJson(tuple._18())), + Json.tuple(e19.name, e19.toJson(tuple._19())), + Json.tuple(e20.name, e20.toJson(tuple._20())) ); } @@ -438,27 +438,27 @@ public static EncodeJson> encode(FieldEncoder e1, FieldEncoder e2, FieldEncoder e3, FieldEncoder e4, FieldEncoder e5, FieldEncoder e6, FieldEncoder e7, FieldEncoder e8, FieldEncoder e9, FieldEncoder e10, FieldEncoder e11, FieldEncoder e12, FieldEncoder e13, FieldEncoder e14, FieldEncoder e15, FieldEncoder e16, FieldEncoder e17, FieldEncoder e18, FieldEncoder e19, FieldEncoder e20, FieldEncoder e21) { return tuple -> Json.jObject( - Json.tuple(e1.name, e1.toJson(tuple._1)), - Json.tuple(e2.name, e2.toJson(tuple._2)), - Json.tuple(e3.name, e3.toJson(tuple._3)), - Json.tuple(e4.name, e4.toJson(tuple._4)), - Json.tuple(e5.name, e5.toJson(tuple._5)), - Json.tuple(e6.name, e6.toJson(tuple._6)), - Json.tuple(e7.name, e7.toJson(tuple._7)), - Json.tuple(e8.name, e8.toJson(tuple._8)), - Json.tuple(e9.name, e9.toJson(tuple._9)), - Json.tuple(e10.name, e10.toJson(tuple._10)), - Json.tuple(e11.name, e11.toJson(tuple._11)), - Json.tuple(e12.name, e12.toJson(tuple._12)), - Json.tuple(e13.name, e13.toJson(tuple._13)), - Json.tuple(e14.name, e14.toJson(tuple._14)), - Json.tuple(e15.name, e15.toJson(tuple._15)), - Json.tuple(e16.name, e16.toJson(tuple._16)), - Json.tuple(e17.name, e17.toJson(tuple._17)), - Json.tuple(e18.name, e18.toJson(tuple._18)), - Json.tuple(e19.name, e19.toJson(tuple._19)), - Json.tuple(e20.name, e20.toJson(tuple._20)), - Json.tuple(e21.name, e21.toJson(tuple._21)) + Json.tuple(e1.name, e1.toJson(tuple._1())), + Json.tuple(e2.name, e2.toJson(tuple._2())), + Json.tuple(e3.name, e3.toJson(tuple._3())), + Json.tuple(e4.name, e4.toJson(tuple._4())), + Json.tuple(e5.name, e5.toJson(tuple._5())), + Json.tuple(e6.name, e6.toJson(tuple._6())), + Json.tuple(e7.name, e7.toJson(tuple._7())), + Json.tuple(e8.name, e8.toJson(tuple._8())), + Json.tuple(e9.name, e9.toJson(tuple._9())), + Json.tuple(e10.name, e10.toJson(tuple._10())), + Json.tuple(e11.name, e11.toJson(tuple._11())), + Json.tuple(e12.name, e12.toJson(tuple._12())), + Json.tuple(e13.name, e13.toJson(tuple._13())), + Json.tuple(e14.name, e14.toJson(tuple._14())), + Json.tuple(e15.name, e15.toJson(tuple._15())), + Json.tuple(e16.name, e16.toJson(tuple._16())), + Json.tuple(e17.name, e17.toJson(tuple._17())), + Json.tuple(e18.name, e18.toJson(tuple._18())), + Json.tuple(e19.name, e19.toJson(tuple._19())), + Json.tuple(e20.name, e20.toJson(tuple._20())), + Json.tuple(e21.name, e21.toJson(tuple._21())) ); } @@ -468,28 +468,28 @@ public static EncodeJson> encode(FieldEncoder e1, FieldEncoder e2, FieldEncoder e3, FieldEncoder e4, FieldEncoder e5, FieldEncoder e6, FieldEncoder e7, FieldEncoder e8, FieldEncoder e9, FieldEncoder e10, FieldEncoder e11, FieldEncoder e12, FieldEncoder e13, FieldEncoder e14, FieldEncoder e15, FieldEncoder e16, FieldEncoder e17, FieldEncoder e18, FieldEncoder e19, FieldEncoder e20, FieldEncoder e21, FieldEncoder e22) { return tuple -> Json.jObject( - Json.tuple(e1.name, e1.toJson(tuple._1)), - Json.tuple(e2.name, e2.toJson(tuple._2)), - Json.tuple(e3.name, e3.toJson(tuple._3)), - Json.tuple(e4.name, e4.toJson(tuple._4)), - Json.tuple(e5.name, e5.toJson(tuple._5)), - Json.tuple(e6.name, e6.toJson(tuple._6)), - Json.tuple(e7.name, e7.toJson(tuple._7)), - Json.tuple(e8.name, e8.toJson(tuple._8)), - Json.tuple(e9.name, e9.toJson(tuple._9)), - Json.tuple(e10.name, e10.toJson(tuple._10)), - Json.tuple(e11.name, e11.toJson(tuple._11)), - Json.tuple(e12.name, e12.toJson(tuple._12)), - Json.tuple(e13.name, e13.toJson(tuple._13)), - Json.tuple(e14.name, e14.toJson(tuple._14)), - Json.tuple(e15.name, e15.toJson(tuple._15)), - Json.tuple(e16.name, e16.toJson(tuple._16)), - Json.tuple(e17.name, e17.toJson(tuple._17)), - Json.tuple(e18.name, e18.toJson(tuple._18)), - Json.tuple(e19.name, e19.toJson(tuple._19)), - Json.tuple(e20.name, e20.toJson(tuple._20)), - Json.tuple(e21.name, e21.toJson(tuple._21)), - Json.tuple(e22.name, e22.toJson(tuple._22)) + Json.tuple(e1.name, e1.toJson(tuple._1())), + Json.tuple(e2.name, e2.toJson(tuple._2())), + Json.tuple(e3.name, e3.toJson(tuple._3())), + Json.tuple(e4.name, e4.toJson(tuple._4())), + Json.tuple(e5.name, e5.toJson(tuple._5())), + Json.tuple(e6.name, e6.toJson(tuple._6())), + Json.tuple(e7.name, e7.toJson(tuple._7())), + Json.tuple(e8.name, e8.toJson(tuple._8())), + Json.tuple(e9.name, e9.toJson(tuple._9())), + Json.tuple(e10.name, e10.toJson(tuple._10())), + Json.tuple(e11.name, e11.toJson(tuple._11())), + Json.tuple(e12.name, e12.toJson(tuple._12())), + Json.tuple(e13.name, e13.toJson(tuple._13())), + Json.tuple(e14.name, e14.toJson(tuple._14())), + Json.tuple(e15.name, e15.toJson(tuple._15())), + Json.tuple(e16.name, e16.toJson(tuple._16())), + Json.tuple(e17.name, e17.toJson(tuple._17())), + Json.tuple(e18.name, e18.toJson(tuple._18())), + Json.tuple(e19.name, e19.toJson(tuple._19())), + Json.tuple(e20.name, e20.toJson(tuple._20())), + Json.tuple(e21.name, e21.toJson(tuple._21())), + Json.tuple(e22.name, e22.toJson(tuple._22())) ); } @@ -499,29 +499,29 @@ public static EncodeJson> encode(FieldEncoder e1, FieldEncoder e2, FieldEncoder e3, FieldEncoder e4, FieldEncoder e5, FieldEncoder e6, FieldEncoder e7, FieldEncoder e8, FieldEncoder e9, FieldEncoder e10, FieldEncoder e11, FieldEncoder e12, FieldEncoder e13, FieldEncoder e14, FieldEncoder e15, FieldEncoder e16, FieldEncoder e17, FieldEncoder e18, FieldEncoder e19, FieldEncoder e20, FieldEncoder e21, FieldEncoder e22, FieldEncoder e23) { return tuple -> Json.jObject( - Json.tuple(e1.name, e1.toJson(tuple._1)), - Json.tuple(e2.name, e2.toJson(tuple._2)), - Json.tuple(e3.name, e3.toJson(tuple._3)), - Json.tuple(e4.name, e4.toJson(tuple._4)), - Json.tuple(e5.name, e5.toJson(tuple._5)), - Json.tuple(e6.name, e6.toJson(tuple._6)), - Json.tuple(e7.name, e7.toJson(tuple._7)), - Json.tuple(e8.name, e8.toJson(tuple._8)), - Json.tuple(e9.name, e9.toJson(tuple._9)), - Json.tuple(e10.name, e10.toJson(tuple._10)), - Json.tuple(e11.name, e11.toJson(tuple._11)), - Json.tuple(e12.name, e12.toJson(tuple._12)), - Json.tuple(e13.name, e13.toJson(tuple._13)), - Json.tuple(e14.name, e14.toJson(tuple._14)), - Json.tuple(e15.name, e15.toJson(tuple._15)), - Json.tuple(e16.name, e16.toJson(tuple._16)), - Json.tuple(e17.name, e17.toJson(tuple._17)), - Json.tuple(e18.name, e18.toJson(tuple._18)), - Json.tuple(e19.name, e19.toJson(tuple._19)), - Json.tuple(e20.name, e20.toJson(tuple._20)), - Json.tuple(e21.name, e21.toJson(tuple._21)), - Json.tuple(e22.name, e22.toJson(tuple._22)), - Json.tuple(e23.name, e23.toJson(tuple._23)) + Json.tuple(e1.name, e1.toJson(tuple._1())), + Json.tuple(e2.name, e2.toJson(tuple._2())), + Json.tuple(e3.name, e3.toJson(tuple._3())), + Json.tuple(e4.name, e4.toJson(tuple._4())), + Json.tuple(e5.name, e5.toJson(tuple._5())), + Json.tuple(e6.name, e6.toJson(tuple._6())), + Json.tuple(e7.name, e7.toJson(tuple._7())), + Json.tuple(e8.name, e8.toJson(tuple._8())), + Json.tuple(e9.name, e9.toJson(tuple._9())), + Json.tuple(e10.name, e10.toJson(tuple._10())), + Json.tuple(e11.name, e11.toJson(tuple._11())), + Json.tuple(e12.name, e12.toJson(tuple._12())), + Json.tuple(e13.name, e13.toJson(tuple._13())), + Json.tuple(e14.name, e14.toJson(tuple._14())), + Json.tuple(e15.name, e15.toJson(tuple._15())), + Json.tuple(e16.name, e16.toJson(tuple._16())), + Json.tuple(e17.name, e17.toJson(tuple._17())), + Json.tuple(e18.name, e18.toJson(tuple._18())), + Json.tuple(e19.name, e19.toJson(tuple._19())), + Json.tuple(e20.name, e20.toJson(tuple._20())), + Json.tuple(e21.name, e21.toJson(tuple._21())), + Json.tuple(e22.name, e22.toJson(tuple._22())), + Json.tuple(e23.name, e23.toJson(tuple._23())) ); } @@ -531,30 +531,30 @@ public static EncodeJson> encode(FieldEncoder e1, FieldEncoder e2, FieldEncoder e3, FieldEncoder e4, FieldEncoder e5, FieldEncoder e6, FieldEncoder e7, FieldEncoder e8, FieldEncoder e9, FieldEncoder e10, FieldEncoder e11, FieldEncoder e12, FieldEncoder e13, FieldEncoder e14, FieldEncoder e15, FieldEncoder e16, FieldEncoder e17, FieldEncoder e18, FieldEncoder e19, FieldEncoder e20, FieldEncoder e21, FieldEncoder e22, FieldEncoder e23, FieldEncoder e24) { return tuple -> Json.jObject( - Json.tuple(e1.name, e1.toJson(tuple._1)), - Json.tuple(e2.name, e2.toJson(tuple._2)), - Json.tuple(e3.name, e3.toJson(tuple._3)), - Json.tuple(e4.name, e4.toJson(tuple._4)), - Json.tuple(e5.name, e5.toJson(tuple._5)), - Json.tuple(e6.name, e6.toJson(tuple._6)), - Json.tuple(e7.name, e7.toJson(tuple._7)), - Json.tuple(e8.name, e8.toJson(tuple._8)), - Json.tuple(e9.name, e9.toJson(tuple._9)), - Json.tuple(e10.name, e10.toJson(tuple._10)), - Json.tuple(e11.name, e11.toJson(tuple._11)), - Json.tuple(e12.name, e12.toJson(tuple._12)), - Json.tuple(e13.name, e13.toJson(tuple._13)), - Json.tuple(e14.name, e14.toJson(tuple._14)), - Json.tuple(e15.name, e15.toJson(tuple._15)), - Json.tuple(e16.name, e16.toJson(tuple._16)), - Json.tuple(e17.name, e17.toJson(tuple._17)), - Json.tuple(e18.name, e18.toJson(tuple._18)), - Json.tuple(e19.name, e19.toJson(tuple._19)), - Json.tuple(e20.name, e20.toJson(tuple._20)), - Json.tuple(e21.name, e21.toJson(tuple._21)), - Json.tuple(e22.name, e22.toJson(tuple._22)), - Json.tuple(e23.name, e23.toJson(tuple._23)), - Json.tuple(e24.name, e24.toJson(tuple._24)) + Json.tuple(e1.name, e1.toJson(tuple._1())), + Json.tuple(e2.name, e2.toJson(tuple._2())), + Json.tuple(e3.name, e3.toJson(tuple._3())), + Json.tuple(e4.name, e4.toJson(tuple._4())), + Json.tuple(e5.name, e5.toJson(tuple._5())), + Json.tuple(e6.name, e6.toJson(tuple._6())), + Json.tuple(e7.name, e7.toJson(tuple._7())), + Json.tuple(e8.name, e8.toJson(tuple._8())), + Json.tuple(e9.name, e9.toJson(tuple._9())), + Json.tuple(e10.name, e10.toJson(tuple._10())), + Json.tuple(e11.name, e11.toJson(tuple._11())), + Json.tuple(e12.name, e12.toJson(tuple._12())), + Json.tuple(e13.name, e13.toJson(tuple._13())), + Json.tuple(e14.name, e14.toJson(tuple._14())), + Json.tuple(e15.name, e15.toJson(tuple._15())), + Json.tuple(e16.name, e16.toJson(tuple._16())), + Json.tuple(e17.name, e17.toJson(tuple._17())), + Json.tuple(e18.name, e18.toJson(tuple._18())), + Json.tuple(e19.name, e19.toJson(tuple._19())), + Json.tuple(e20.name, e20.toJson(tuple._20())), + Json.tuple(e21.name, e21.toJson(tuple._21())), + Json.tuple(e22.name, e22.toJson(tuple._22())), + Json.tuple(e23.name, e23.toJson(tuple._23())), + Json.tuple(e24.name, e24.toJson(tuple._24())) ); } @@ -564,31 +564,31 @@ public static EncodeJson> encode(FieldEncoder e1, FieldEncoder e2, FieldEncoder e3, FieldEncoder e4, FieldEncoder e5, FieldEncoder e6, FieldEncoder e7, FieldEncoder e8, FieldEncoder e9, FieldEncoder e10, FieldEncoder e11, FieldEncoder e12, FieldEncoder e13, FieldEncoder e14, FieldEncoder e15, FieldEncoder e16, FieldEncoder e17, FieldEncoder e18, FieldEncoder e19, FieldEncoder e20, FieldEncoder e21, FieldEncoder e22, FieldEncoder e23, FieldEncoder e24, FieldEncoder e25) { return tuple -> Json.jObject( - Json.tuple(e1.name, e1.toJson(tuple._1)), - Json.tuple(e2.name, e2.toJson(tuple._2)), - Json.tuple(e3.name, e3.toJson(tuple._3)), - Json.tuple(e4.name, e4.toJson(tuple._4)), - Json.tuple(e5.name, e5.toJson(tuple._5)), - Json.tuple(e6.name, e6.toJson(tuple._6)), - Json.tuple(e7.name, e7.toJson(tuple._7)), - Json.tuple(e8.name, e8.toJson(tuple._8)), - Json.tuple(e9.name, e9.toJson(tuple._9)), - Json.tuple(e10.name, e10.toJson(tuple._10)), - Json.tuple(e11.name, e11.toJson(tuple._11)), - Json.tuple(e12.name, e12.toJson(tuple._12)), - Json.tuple(e13.name, e13.toJson(tuple._13)), - Json.tuple(e14.name, e14.toJson(tuple._14)), - Json.tuple(e15.name, e15.toJson(tuple._15)), - Json.tuple(e16.name, e16.toJson(tuple._16)), - Json.tuple(e17.name, e17.toJson(tuple._17)), - Json.tuple(e18.name, e18.toJson(tuple._18)), - Json.tuple(e19.name, e19.toJson(tuple._19)), - Json.tuple(e20.name, e20.toJson(tuple._20)), - Json.tuple(e21.name, e21.toJson(tuple._21)), - Json.tuple(e22.name, e22.toJson(tuple._22)), - Json.tuple(e23.name, e23.toJson(tuple._23)), - Json.tuple(e24.name, e24.toJson(tuple._24)), - Json.tuple(e25.name, e25.toJson(tuple._25)) + Json.tuple(e1.name, e1.toJson(tuple._1())), + Json.tuple(e2.name, e2.toJson(tuple._2())), + Json.tuple(e3.name, e3.toJson(tuple._3())), + Json.tuple(e4.name, e4.toJson(tuple._4())), + Json.tuple(e5.name, e5.toJson(tuple._5())), + Json.tuple(e6.name, e6.toJson(tuple._6())), + Json.tuple(e7.name, e7.toJson(tuple._7())), + Json.tuple(e8.name, e8.toJson(tuple._8())), + Json.tuple(e9.name, e9.toJson(tuple._9())), + Json.tuple(e10.name, e10.toJson(tuple._10())), + Json.tuple(e11.name, e11.toJson(tuple._11())), + Json.tuple(e12.name, e12.toJson(tuple._12())), + Json.tuple(e13.name, e13.toJson(tuple._13())), + Json.tuple(e14.name, e14.toJson(tuple._14())), + Json.tuple(e15.name, e15.toJson(tuple._15())), + Json.tuple(e16.name, e16.toJson(tuple._16())), + Json.tuple(e17.name, e17.toJson(tuple._17())), + Json.tuple(e18.name, e18.toJson(tuple._18())), + Json.tuple(e19.name, e19.toJson(tuple._19())), + Json.tuple(e20.name, e20.toJson(tuple._20())), + Json.tuple(e21.name, e21.toJson(tuple._21())), + Json.tuple(e22.name, e22.toJson(tuple._22())), + Json.tuple(e23.name, e23.toJson(tuple._23())), + Json.tuple(e24.name, e24.toJson(tuple._24())), + Json.tuple(e25.name, e25.toJson(tuple._25())) ); } @@ -598,32 +598,32 @@ public static EncodeJson> encode(FieldEncoder e1, FieldEncoder e2, FieldEncoder e3, FieldEncoder e4, FieldEncoder e5, FieldEncoder e6, FieldEncoder e7, FieldEncoder e8, FieldEncoder e9, FieldEncoder e10, FieldEncoder e11, FieldEncoder e12, FieldEncoder e13, FieldEncoder e14, FieldEncoder e15, FieldEncoder e16, FieldEncoder e17, FieldEncoder e18, FieldEncoder e19, FieldEncoder e20, FieldEncoder e21, FieldEncoder e22, FieldEncoder e23, FieldEncoder e24, FieldEncoder e25, FieldEncoder e26) { return tuple -> Json.jObject( - Json.tuple(e1.name, e1.toJson(tuple._1)), - Json.tuple(e2.name, e2.toJson(tuple._2)), - Json.tuple(e3.name, e3.toJson(tuple._3)), - Json.tuple(e4.name, e4.toJson(tuple._4)), - Json.tuple(e5.name, e5.toJson(tuple._5)), - Json.tuple(e6.name, e6.toJson(tuple._6)), - Json.tuple(e7.name, e7.toJson(tuple._7)), - Json.tuple(e8.name, e8.toJson(tuple._8)), - Json.tuple(e9.name, e9.toJson(tuple._9)), - Json.tuple(e10.name, e10.toJson(tuple._10)), - Json.tuple(e11.name, e11.toJson(tuple._11)), - Json.tuple(e12.name, e12.toJson(tuple._12)), - Json.tuple(e13.name, e13.toJson(tuple._13)), - Json.tuple(e14.name, e14.toJson(tuple._14)), - Json.tuple(e15.name, e15.toJson(tuple._15)), - Json.tuple(e16.name, e16.toJson(tuple._16)), - Json.tuple(e17.name, e17.toJson(tuple._17)), - Json.tuple(e18.name, e18.toJson(tuple._18)), - Json.tuple(e19.name, e19.toJson(tuple._19)), - Json.tuple(e20.name, e20.toJson(tuple._20)), - Json.tuple(e21.name, e21.toJson(tuple._21)), - Json.tuple(e22.name, e22.toJson(tuple._22)), - Json.tuple(e23.name, e23.toJson(tuple._23)), - Json.tuple(e24.name, e24.toJson(tuple._24)), - Json.tuple(e25.name, e25.toJson(tuple._25)), - Json.tuple(e26.name, e26.toJson(tuple._26)) + Json.tuple(e1.name, e1.toJson(tuple._1())), + Json.tuple(e2.name, e2.toJson(tuple._2())), + Json.tuple(e3.name, e3.toJson(tuple._3())), + Json.tuple(e4.name, e4.toJson(tuple._4())), + Json.tuple(e5.name, e5.toJson(tuple._5())), + Json.tuple(e6.name, e6.toJson(tuple._6())), + Json.tuple(e7.name, e7.toJson(tuple._7())), + Json.tuple(e8.name, e8.toJson(tuple._8())), + Json.tuple(e9.name, e9.toJson(tuple._9())), + Json.tuple(e10.name, e10.toJson(tuple._10())), + Json.tuple(e11.name, e11.toJson(tuple._11())), + Json.tuple(e12.name, e12.toJson(tuple._12())), + Json.tuple(e13.name, e13.toJson(tuple._13())), + Json.tuple(e14.name, e14.toJson(tuple._14())), + Json.tuple(e15.name, e15.toJson(tuple._15())), + Json.tuple(e16.name, e16.toJson(tuple._16())), + Json.tuple(e17.name, e17.toJson(tuple._17())), + Json.tuple(e18.name, e18.toJson(tuple._18())), + Json.tuple(e19.name, e19.toJson(tuple._19())), + Json.tuple(e20.name, e20.toJson(tuple._20())), + Json.tuple(e21.name, e21.toJson(tuple._21())), + Json.tuple(e22.name, e22.toJson(tuple._22())), + Json.tuple(e23.name, e23.toJson(tuple._23())), + Json.tuple(e24.name, e24.toJson(tuple._24())), + Json.tuple(e25.name, e25.toJson(tuple._25())), + Json.tuple(e26.name, e26.toJson(tuple._26())) ); } @@ -633,33 +633,33 @@ public static EncodeJson> encode(FieldEncoder e1, FieldEncoder e2, FieldEncoder e3, FieldEncoder e4, FieldEncoder e5, FieldEncoder e6, FieldEncoder e7, FieldEncoder e8, FieldEncoder e9, FieldEncoder e10, FieldEncoder e11, FieldEncoder e12, FieldEncoder e13, FieldEncoder e14, FieldEncoder e15, FieldEncoder e16, FieldEncoder e17, FieldEncoder e18, FieldEncoder e19, FieldEncoder e20, FieldEncoder e21, FieldEncoder e22, FieldEncoder e23, FieldEncoder e24, FieldEncoder e25, FieldEncoder e26, FieldEncoder e27) { return tuple -> Json.jObject( - Json.tuple(e1.name, e1.toJson(tuple._1)), - Json.tuple(e2.name, e2.toJson(tuple._2)), - Json.tuple(e3.name, e3.toJson(tuple._3)), - Json.tuple(e4.name, e4.toJson(tuple._4)), - Json.tuple(e5.name, e5.toJson(tuple._5)), - Json.tuple(e6.name, e6.toJson(tuple._6)), - Json.tuple(e7.name, e7.toJson(tuple._7)), - Json.tuple(e8.name, e8.toJson(tuple._8)), - Json.tuple(e9.name, e9.toJson(tuple._9)), - Json.tuple(e10.name, e10.toJson(tuple._10)), - Json.tuple(e11.name, e11.toJson(tuple._11)), - Json.tuple(e12.name, e12.toJson(tuple._12)), - Json.tuple(e13.name, e13.toJson(tuple._13)), - Json.tuple(e14.name, e14.toJson(tuple._14)), - Json.tuple(e15.name, e15.toJson(tuple._15)), - Json.tuple(e16.name, e16.toJson(tuple._16)), - Json.tuple(e17.name, e17.toJson(tuple._17)), - Json.tuple(e18.name, e18.toJson(tuple._18)), - Json.tuple(e19.name, e19.toJson(tuple._19)), - Json.tuple(e20.name, e20.toJson(tuple._20)), - Json.tuple(e21.name, e21.toJson(tuple._21)), - Json.tuple(e22.name, e22.toJson(tuple._22)), - Json.tuple(e23.name, e23.toJson(tuple._23)), - Json.tuple(e24.name, e24.toJson(tuple._24)), - Json.tuple(e25.name, e25.toJson(tuple._25)), - Json.tuple(e26.name, e26.toJson(tuple._26)), - Json.tuple(e27.name, e27.toJson(tuple._27)) + Json.tuple(e1.name, e1.toJson(tuple._1())), + Json.tuple(e2.name, e2.toJson(tuple._2())), + Json.tuple(e3.name, e3.toJson(tuple._3())), + Json.tuple(e4.name, e4.toJson(tuple._4())), + Json.tuple(e5.name, e5.toJson(tuple._5())), + Json.tuple(e6.name, e6.toJson(tuple._6())), + Json.tuple(e7.name, e7.toJson(tuple._7())), + Json.tuple(e8.name, e8.toJson(tuple._8())), + Json.tuple(e9.name, e9.toJson(tuple._9())), + Json.tuple(e10.name, e10.toJson(tuple._10())), + Json.tuple(e11.name, e11.toJson(tuple._11())), + Json.tuple(e12.name, e12.toJson(tuple._12())), + Json.tuple(e13.name, e13.toJson(tuple._13())), + Json.tuple(e14.name, e14.toJson(tuple._14())), + Json.tuple(e15.name, e15.toJson(tuple._15())), + Json.tuple(e16.name, e16.toJson(tuple._16())), + Json.tuple(e17.name, e17.toJson(tuple._17())), + Json.tuple(e18.name, e18.toJson(tuple._18())), + Json.tuple(e19.name, e19.toJson(tuple._19())), + Json.tuple(e20.name, e20.toJson(tuple._20())), + Json.tuple(e21.name, e21.toJson(tuple._21())), + Json.tuple(e22.name, e22.toJson(tuple._22())), + Json.tuple(e23.name, e23.toJson(tuple._23())), + Json.tuple(e24.name, e24.toJson(tuple._24())), + Json.tuple(e25.name, e25.toJson(tuple._25())), + Json.tuple(e26.name, e26.toJson(tuple._26())), + Json.tuple(e27.name, e27.toJson(tuple._27())) ); } diff --git a/codec/src/test/java/net/hamnaberg/json/codec/PersonCodecTest.java b/codec/src/test/java/net/hamnaberg/json/codec/PersonCodecTest.java index 75f1d30..ac8b742 100644 --- a/codec/src/test/java/net/hamnaberg/json/codec/PersonCodecTest.java +++ b/codec/src/test/java/net/hamnaberg/json/codec/PersonCodecTest.java @@ -107,7 +107,7 @@ private enum PersonIso implements Iso> @Override public Person reverseGet(Tuple3 t) { - return new Person(t._1, t._2, t._3); + return new Person(t._1(), t._2(), t._3()); } @Override @@ -121,7 +121,7 @@ private enum Person2Iso implements Iso> t) { - return new Person2(t._1, t._2, t._3); + return new Person2(t._1(), t._2(), t._3()); } @Override @@ -135,7 +135,7 @@ private enum AddressIso implements Iso> { @Override public Address reverseGet(Tuple2t) { - return new Address(t._1, t._2); + return new Address(t._1(), t._2()); } @Override diff --git a/pointer/src/main/java/net/hamnaberg/json/pointer/JsonPointer.java b/pointer/src/main/java/net/hamnaberg/json/pointer/JsonPointer.java index 72ab5f5..6465cd6 100644 --- a/pointer/src/main/java/net/hamnaberg/json/pointer/JsonPointer.java +++ b/pointer/src/main/java/net/hamnaberg/json/pointer/JsonPointer.java @@ -1,5 +1,6 @@ package net.hamnaberg.json.pointer; +import net.hamnaberg.json.Folder; import net.hamnaberg.json.Json; import java.util.Iterator; @@ -113,14 +114,14 @@ public boolean test(Json.JValue json, Json.JValue value) { } private Json.JValue foldToJson(Json.JValue value, Function fObject, Function fArray) { - return value.fold( + return value.fold(Folder.from( Json.JValue::asJValue, Json.JValue::asJValue, Json.JValue::asJValue, fObject, fArray, Json::jNull - ); + )); } private Json.JValue updateImpl(Iterator path, Ref ref, Json.JValue context, Optional updateValue) { @@ -135,8 +136,7 @@ private Json.JValue updateImpl(Iterator path, Ref ref, Json.JValue context, if (updateValue.isPresent()) { array.get(index).orElseThrow(() -> new IllegalStateException("No value at index: " + index)); return array.replace(index, updateValue.get()); - } - else { + } else { return array.remove(index); } } else { @@ -179,8 +179,7 @@ private Json.JValue addImpl(Iterator path, Ref ref, Json.JValue context, Js if (!path.hasNext()) { if (arr.size() >= index) { return arr.insert(index, valueToInsert); - } - else { + } else { throw new IllegalStateException(String.format("List index %s is out-of-bounds", index)); } } else { @@ -195,16 +194,16 @@ private Json.JValue addImpl(Iterator path, Ref ref, Json.JValue context, Js Json.JValue::asJValue ), () -> - foldToJson( - context, - j -> j, - arr -> { - if (path.hasNext()) { - throw new IllegalStateException("Nonsense to have more values after a end-of-array"); + foldToJson( + context, + j -> j, + arr -> { + if (path.hasNext()) { + throw new IllegalStateException("Nonsense to have more values after a end-of-array"); + } + return arr.append(valueToInsert); } - return arr.append(valueToInsert); - } - ) + ) ); } diff --git a/pom.xml b/pom.xml index 425b0c9..8f16eb0 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@ maven-compiler-plugin 3.13.0 - 11 + 17 -Xlint:unchecked -Xlint:deprecation