Package io.protostuff

Class JsonOutput

    • Constructor Summary

      Constructors 
      Constructor Description
      JsonOutput​(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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int getLastNumber()
      Gets the last field number written.
      boolean isLastRepeated()
      Returns true if the last written field was a repeated field.
      boolean isNumeric()
      Returns whether the incoming messages' field names are numeric.
      JsonOutput reset()
      Resets this output for re-use.
      void updateLast​(Schema<?> schema, Schema<?> lastSchema)
      Updates the schema if lastSchema was indeed the last schema used.
      JsonOutput use​(Schema<?> schema)
      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, java.nio.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, java.lang.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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • FIX_UNSIGNED_INT

        public static final boolean FIX_UNSIGNED_INT
      • generator

        private final com.fasterxml.jackson.core.JsonGenerator generator
      • schema

        private Schema<?> schema
      • numeric

        private final boolean numeric
      • lastRepeated

        private boolean lastRepeated
      • lastNumber

        private int lastNumber
    • Constructor Detail

      • 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 Detail

      • reset

        public JsonOutput reset()
        Resets this output for re-use.
      • use

        public JsonOutput use​(Schema<?> schema)
        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

        public void updateLast​(Schema<?> schema,
                               Schema<?> lastSchema)
        Description copied from interface: StatefulOutput
        Updates the schema if lastSchema was indeed the last schema used.
        Specified by:
        updateLast in interface StatefulOutput
      • writeBool

        public void writeBool​(int fieldNumber,
                              boolean value,
                              boolean repeated)
                       throws java.io.IOException
        Description copied from interface: Output
        Writes a boolean field.
        Specified by:
        writeBool in interface Output
        Throws:
        java.io.IOException
      • writeByteArray

        public void writeByteArray​(int fieldNumber,
                                   byte[] value,
                                   boolean repeated)
                            throws java.io.IOException
        Description copied from interface: Output
        Writes a byte array field.
        Specified by:
        writeByteArray in interface Output
        Throws:
        java.io.IOException
      • writeByteRange

        public void writeByteRange​(boolean utf8String,
                                   int fieldNumber,
                                   byte[] value,
                                   int offset,
                                   int length,
                                   boolean repeated)
                            throws java.io.IOException
        Description copied from interface: Output
        Writes a binary or a pre-encoded utf8 string.
        Specified by:
        writeByteRange in interface Output
        Throws:
        java.io.IOException
      • writeBytes

        public void writeBytes​(int fieldNumber,
                               ByteString value,
                               boolean repeated)
                        throws java.io.IOException
        Description copied from interface: Output
        Writes a ByteString(wraps byte array) field.
        Specified by:
        writeBytes in interface Output
        Throws:
        java.io.IOException
      • writeDouble

        public void writeDouble​(int fieldNumber,
                                double value,
                                boolean repeated)
                         throws java.io.IOException
        Description copied from interface: Output
        Writes a double field.
        Specified by:
        writeDouble in interface Output
        Throws:
        java.io.IOException
      • writeEnum

        public void writeEnum​(int fieldNumber,
                              int value,
                              boolean repeated)
                       throws java.io.IOException
        Description copied from interface: Output
        Writes a enum(its number) field.
        Specified by:
        writeEnum in interface Output
        Throws:
        java.io.IOException
      • writeFixed32

        public void writeFixed32​(int fieldNumber,
                                 int value,
                                 boolean repeated)
                          throws java.io.IOException
        Description copied from interface: Output
        Writes a fixed int(4 bytes) field.
        Specified by:
        writeFixed32 in interface Output
        Throws:
        java.io.IOException
      • writeFixed64

        public void writeFixed64​(int fieldNumber,
                                 long value,
                                 boolean repeated)
                          throws java.io.IOException
        Description copied from interface: Output
        Writes a fixed long(8 bytes) field.
        Specified by:
        writeFixed64 in interface Output
        Throws:
        java.io.IOException
      • writeFloat

        public void writeFloat​(int fieldNumber,
                               float value,
                               boolean repeated)
                        throws java.io.IOException
        Description copied from interface: Output
        Writes a float field.
        Specified by:
        writeFloat in interface Output
        Throws:
        java.io.IOException
      • writeInt32

        public void writeInt32​(int fieldNumber,
                               int value,
                               boolean repeated)
                        throws java.io.IOException
        Description copied from interface: Output
        Writes a variable int field.
        Specified by:
        writeInt32 in interface Output
        Throws:
        java.io.IOException
      • writeInt64

        public void writeInt64​(int fieldNumber,
                               long value,
                               boolean repeated)
                        throws java.io.IOException
        Description copied from interface: Output
        Writes a variable long field.
        Specified by:
        writeInt64 in interface Output
        Throws:
        java.io.IOException
      • writeSFixed32

        public void writeSFixed32​(int fieldNumber,
                                  int value,
                                  boolean repeated)
                           throws java.io.IOException
        Description copied from interface: Output
        Writes a signed+fixed int(4 bytes) field.
        Specified by:
        writeSFixed32 in interface Output
        Throws:
        java.io.IOException
      • writeSFixed64

        public void writeSFixed64​(int fieldNumber,
                                  long value,
                                  boolean repeated)
                           throws java.io.IOException
        Description copied from interface: Output
        Writes a signed+fixed long(8 bytes) field.
        Specified by:
        writeSFixed64 in interface Output
        Throws:
        java.io.IOException
      • writeSInt32

        public void writeSInt32​(int fieldNumber,
                                int value,
                                boolean repeated)
                         throws java.io.IOException
        Description copied from interface: Output
        Writes a signed int field.
        Specified by:
        writeSInt32 in interface Output
        Throws:
        java.io.IOException
      • writeSInt64

        public void writeSInt64​(int fieldNumber,
                                long value,
                                boolean repeated)
                         throws java.io.IOException
        Description copied from interface: Output
        Writes a signed long field.
        Specified by:
        writeSInt64 in interface Output
        Throws:
        java.io.IOException
      • writeString

        public void writeString​(int fieldNumber,
                                java.lang.CharSequence value,
                                boolean repeated)
                         throws java.io.IOException
        Description copied from interface: Output
        Writes a String field.
        Specified by:
        writeString in interface Output
        Throws:
        java.io.IOException
      • writeUInt32

        public void writeUInt32​(int fieldNumber,
                                int value,
                                boolean repeated)
                         throws java.io.IOException
        Description copied from interface: Output
        Writes an unsigned int field.
        Specified by:
        writeUInt32 in interface Output
        Throws:
        java.io.IOException
      • writeUInt64

        public void writeUInt64​(int fieldNumber,
                                long value,
                                boolean repeated)
                         throws java.io.IOException
        Description copied from interface: Output
        Writes an unsigned long field.
        Specified by:
        writeUInt64 in interface Output
        Throws:
        java.io.IOException
      • writeObject

        public <T> void writeObject​(int fieldNumber,
                                    T value,
                                    Schema<T> schema,
                                    boolean repeated)
                             throws java.io.IOException
        Description copied from interface: Output
        Writes an object(using its schema) field.
        Specified by:
        writeObject in interface Output
        Throws:
        java.io.IOException
      • writeBytes

        public void writeBytes​(int fieldNumber,
                               java.nio.ByteBuffer value,
                               boolean repeated)
                        throws java.io.IOException
        Writes a ByteBuffer field.
        Specified by:
        writeBytes in interface Output
        Throws:
        java.io.IOException