Class WriteJson
- java.lang.Object
-
- io.ebeaninternal.server.text.json.WriteJson
-
- All Implemented Interfaces:
JsonWriter
,SpiJsonWriter
public class WriteJson extends Object implements SpiJsonWriter
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
WriteJson.WriteBean
-
Constructor Summary
Constructors Constructor Description WriteJson(com.fasterxml.jackson.core.JsonGenerator generator, JsonConfig.Include include)
Construct for Json scalar use.WriteJson(SpiEbeanServer server, com.fasterxml.jackson.core.JsonGenerator generator, FetchPath fetchPath, Map<String,JsonWriteBeanVisitor<?>> visitors, Object objectMapper, JsonConfig.Include include)
Construct for full bean use (normal).
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
beginAssocMany(String key)
Start a Many.void
beginAssocManyMap(String key, boolean elementCollection)
Start a Many.void
beginAssocOne(String key, EntityBean bean)
Start an assoc one path.void
endAssocMany()
End a Many.void
endAssocManyMap(boolean elementCollection)
End a Many.void
endAssocOne()
End an assoc one path.void
flush()
Flush the buffer.com.fasterxml.jackson.core.JsonGenerator
gen()
Return the Jackson core JsonGenerator.Boolean
includeMany(String key)
Return true if the many property should be included.boolean
isIncludeEmpty()
Return true if empty collections should be included in the JSON output.boolean
isIncludeNull()
Return true if null values should be included in JSON output.boolean
isParentBean(Object bean)
Return true if the value is a parent bean.void
popParentBeanMany()
Pop the parent of a ToMany.void
pushParentBeanMany(EntityBean parentBean)
Push the parent bean of a ToMany.void
toJson(String name, Collection<?> c)
Write the collection.<T> void
writeBean(BeanDescriptor<T> desc, EntityBean bean)
Write the bean properties.void
writeBinary(InputStream is, int length)
Write a binary field.void
writeBinaryField(String name, byte[] value)
Write a binary field.void
writeBoolean(boolean value)
Write a boolean value (typically inside a list).void
writeBooleanField(String name, boolean value)
Write a boolean field.void
writeEndArray()
Write a array end.void
writeEndObject()
Write a object end.void
writeFieldName(String name)
Write the field name.void
writeNull()
Write a null value.void
writeNullField(String name)
Write a null value taking into account null value suppression.void
writeNumber(double value)
Write a double value.void
writeNumber(int value)
Write a int value (typically inside a list).void
writeNumber(long value)
Write a long value (typically inside a list).void
writeNumber(BigDecimal value)
Write a BigDecimal value (typically inside a list).void
writeNumberField(String name, double value)
Write a number field.void
writeNumberField(String name, float value)
Write a number field.void
writeNumberField(String name, int value)
Write a number field.void
writeNumberField(String name, long value)
Write a number field.void
writeNumberField(String name, short value)
Write a number field.void
writeNumberField(String name, BigDecimal value)
Write a number field.void
writeRaw(String text)
Method that will force generator to copy input text verbatim with no modifications (including that no escaping is done and no separators are added even if context [array, object] would otherwise require such).void
writeRawValue(String text)
Method that will force generator to copy input text verbatim without any modifications, but assuming it must constitute a single legal JSON value (number, string, boolean, null, Array or List).void
writeStartArray()
Write a array start.void
writeStartArray(String key)
Write a field name followed by array start.void
writeStartObject()
Write a object start.void
writeStartObject(String key)
Write a field name followed by object start.void
writeString(String value)
Write a string value (typically inside a list).void
writeStringField(String name, String value)
Write a sting field.void
writeValueUsingObjectMapper(String name, Object value)
Write value using underlying Jaskson object mapper if available.
-
-
-
Constructor Detail
-
WriteJson
public WriteJson(SpiEbeanServer server, com.fasterxml.jackson.core.JsonGenerator generator, FetchPath fetchPath, Map<String,JsonWriteBeanVisitor<?>> visitors, Object objectMapper, JsonConfig.Include include)
Construct for full bean use (normal).
-
WriteJson
public WriteJson(com.fasterxml.jackson.core.JsonGenerator generator, JsonConfig.Include include)
Construct for Json scalar use.
-
-
Method Detail
-
isIncludeNull
public boolean isIncludeNull()
Return true if null values should be included in JSON output.- Specified by:
isIncludeNull
in interfaceJsonWriter
-
isIncludeEmpty
public boolean isIncludeEmpty()
Return true if empty collections should be included in the JSON output.- Specified by:
isIncludeEmpty
in interfaceJsonWriter
-
gen
public com.fasterxml.jackson.core.JsonGenerator gen()
Description copied from interface:JsonWriter
Return the Jackson core JsonGenerator.- Specified by:
gen
in interfaceJsonWriter
-
flush
public void flush() throws IOException
Description copied from interface:SpiJsonWriter
Flush the buffer.- Specified by:
flush
in interfaceSpiJsonWriter
- Throws:
IOException
-
writeStartObject
public void writeStartObject(String key)
Description copied from interface:JsonWriter
Write a field name followed by object start.- Specified by:
writeStartObject
in interfaceJsonWriter
-
writeStartObject
public void writeStartObject()
Description copied from interface:JsonWriter
Write a object start.- Specified by:
writeStartObject
in interfaceJsonWriter
-
writeEndObject
public void writeEndObject()
Description copied from interface:JsonWriter
Write a object end.- Specified by:
writeEndObject
in interfaceJsonWriter
-
writeStartArray
public void writeStartArray(String key)
Description copied from interface:JsonWriter
Write a field name followed by array start.- Specified by:
writeStartArray
in interfaceJsonWriter
-
writeStartArray
public void writeStartArray()
Description copied from interface:JsonWriter
Write a array start.- Specified by:
writeStartArray
in interfaceJsonWriter
-
writeEndArray
public void writeEndArray()
Description copied from interface:JsonWriter
Write a array end.- Specified by:
writeEndArray
in interfaceJsonWriter
-
writeRaw
public void writeRaw(String text)
Description copied from interface:JsonWriter
Method that will force generator to copy input text verbatim with no modifications (including that no escaping is done and no separators are added even if context [array, object] would otherwise require such). If such separators are desired, useJsonWriter.writeRawValue(String)
instead.- Specified by:
writeRaw
in interfaceJsonWriter
-
writeRawValue
public void writeRawValue(String text)
Description copied from interface:JsonWriter
Method that will force generator to copy input text verbatim without any modifications, but assuming it must constitute a single legal JSON value (number, string, boolean, null, Array or List). Assuming this, proper separators are added if and as needed (comma or colon), and generator state updated to reflect this.- Specified by:
writeRawValue
in interfaceJsonWriter
-
writeFieldName
public void writeFieldName(String name)
Description copied from interface:JsonWriter
Write the field name.- Specified by:
writeFieldName
in interfaceJsonWriter
-
writeNullField
public void writeNullField(String name)
Description copied from interface:JsonWriter
Write a null value taking into account null value suppression.- Specified by:
writeNullField
in interfaceJsonWriter
-
writeNumberField
public void writeNumberField(String name, long value)
Description copied from interface:JsonWriter
Write a number field.- Specified by:
writeNumberField
in interfaceJsonWriter
-
writeNumberField
public void writeNumberField(String name, double value)
Description copied from interface:JsonWriter
Write a number field.- Specified by:
writeNumberField
in interfaceJsonWriter
-
writeNumberField
public void writeNumberField(String name, int value)
Description copied from interface:JsonWriter
Write a number field.- Specified by:
writeNumberField
in interfaceJsonWriter
-
writeNumberField
public void writeNumberField(String name, short value)
Description copied from interface:JsonWriter
Write a number field.- Specified by:
writeNumberField
in interfaceJsonWriter
-
writeNumberField
public void writeNumberField(String name, float value)
Description copied from interface:JsonWriter
Write a number field.- Specified by:
writeNumberField
in interfaceJsonWriter
-
writeNumberField
public void writeNumberField(String name, BigDecimal value)
Description copied from interface:JsonWriter
Write a number field.- Specified by:
writeNumberField
in interfaceJsonWriter
-
writeStringField
public void writeStringField(String name, String value)
Description copied from interface:JsonWriter
Write a sting field.- Specified by:
writeStringField
in interfaceJsonWriter
-
writeBinary
public void writeBinary(InputStream is, int length)
Description copied from interface:JsonWriter
Write a binary field.- Specified by:
writeBinary
in interfaceJsonWriter
-
writeBinaryField
public void writeBinaryField(String name, byte[] value)
Description copied from interface:JsonWriter
Write a binary field.- Specified by:
writeBinaryField
in interfaceJsonWriter
-
writeBooleanField
public void writeBooleanField(String name, boolean value)
Description copied from interface:JsonWriter
Write a boolean field.- Specified by:
writeBooleanField
in interfaceJsonWriter
-
writeBoolean
public void writeBoolean(boolean value)
Description copied from interface:JsonWriter
Write a boolean value (typically inside a list).- Specified by:
writeBoolean
in interfaceJsonWriter
-
writeString
public void writeString(String value)
Description copied from interface:JsonWriter
Write a string value (typically inside a list).- Specified by:
writeString
in interfaceJsonWriter
-
writeNumber
public void writeNumber(int value)
Description copied from interface:JsonWriter
Write a int value (typically inside a list).- Specified by:
writeNumber
in interfaceJsonWriter
-
writeNumber
public void writeNumber(long value)
Description copied from interface:JsonWriter
Write a long value (typically inside a list).- Specified by:
writeNumber
in interfaceJsonWriter
-
writeNumber
public void writeNumber(double value)
Description copied from interface:JsonWriter
Write a double value.- Specified by:
writeNumber
in interfaceJsonWriter
-
writeNumber
public void writeNumber(BigDecimal value)
Description copied from interface:JsonWriter
Write a BigDecimal value (typically inside a list).- Specified by:
writeNumber
in interfaceJsonWriter
-
writeNull
public void writeNull()
Description copied from interface:JsonWriter
Write a null value.- Specified by:
writeNull
in interfaceJsonWriter
-
isParentBean
public boolean isParentBean(Object bean)
Description copied from interface:SpiJsonWriter
Return true if the value is a parent bean.- Specified by:
isParentBean
in interfaceSpiJsonWriter
-
pushParentBeanMany
public void pushParentBeanMany(EntityBean parentBean)
Description copied from interface:SpiJsonWriter
Push the parent bean of a ToMany.- Specified by:
pushParentBeanMany
in interfaceSpiJsonWriter
-
popParentBeanMany
public void popParentBeanMany()
Description copied from interface:SpiJsonWriter
Pop the parent of a ToMany.- Specified by:
popParentBeanMany
in interfaceSpiJsonWriter
-
beginAssocOne
public void beginAssocOne(String key, EntityBean bean)
Description copied from interface:SpiJsonWriter
Start an assoc one path.- Specified by:
beginAssocOne
in interfaceSpiJsonWriter
-
endAssocOne
public void endAssocOne()
Description copied from interface:SpiJsonWriter
End an assoc one path.- Specified by:
endAssocOne
in interfaceSpiJsonWriter
-
beginAssocMany
public void beginAssocMany(String key)
Description copied from interface:SpiJsonWriter
Start a Many.- Specified by:
beginAssocMany
in interfaceSpiJsonWriter
-
endAssocMany
public void endAssocMany()
Description copied from interface:SpiJsonWriter
End a Many.- Specified by:
endAssocMany
in interfaceSpiJsonWriter
-
beginAssocManyMap
public void beginAssocManyMap(String key, boolean elementCollection)
Description copied from interface:SpiJsonWriter
Start a Many.- Specified by:
beginAssocManyMap
in interfaceSpiJsonWriter
-
endAssocManyMap
public void endAssocManyMap(boolean elementCollection)
Description copied from interface:SpiJsonWriter
End a Many.- Specified by:
endAssocManyMap
in interfaceSpiJsonWriter
-
writeBean
public <T> void writeBean(BeanDescriptor<T> desc, EntityBean bean)
Description copied from interface:SpiJsonWriter
Write the bean properties.- Specified by:
writeBean
in interfaceSpiJsonWriter
-
writeValueUsingObjectMapper
public void writeValueUsingObjectMapper(String name, Object value)
Description copied from interface:SpiJsonWriter
Write value using underlying Jaskson object mapper if available.- Specified by:
writeValueUsingObjectMapper
in interfaceSpiJsonWriter
-
includeMany
public Boolean includeMany(String key)
Description copied from interface:SpiJsonWriter
Return true if the many property should be included.- Specified by:
includeMany
in interfaceSpiJsonWriter
-
toJson
public void toJson(String name, Collection<?> c)
Description copied from interface:SpiJsonWriter
Write the collection.- Specified by:
toJson
in interfaceSpiJsonWriter
-
-