From fc96685ed0a23989031f317b28180fb83a83be28 Mon Sep 17 00:00:00 2001 From: Robin Bygrave Date: Thu, 3 Mar 2016 19:51:07 +1300 Subject: [PATCH] #585 - Refactor of ScalarType jsonWrite() method such that it only takes JsonGenerator - part 1, remove field name --- .../java/com/avaje/ebean/text/json/JsonScalar.java | 2 +- .../java/com/avaje/ebean/text/json/JsonWriter.java | 5 +++++ .../server/changelog/ChangeJsonBuilder.java | 6 ++++-- .../ebeaninternal/server/deploy/BeanProperty.java | 3 ++- .../server/text/json/DefaultJsonScalar.java | 6 +++--- .../ebeaninternal/server/text/json/WriteJson.java | 9 +++++++++ .../ebeaninternal/server/type/CtCompoundType.java | 11 +++++------ .../avaje/ebeaninternal/server/type/ScalarType.java | 2 +- .../ebeaninternal/server/type/ScalarTypeBase.java | 1 + .../server/type/ScalarTypeBaseDate.java | 6 +++--- .../server/type/ScalarTypeBaseDateTime.java | 6 ++---- .../server/type/ScalarTypeBaseVarchar.java | 4 ++-- .../server/type/ScalarTypeBigDecimal.java | 4 ++-- .../ebeaninternal/server/type/ScalarTypeBoolean.java | 4 ++-- .../ebeaninternal/server/type/ScalarTypeByte.java | 2 +- .../server/type/ScalarTypeBytesBase.java | 6 ++++-- .../server/type/ScalarTypeBytesEncrypted.java | 6 ++++-- .../ebeaninternal/server/type/ScalarTypeDouble.java | 4 ++-- .../server/type/ScalarTypeDuration.java | 4 ++-- .../server/type/ScalarTypeEncryptedWrapper.java | 4 ++-- .../server/type/ScalarTypeEnumStandard.java | 4 ++-- .../ebeaninternal/server/type/ScalarTypeFile.java | 3 +-- .../ebeaninternal/server/type/ScalarTypeFloat.java | 4 ++-- .../ebeaninternal/server/type/ScalarTypeInteger.java | 4 ++-- .../server/type/ScalarTypeJodaLocalTime.java | 4 ++-- .../ebeaninternal/server/type/ScalarTypeJsonMap.java | 12 ++---------- .../server/type/ScalarTypeJsonNode.java | 10 ++-------- .../server/type/ScalarTypeLocalTime.java | 4 ++-- .../ebeaninternal/server/type/ScalarTypeLong.java | 4 ++-- .../server/type/ScalarTypeMathBigInteger.java | 4 ++-- .../server/type/ScalarTypeMonthDay.java | 4 ++-- .../server/type/ScalarTypePostgresHstore.java | 10 ++-------- .../ebeaninternal/server/type/ScalarTypeShort.java | 4 ++-- .../ebeaninternal/server/type/ScalarTypeString.java | 4 ++-- .../ebeaninternal/server/type/ScalarTypeTime.java | 4 ++-- .../server/type/ScalarTypeUUIDBinary.java | 4 ++-- .../server/type/ScalarTypeUUIDNative.java | 12 ++---------- .../ebeaninternal/server/type/ScalarTypeWrapper.java | 4 ++-- .../ebeaninternal/server/type/ScalarTypeYear.java | 4 ++-- .../avaje/ebeaninternal/server/type/JsonTester.java | 3 ++- .../server/type/ScalarTypePostgresHstoreTest.java | 9 ++++++--- .../tests/json/include/TestJsonExcludeEmptyMap.java | 2 +- src/test/resources/logback-test.xml | 4 ++-- 43 files changed, 105 insertions(+), 111 deletions(-) diff --git a/src/main/java/com/avaje/ebean/text/json/JsonScalar.java b/src/main/java/com/avaje/ebean/text/json/JsonScalar.java index 07d006980..2dc70dc55 100644 --- a/src/main/java/com/avaje/ebean/text/json/JsonScalar.java +++ b/src/main/java/com/avaje/ebean/text/json/JsonScalar.java @@ -11,5 +11,5 @@ public interface JsonScalar { * Write the scalar type to JSON where the value can be any type known to Ebean * including Enums, Java8 time types, Joda types, URL, URI etc. */ - void write(String name, Object value) throws IOException; + void write(Object value) throws IOException; } diff --git a/src/main/java/com/avaje/ebean/text/json/JsonWriter.java b/src/main/java/com/avaje/ebean/text/json/JsonWriter.java index 91bd95068..9c0e3df46 100644 --- a/src/main/java/com/avaje/ebean/text/json/JsonWriter.java +++ b/src/main/java/com/avaje/ebean/text/json/JsonWriter.java @@ -135,6 +135,11 @@ public interface JsonWriter { */ void writeNumber(long value); + /** + * Write a double value. + */ + void writeNumber(double value); + /** * Write a BigDecimal value (typically inside a list). */ diff --git a/src/main/java/com/avaje/ebeaninternal/server/changelog/ChangeJsonBuilder.java b/src/main/java/com/avaje/ebeaninternal/server/changelog/ChangeJsonBuilder.java index d57339f7e..b6c092673 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/changelog/ChangeJsonBuilder.java +++ b/src/main/java/com/avaje/ebeaninternal/server/changelog/ChangeJsonBuilder.java @@ -119,11 +119,13 @@ public class ChangeJsonBuilder { ValuePair value = entry.getValue(); Object newValue = value.getNewValue(); if (newValue != null) { - scalarWriter.write("new", newValue); + gen.writeFieldName("new"); + scalarWriter.write(newValue); } Object oldValue = value.getOldValue(); if (oldValue != null) { - scalarWriter.write("old", oldValue); + gen.writeFieldName("old"); + scalarWriter.write(oldValue); } gen.writeEndObject(); } diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanProperty.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanProperty.java index b726ed6fd..3eaa1fa8e 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanProperty.java +++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanProperty.java @@ -1243,7 +1243,8 @@ public class BeanProperty implements ElPropertyValue, Property { writeJson.writeNullField(name); } else { if (scalarType != null) { - scalarType.jsonWrite(writeJson, name, value); + writeJson.writeFieldName(name); + scalarType.jsonWrite(writeJson, value); } else { writeJson.writeValueUsingObjectMapper(name, value); } diff --git a/src/main/java/com/avaje/ebeaninternal/server/text/json/DefaultJsonScalar.java b/src/main/java/com/avaje/ebeaninternal/server/text/json/DefaultJsonScalar.java index 46e64eb26..e6d028cf3 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/text/json/DefaultJsonScalar.java +++ b/src/main/java/com/avaje/ebeaninternal/server/text/json/DefaultJsonScalar.java @@ -22,17 +22,17 @@ public class DefaultJsonScalar implements JsonScalar { } @Override - public void write(String name, Object value) throws IOException { + public void write(Object value) throws IOException { if (value instanceof String) { - writeJson.writeStringField(name, (String)value); + writeJson.writeString((String)value); } else { ScalarType scalarType = (ScalarType)typeManager.getScalarType(value.getClass()); if (scalarType == null) { throw new IllegalArgumentException("unhandled type " + value.getClass()); } - scalarType.jsonWrite(writeJson, name, value); + scalarType.jsonWrite(writeJson, value); } } } diff --git a/src/main/java/com/avaje/ebeaninternal/server/text/json/WriteJson.java b/src/main/java/com/avaje/ebeaninternal/server/text/json/WriteJson.java index 8fa6b2610..11af1a92f 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/text/json/WriteJson.java +++ b/src/main/java/com/avaje/ebeaninternal/server/text/json/WriteJson.java @@ -313,6 +313,15 @@ public class WriteJson implements JsonWriter { } } + @Override + public void writeNumber(double value) { + try { + generator.writeNumber(value); + } catch (IOException e) { + throw new JsonIOException(e); + } + } + @Override public void writeNumber(BigDecimal value) { try { diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/CtCompoundType.java b/src/main/java/com/avaje/ebeaninternal/server/type/CtCompoundType.java index ad762a2a2..1d6301658 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/CtCompoundType.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/CtCompoundType.java @@ -173,26 +173,25 @@ public final class CtCompoundType implements ScalarDataReader { public void jsonWrite(WriteJson ctx, Object valueObject, String propertyName) throws IOException { ctx.beginAssocOne(propertyName, valueObject); - jsonWriteProps(ctx, valueObject, propertyName); + jsonWriteProps(ctx, valueObject); ctx.endAssocOne(); } @SuppressWarnings({"unchecked", "rawtypes"}) - private void jsonWriteProps(WriteJson ctx, Object valueObject, String propertyName) throws IOException { + private void jsonWriteProps(WriteJson ctx, Object valueObject) throws IOException { - if (propertyName != null) { - ctx.gen().writeFieldName(propertyName); - } ctx.gen().writeStartObject(); for (int i = 0; i < properties.length; i++) { String propName = properties[i].getName(); Object value = properties[i].getValue((V) valueObject); if (propReaders[i] instanceof CtCompoundType) { + ctx.writeFieldName(propName); ((CtCompoundType) propReaders[i]).jsonWrite(ctx, value, propName); } else { - ((ScalarType) propReaders[i]).jsonWrite(ctx, propName, value); + ctx.writeFieldName(propName); + ((ScalarType) propReaders[i]).jsonWrite(ctx, value); } } diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarType.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarType.java index c462e7a03..70d4e5b2c 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarType.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarType.java @@ -208,6 +208,6 @@ public interface ScalarType extends StringParser, StringFormatter, ScalarData /** * Write the value to the JsonGenerator. */ - void jsonWrite(JsonWriter writer, String name, T value) throws IOException; + void jsonWrite(JsonWriter writer, T value) throws IOException; } diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBase.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBase.java index 856e30334..648996605 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBase.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBase.java @@ -36,6 +36,7 @@ public abstract class ScalarTypeBase implements ScalarType { /** * Just return 0. */ + @Override public int getLength() { return 0; } diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBaseDate.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBaseDate.java index 37b31c45b..6f5f22d2c 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBaseDate.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBaseDate.java @@ -78,9 +78,9 @@ public abstract class ScalarTypeBaseDate extends ScalarTypeBase { } } - public void jsonWrite(JsonWriter writer, String name, T value) throws IOException { - long millis = convertToMillis(value); - writer.writeNumberField(name, millis); + @Override + public void jsonWrite(JsonWriter writer, T value) throws IOException { + writer.writeNumber(convertToMillis(value)); } @Override diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBaseDateTime.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBaseDateTime.java index c1c667699..12743b662 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBaseDateTime.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBaseDateTime.java @@ -104,21 +104,19 @@ public abstract class ScalarTypeBaseDateTime extends ScalarTypeBase { } @Override - public void jsonWrite(JsonWriter writer, String name, T value) throws IOException { + public void jsonWrite(JsonWriter writer, T value) throws IOException { switch (mode) { case ISO8601: { - writer.writeFieldName(name); writer.gen().writeString(toJsonISO8601(value)); break; } case NANOS: { - writer.writeFieldName(name); writer.gen().writeNumber(toJsonNanos(value)); break; } default: { - writer.gen().writeNumberField(name, convertToMillis(value)); + writer.gen().writeNumber(convertToMillis(value)); } } } diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBaseVarchar.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBaseVarchar.java index 2e592e6e0..79c320548 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBaseVarchar.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBaseVarchar.java @@ -129,8 +129,8 @@ public abstract class ScalarTypeBaseVarchar extends ScalarTypeBase { } @Override - public void jsonWrite(JsonWriter writer, String name, T value) throws IOException { - writer.writeStringField(name, format(value)); + public void jsonWrite(JsonWriter writer, T value) throws IOException { + writer.writeString(format(value)); } @Override diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBigDecimal.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBigDecimal.java index 7836a4592..2abf5836e 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBigDecimal.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBigDecimal.java @@ -84,8 +84,8 @@ public class ScalarTypeBigDecimal extends ScalarTypeBase { } @Override - public void jsonWrite(JsonWriter writer, String name, BigDecimal value) throws IOException { - writer.writeNumberField(name, value); + public void jsonWrite(JsonWriter writer, BigDecimal value) throws IOException { + writer.writeNumber(value); } @Override diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBoolean.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBoolean.java index e0eb96078..0e5fad9b5 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBoolean.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBoolean.java @@ -336,8 +336,8 @@ public class ScalarTypeBoolean { } @Override - public void jsonWrite(JsonWriter writer, String name, Boolean value) throws IOException { - writer.writeBooleanField(name, value); + public void jsonWrite(JsonWriter writer, Boolean value) throws IOException { + writer.writeBoolean(value); } @Override diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeByte.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeByte.java index 0fb36b1ef..36cacca55 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeByte.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeByte.java @@ -43,7 +43,7 @@ public class ScalarTypeByte extends ScalarTypeBase { } @Override - public void jsonWrite(JsonWriter writer, String name, Byte value) throws IOException { + public void jsonWrite(JsonWriter writer, Byte value) throws IOException { throw new IOException("Not supported"); } diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBytesBase.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBytesBase.java index 87dbb48e0..03bd7d29b 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBytesBase.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBytesBase.java @@ -6,6 +6,7 @@ import com.avaje.ebean.text.json.JsonWriter; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonToken; +import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.DataInput; import java.io.DataOutput; @@ -42,8 +43,9 @@ public abstract class ScalarTypeBytesBase extends ScalarTypeBase { } @Override - public void jsonWrite(JsonWriter writer, String name, byte[] value) throws IOException { - writer.writeBinaryField(name, value); + public void jsonWrite(JsonWriter writer, byte[] value) throws IOException { + ByteArrayInputStream is = new ByteArrayInputStream(value); + writer.writeBinary(is, value.length); } @Override diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBytesEncrypted.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBytesEncrypted.java index 378ce7cb1..4a831be39 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBytesEncrypted.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeBytesEncrypted.java @@ -5,6 +5,7 @@ import com.avaje.ebeanservice.docstore.api.mapping.DocPropertyType; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonToken; +import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.DataInput; import java.io.DataOutput; @@ -65,8 +66,9 @@ public class ScalarTypeBytesEncrypted implements ScalarType { } @Override - public void jsonWrite(JsonWriter writer, String name, byte[] value) throws IOException { - writer.writeBinaryField(name, value); + public void jsonWrite(JsonWriter writer, byte[] value) throws IOException { + ByteArrayInputStream is = new ByteArrayInputStream(value); + writer.writeBinary(is, value.length); } @Override diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeDouble.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeDouble.java index b3a7179d6..b826884f3 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeDouble.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeDouble.java @@ -91,8 +91,8 @@ public class ScalarTypeDouble extends ScalarTypeBase { } @Override - public void jsonWrite(JsonWriter writer, String name, Double value) throws IOException { - writer.writeNumberField(name, value); + public void jsonWrite(JsonWriter writer, Double value) throws IOException { + writer.writeNumber(value); } @Override diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeDuration.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeDuration.java index f56df9506..139632043 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeDuration.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeDuration.java @@ -108,8 +108,8 @@ public class ScalarTypeDuration extends ScalarTypeBase { } @Override - public void jsonWrite(JsonWriter writer, String name, Duration value) throws IOException { - writer.writeStringField(name, value.toString()); + public void jsonWrite(JsonWriter writer, Duration value) throws IOException { + writer.writeString(value.toString()); } @Override diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeEncryptedWrapper.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeEncryptedWrapper.java index ce571332c..65c6b388a 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeEncryptedWrapper.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeEncryptedWrapper.java @@ -139,8 +139,8 @@ public class ScalarTypeEncryptedWrapper implements ScalarType { } @Override - public void jsonWrite(JsonWriter writer, String name, T value) throws IOException { - wrapped.jsonWrite(writer, name, value); + public void jsonWrite(JsonWriter writer, T value) throws IOException { + wrapped.jsonWrite(writer, value); } @Override diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeEnumStandard.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeEnumStandard.java index e2039f7d9..1df472dea 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeEnumStandard.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeEnumStandard.java @@ -238,8 +238,8 @@ public class ScalarTypeEnumStandard { } @Override - public void jsonWrite(JsonWriter writer, String name, Object value) throws IOException { - writer.writeStringField(name, formatValue(value)); + public void jsonWrite(JsonWriter writer, Object value) throws IOException { + writer.writeString(formatValue(value)); } @Override diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeFile.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeFile.java index fe5507eb4..b19cdd39f 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeFile.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeFile.java @@ -112,8 +112,7 @@ public class ScalarTypeFile extends ScalarTypeBase { } @Override - public void jsonWrite(JsonWriter writer, String name, File value) throws IOException { - writer.writeFieldName(name); + public void jsonWrite(JsonWriter writer, File value) throws IOException { InputStream is = getInputStream(value); writer.writeBinary(is, (int) value.length()); } diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeFloat.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeFloat.java index 51b55d111..4154c843d 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeFloat.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeFloat.java @@ -91,8 +91,8 @@ public class ScalarTypeFloat extends ScalarTypeBase { } @Override - public void jsonWrite(JsonWriter writer, String name, Float value) throws IOException { - writer.writeNumberField(name, value); + public void jsonWrite(JsonWriter writer, Float value) throws IOException { + writer.writeNumber(value); } @Override diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeInteger.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeInteger.java index 626f7c439..b7f9108c5 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeInteger.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeInteger.java @@ -91,8 +91,8 @@ public class ScalarTypeInteger extends ScalarTypeBase { } @Override - public void jsonWrite(JsonWriter writer, String name, Integer value) throws IOException { - writer.writeNumberField(name, value); + public void jsonWrite(JsonWriter writer, Integer value) throws IOException { + writer.writeNumber(value); } @Override diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeJodaLocalTime.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeJodaLocalTime.java index a82a3ebe7..7d95f46f2 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeJodaLocalTime.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeJodaLocalTime.java @@ -72,8 +72,8 @@ public class ScalarTypeJodaLocalTime extends ScalarTypeBase { } @Override - public void jsonWrite(JsonWriter writer, String name, LocalTime value) throws IOException { - writer.writeStringField(name, value.toString()); + public void jsonWrite(JsonWriter writer, LocalTime value) throws IOException { + writer.writeString(value.toString()); } @Override diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeJsonMap.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeJsonMap.java index 131a29a3c..f197df9ad 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeJsonMap.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeJsonMap.java @@ -194,16 +194,8 @@ public abstract class ScalarTypeJsonMap extends ScalarTypeBase { } @Override - public void jsonWrite(JsonWriter writer, String name, Map value) throws IOException { - // write the field name followed by the Map/JSON Object - if (value == null) { - writer.writeNullField(name); - } else { - if (!value.isEmpty() || writer.isIncludeEmpty()) { - writer.writeFieldName(name); - EJson.write(value, writer.gen()); - } - } + public void jsonWrite(JsonWriter writer, Map value) throws IOException { + EJson.write(value, writer.gen()); } @Override diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeJsonNode.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeJsonNode.java index cf06749a1..70969e78d 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeJsonNode.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeJsonNode.java @@ -206,14 +206,8 @@ public abstract class ScalarTypeJsonNode extends ScalarTypeBase { } @Override - public void jsonWrite(JsonWriter writer, String name, JsonNode value) throws IOException { - // write the field name followed by the JsonNode object - if (value == null) { - writer.writeNullField(name); - } else { - writer.writeFieldName(name); - objectMapper.writeTree(writer.gen(), value); - } + public void jsonWrite(JsonWriter writer, JsonNode value) throws IOException { + objectMapper.writeTree(writer.gen(), value); } @Override diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeLocalTime.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeLocalTime.java index 8bbb56677..77f13dffc 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeLocalTime.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeLocalTime.java @@ -100,8 +100,8 @@ public class ScalarTypeLocalTime extends ScalarTypeBase { } @Override - public void jsonWrite(JsonWriter writer, String name, LocalTime value) throws IOException { - writer.writeStringField(name, value.toString()); + public void jsonWrite(JsonWriter writer, LocalTime value) throws IOException { + writer.writeString(value.toString()); } @Override diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeLong.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeLong.java index 1a464f1c4..b68facc53 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeLong.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeLong.java @@ -91,8 +91,8 @@ public class ScalarTypeLong extends ScalarTypeBase { } @Override - public void jsonWrite(JsonWriter writer, String name, Long value) throws IOException { - writer.writeNumberField(name, value); + public void jsonWrite(JsonWriter writer, Long value) throws IOException { + writer.writeNumber(value); } @Override diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeMathBigInteger.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeMathBigInteger.java index d6263fcae..0204ed005 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeMathBigInteger.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeMathBigInteger.java @@ -98,8 +98,8 @@ public class ScalarTypeMathBigInteger extends ScalarTypeBase { } @Override - public void jsonWrite(JsonWriter writer, String name, BigInteger value) throws IOException { - writer.writeNumberField(name, value.longValue()); + public void jsonWrite(JsonWriter writer, BigInteger value) throws IOException { + writer.writeNumber(value.longValue()); } @Override diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeMonthDay.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeMonthDay.java index d59474c36..df8120744 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeMonthDay.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeMonthDay.java @@ -125,8 +125,8 @@ public class ScalarTypeMonthDay extends ScalarTypeBase { } @Override - public void jsonWrite(JsonWriter writer, String name, MonthDay value) throws IOException { - writer.writeStringField(name, format(value)); + public void jsonWrite(JsonWriter writer, MonthDay value) throws IOException { + writer.writeString(format(value)); } @Override diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypePostgresHstore.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypePostgresHstore.java index 8da6f2ee5..42d7984f5 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypePostgresHstore.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypePostgresHstore.java @@ -113,14 +113,8 @@ public class ScalarTypePostgresHstore extends ScalarTypeBase { } @Override - public void jsonWrite(JsonWriter writer, String name, Map value) throws IOException { - // write the field name followed by the Map/JSON Object - if (value == null) { - writer.writeNullField(name); - } else { - writer.writeFieldName(name); - EJson.write(value, writer.gen()); - } + public void jsonWrite(JsonWriter writer, Map value) throws IOException { + EJson.write(value, writer.gen()); } @Override diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeShort.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeShort.java index b11c3525f..d47ad0d66 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeShort.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeShort.java @@ -92,8 +92,8 @@ public class ScalarTypeShort extends ScalarTypeBase { } @Override - public void jsonWrite(JsonWriter writer, String name, Short value) throws IOException { - writer.writeNumberField(name, value); + public void jsonWrite(JsonWriter writer, Short value) throws IOException { + writer.writeNumber(value); } @Override diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeString.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeString.java index ff19ba3a0..eac29615a 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeString.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeString.java @@ -91,8 +91,8 @@ public class ScalarTypeString extends ScalarTypeBase { } @Override - public void jsonWrite(JsonWriter writer, String name, String value) throws IOException { - writer.writeStringField(name, value); + public void jsonWrite(JsonWriter writer, String value) throws IOException { + writer.writeString(value); } @Override diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeTime.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeTime.java index 6a8b8c97b..56571ccaf 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeTime.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeTime.java @@ -93,8 +93,8 @@ public class ScalarTypeTime extends ScalarTypeBase