Package io.protostuff
Class JsonOutput
java.lang.Object
io.protostuff.JsonOutput
- All Implemented Interfaces:
Output
,StatefulOutput
An output used for writing data with json format.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final boolean
private final com.fasterxml.jackson.core.JsonGenerator
private int
private boolean
private final boolean
private Schema
<?> -
Constructor Summary
ConstructorsConstructorDescriptionJsonOutput
(com.fasterxml.jackson.core.JsonGenerator generator) JsonOutput
(com.fasterxml.jackson.core.JsonGenerator generator, boolean numeric) JsonOutput
(com.fasterxml.jackson.core.JsonGenerator generator, boolean numeric, Schema<?> schema) -
Method Summary
Modifier and TypeMethodDescriptionint
Gets the last field number written.boolean
Returns true if the last written field was a repeated field.boolean
Returns whether the incoming messages' field names are numeric.reset()
Resets this output for re-use.void
updateLast
(Schema<?> schema, Schema<?> lastSchema) Updates the schema iflastSchema
was indeed the last schema used.Before serializing a message/object tied to a schema, this should be called.void
writeBool
(int fieldNumber, boolean value, boolean repeated) Writes a boolean field.void
writeByteArray
(int fieldNumber, byte[] value, boolean repeated) Writes a byte array field.void
writeByteRange
(boolean utf8String, int fieldNumber, byte[] value, int offset, int length, boolean repeated) Writes a binary or a pre-encoded utf8 string.void
writeBytes
(int fieldNumber, ByteString value, boolean repeated) Writes a ByteString(wraps byte array) field.void
writeBytes
(int fieldNumber, ByteBuffer value, boolean repeated) Writes a ByteBuffer field.void
writeDouble
(int fieldNumber, double value, boolean repeated) Writes a double field.void
writeEnum
(int fieldNumber, int value, boolean repeated) Writes a enum(its number) field.void
writeFixed32
(int fieldNumber, int value, boolean repeated) Writes a fixed int(4 bytes) field.void
writeFixed64
(int fieldNumber, long value, boolean repeated) Writes a fixed long(8 bytes) field.void
writeFloat
(int fieldNumber, float value, boolean repeated) Writes a float field.void
writeInt32
(int fieldNumber, int value, boolean repeated) Writes a variable int field.void
writeInt64
(int fieldNumber, long value, boolean repeated) Writes a variable long field.<T> void
writeObject
(int fieldNumber, T value, Schema<T> schema, boolean repeated) Writes an object(using its schema) field.void
writeSFixed32
(int fieldNumber, int value, boolean repeated) Writes a signed+fixed int(4 bytes) field.void
writeSFixed64
(int fieldNumber, long value, boolean repeated) Writes a signed+fixed long(8 bytes) field.void
writeSInt32
(int fieldNumber, int value, boolean repeated) Writes a signed int field.void
writeSInt64
(int fieldNumber, long value, boolean repeated) Writes a signed long field.void
writeString
(int fieldNumber, CharSequence value, boolean repeated) Writes a String field.void
writeUInt32
(int fieldNumber, int value, boolean repeated) Writes an unsigned int field.void
writeUInt64
(int fieldNumber, long value, boolean repeated) Writes an unsigned long field.
-
Field Details
-
FIX_UNSIGNED_INT
public static final boolean FIX_UNSIGNED_INT -
generator
private final com.fasterxml.jackson.core.JsonGenerator generator -
schema
-
numeric
private final boolean numeric -
lastRepeated
private boolean lastRepeated -
lastNumber
private int lastNumber
-
-
Constructor Details
-
JsonOutput
public JsonOutput(com.fasterxml.jackson.core.JsonGenerator generator) -
JsonOutput
public JsonOutput(com.fasterxml.jackson.core.JsonGenerator generator, boolean numeric) -
JsonOutput
public JsonOutput(com.fasterxml.jackson.core.JsonGenerator generator, boolean numeric, Schema<?> schema)
-
-
Method Details
-
reset
Resets this output for re-use. -
use
Before serializing a message/object tied to a schema, this should be called. This also resets the internal state of this output. -
isNumeric
public boolean isNumeric()Returns whether the incoming messages' field names are numeric. -
getLastNumber
public int getLastNumber()Gets the last field number written. -
isLastRepeated
public boolean isLastRepeated()Returns true if the last written field was a repeated field. -
updateLast
Description copied from interface:StatefulOutput
Updates the schema iflastSchema
was indeed the last schema used.- Specified by:
updateLast
in interfaceStatefulOutput
-
writeBool
Description copied from interface:Output
Writes a boolean field.- Specified by:
writeBool
in interfaceOutput
- Throws:
IOException
-
writeByteArray
Description copied from interface:Output
Writes a byte array field.- Specified by:
writeByteArray
in interfaceOutput
- Throws:
IOException
-
writeByteRange
public void writeByteRange(boolean utf8String, int fieldNumber, byte[] value, int offset, int length, boolean repeated) throws IOException Description copied from interface:Output
Writes a binary or a pre-encoded utf8 string.- Specified by:
writeByteRange
in interfaceOutput
- Throws:
IOException
-
writeBytes
Description copied from interface:Output
Writes a ByteString(wraps byte array) field.- Specified by:
writeBytes
in interfaceOutput
- Throws:
IOException
-
writeDouble
Description copied from interface:Output
Writes a double field.- Specified by:
writeDouble
in interfaceOutput
- Throws:
IOException
-
writeEnum
Description copied from interface:Output
Writes a enum(its number) field.- Specified by:
writeEnum
in interfaceOutput
- Throws:
IOException
-
writeFixed32
Description copied from interface:Output
Writes a fixed int(4 bytes) field.- Specified by:
writeFixed32
in interfaceOutput
- Throws:
IOException
-
writeFixed64
Description copied from interface:Output
Writes a fixed long(8 bytes) field.- Specified by:
writeFixed64
in interfaceOutput
- Throws:
IOException
-
writeFloat
Description copied from interface:Output
Writes a float field.- Specified by:
writeFloat
in interfaceOutput
- Throws:
IOException
-
writeInt32
Description copied from interface:Output
Writes a variable int field.- Specified by:
writeInt32
in interfaceOutput
- Throws:
IOException
-
writeInt64
Description copied from interface:Output
Writes a variable long field.- Specified by:
writeInt64
in interfaceOutput
- Throws:
IOException
-
writeSFixed32
Description copied from interface:Output
Writes a signed+fixed int(4 bytes) field.- Specified by:
writeSFixed32
in interfaceOutput
- Throws:
IOException
-
writeSFixed64
Description copied from interface:Output
Writes a signed+fixed long(8 bytes) field.- Specified by:
writeSFixed64
in interfaceOutput
- Throws:
IOException
-
writeSInt32
Description copied from interface:Output
Writes a signed int field.- Specified by:
writeSInt32
in interfaceOutput
- Throws:
IOException
-
writeSInt64
Description copied from interface:Output
Writes a signed long field.- Specified by:
writeSInt64
in interfaceOutput
- Throws:
IOException
-
writeString
Description copied from interface:Output
Writes a String field.- Specified by:
writeString
in interfaceOutput
- Throws:
IOException
-
writeUInt32
Description copied from interface:Output
Writes an unsigned int field.- Specified by:
writeUInt32
in interfaceOutput
- Throws:
IOException
-
writeUInt64
Description copied from interface:Output
Writes an unsigned long field.- Specified by:
writeUInt64
in interfaceOutput
- Throws:
IOException
-
writeObject
public <T> void writeObject(int fieldNumber, T value, Schema<T> schema, boolean repeated) throws IOException Description copied from interface:Output
Writes an object(using its schema) field.- Specified by:
writeObject
in interfaceOutput
- Throws:
IOException
-
writeBytes
Writes a ByteBuffer field.- Specified by:
writeBytes
in interfaceOutput
- Throws:
IOException
-