Class CBORGenerator

  • All Implemented Interfaces:
    com.fasterxml.jackson.core.Versioned, java.io.Closeable, java.io.Flushable, java.lang.AutoCloseable

    public class CBORGenerator
    extends com.fasterxml.jackson.core.base.GeneratorBase
    JsonGenerator implementation that writes CBOR encoded content.
    Author:
    Tatu Saloranta
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  CBORGenerator.Feature
      Enumeration that defines all togglable features for CBOR generator.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected boolean _bufferRecyclable
      Flag that indicates whether the output buffer is recycable (and needs to be returned to recycler once we are done) or not.
      protected int _bytesWritten
      Let's keep track of how many bytes have been output, may prove useful when debugging.
      protected boolean _cfgMinimalInts  
      protected char[] _charBuffer
      Intermediate buffer in which characters of a String are copied before being encoded.
      protected int _charBufferLength  
      protected int _formatFeatures
      Bit flag composed of bits that indicate which CBORGenerator.Features are enabled.
      protected com.fasterxml.jackson.core.io.IOContext _ioContext  
      protected java.io.OutputStream _out  
      protected byte[] _outputBuffer
      Intermediate buffer in which contents are buffered before being written using _out.
      protected int _outputEnd
      Offset to index after the last valid index in _outputBuffer.
      protected int _outputTail
      Pointer to the next available byte in _outputBuffer
      • Fields inherited from class com.fasterxml.jackson.core.base.GeneratorBase

        _cfgNumbersAsStrings, _closed, _features, _objectCodec, _writeContext, DERIVED_FEATURES_MASK, MAX_BIG_DECIMAL_SCALE, SURR1_FIRST, SURR1_LAST, SURR2_FIRST, SURR2_LAST, WRITE_BINARY, WRITE_BOOLEAN, WRITE_NULL, WRITE_NUMBER, WRITE_RAW, WRITE_STRING
      • Fields inherited from class com.fasterxml.jackson.core.JsonGenerator

        _cfgPrettyPrinter
    • Constructor Summary

      Constructors 
      Constructor Description
      CBORGenerator​(com.fasterxml.jackson.core.io.IOContext ctxt, int stdFeatures, int formatFeatures, com.fasterxml.jackson.core.ObjectCodec codec, java.io.OutputStream out)  
      CBORGenerator​(com.fasterxml.jackson.core.io.IOContext ctxt, int stdFeatures, int formatFeatures, com.fasterxml.jackson.core.ObjectCodec codec, java.io.OutputStream out, byte[] outputBuffer, int offset, boolean bufferRecyclable)
      Alternative constructor that may be used to feed partially initialized content.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void _ensureSpace​(int needed)  
      protected void _flushBuffer()  
      protected java.lang.UnsupportedOperationException _notSupported()  
      protected void _releaseBuffers()  
      protected void _verifyValueWrite​(java.lang.String typeMsg)  
      protected void _writeChunkedString​(char[] text, int offset, int len)  
      protected void _writeString​(char[] text, int offset, int len)  
      protected void _writeString​(java.lang.String name)  
      boolean canWriteBinaryNatively()  
      void close()  
      CBORGenerator configure​(CBORGenerator.Feature f, boolean state)  
      void copyCurrentEvent​(com.fasterxml.jackson.core.JsonParser p)
      Specialize JsonGenerator.copyCurrentEvent(com.fasterxml.jackson.core.JsonParser) to handle tags.
      void copyCurrentStructure​(com.fasterxml.jackson.core.JsonParser p)
      Specialize JsonGenerator.copyCurrentStructure(com.fasterxml.jackson.core.JsonParser) to handle tags.
      CBORGenerator disable​(CBORGenerator.Feature f)  
      CBORGenerator enable​(CBORGenerator.Feature f)  
      void flush()  
      int getFormatFeatures()  
      int getOutputBuffered()  
      java.lang.Object getOutputTarget()  
      boolean isEnabled​(CBORGenerator.Feature f)  
      protected void maybeCopyTag​(com.fasterxml.jackson.core.JsonParser p)  
      com.fasterxml.jackson.core.JsonGenerator overrideFormatFeatures​(int values, int mask)  
      com.fasterxml.jackson.core.JsonGenerator overrideStdFeatures​(int values, int mask)  
      com.fasterxml.jackson.core.JsonGenerator setPrettyPrinter​(com.fasterxml.jackson.core.PrettyPrinter pp)
      No way (or need) to indent anything, so let's block any attempts.
      com.fasterxml.jackson.core.JsonGenerator useDefaultPrettyPrinter()
      No way (or need) to indent anything, so let's block any attempts.
      com.fasterxml.jackson.core.Version version()  
      void writeBinary​(com.fasterxml.jackson.core.Base64Variant b64variant, byte[] data, int offset, int len)  
      int writeBinary​(com.fasterxml.jackson.core.Base64Variant b64variant, java.io.InputStream data, int dataLength)  
      int writeBinary​(java.io.InputStream data, int dataLength)  
      void writeBoolean​(boolean state)  
      void writeBytes​(byte[] data, int offset, int len)
      Method for directly inserting specified bytes in output at current position.
      void writeEndArray()  
      void writeEndObject()  
      void writeFieldName​(com.fasterxml.jackson.core.SerializableString name)  
      void writeFieldName​(java.lang.String name)  
      void writeNull()  
      void writeNumber​(double d)  
      void writeNumber​(float f)  
      void writeNumber​(int i)  
      void writeNumber​(long l)  
      void writeNumber​(java.lang.String encodedValue)  
      void writeNumber​(java.math.BigDecimal dec)  
      void writeNumber​(java.math.BigInteger v)  
      void writeRaw​(byte b)
      Method for directly inserting specified byte in output at current position.
      void writeRaw​(char c)  
      void writeRaw​(char[] text, int offset, int len)  
      void writeRaw​(java.lang.String text)  
      void writeRaw​(java.lang.String text, int offset, int len)  
      void writeRawUTF8String​(byte[] raw, int offset, int len)  
      void writeRawValue​(char[] text, int offset, int len)  
      void writeRawValue​(java.lang.String text)  
      void writeRawValue​(java.lang.String text, int offset, int len)  
      void writeStartArray()  
      void writeStartArray​(int size)  
      void writeStartObject()  
      void writeString​(char[] text, int offset, int len)  
      void writeString​(com.fasterxml.jackson.core.SerializableString sstr)  
      void writeString​(java.lang.String text)  
      void writeStringField​(java.lang.String fieldName, java.lang.String value)  
      void writeTag​(int tagId)
      Method for writing out an explicit CBOR Tag.
      void writeUTF8String​(byte[] text, int offset, int len)  
      • Methods inherited from class com.fasterxml.jackson.core.base.GeneratorBase

        _asString, _checkStdFeatureChanges, _constructDefaultPrettyPrinter, _decodeSurrogate, disable, enable, getCodec, getCurrentValue, getFeatureMask, getOutputContext, isClosed, isEnabled, setCodec, setCurrentValue, setFeatureMask, writeObject, writeRawValue, writeStartObject, writeTree
      • Methods inherited from class com.fasterxml.jackson.core.JsonGenerator

        _copyCurrentContents, _reportError, _reportUnsupportedOperation, _throwInternal, _verifyOffsets, _writeSimpleObject, canOmitFields, canUseSchema, canWriteFormattedNumbers, canWriteObjectId, canWriteTypeId, configure, getCharacterEscapes, getHighestEscapedChar, getPrettyPrinter, getSchema, isEnabled, setCharacterEscapes, setHighestNonEscapedChar, setRootValueSeparator, setSchema, writeArray, writeArray, writeArray, writeArrayFieldStart, writeBinary, writeBinary, writeBinaryField, writeBooleanField, writeEmbeddedObject, writeFieldId, writeNullField, writeNumber, writeNumberField, writeNumberField, writeNumberField, writeNumberField, writeNumberField, writeObjectField, writeObjectFieldStart, writeObjectId, writeObjectRef, writeOmittedField, writeRaw, writeStartArray, writeStartArray, writeStartObject, writeString, writeTypeId, writeTypePrefix, writeTypeSuffix
      • Methods inherited from class java.lang.Object

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

      • _ioContext

        protected final com.fasterxml.jackson.core.io.IOContext _ioContext
      • _out

        protected final java.io.OutputStream _out
      • _formatFeatures

        protected int _formatFeatures
        Bit flag composed of bits that indicate which CBORGenerator.Features are enabled.
      • _cfgMinimalInts

        protected boolean _cfgMinimalInts
      • _outputBuffer

        protected byte[] _outputBuffer
        Intermediate buffer in which contents are buffered before being written using _out.
      • _outputTail

        protected int _outputTail
        Pointer to the next available byte in _outputBuffer
      • _outputEnd

        protected final int _outputEnd
        Offset to index after the last valid index in _outputBuffer. Typically same as length of the buffer.
      • _charBuffer

        protected char[] _charBuffer
        Intermediate buffer in which characters of a String are copied before being encoded.
      • _charBufferLength

        protected final int _charBufferLength
      • _bytesWritten

        protected int _bytesWritten
        Let's keep track of how many bytes have been output, may prove useful when debugging. This does not include bytes buffered in the output buffer, just bytes that have been written using underlying stream writer.
      • _bufferRecyclable

        protected boolean _bufferRecyclable
        Flag that indicates whether the output buffer is recycable (and needs to be returned to recycler once we are done) or not.
    • Constructor Detail

      • CBORGenerator

        public CBORGenerator​(com.fasterxml.jackson.core.io.IOContext ctxt,
                             int stdFeatures,
                             int formatFeatures,
                             com.fasterxml.jackson.core.ObjectCodec codec,
                             java.io.OutputStream out)
      • CBORGenerator

        public CBORGenerator​(com.fasterxml.jackson.core.io.IOContext ctxt,
                             int stdFeatures,
                             int formatFeatures,
                             com.fasterxml.jackson.core.ObjectCodec codec,
                             java.io.OutputStream out,
                             byte[] outputBuffer,
                             int offset,
                             boolean bufferRecyclable)
        Alternative constructor that may be used to feed partially initialized content.
        Parameters:
        outputBuffer - Buffer to use for output before flushing to the underlying stream
        offset - Offset pointing past already buffered content; that is, number of bytes of valid content to output, within buffer.
    • Method Detail

      • version

        public com.fasterxml.jackson.core.Version version()
        Specified by:
        version in interface com.fasterxml.jackson.core.Versioned
        Overrides:
        version in class com.fasterxml.jackson.core.base.GeneratorBase
      • canWriteBinaryNatively

        public boolean canWriteBinaryNatively()
        Overrides:
        canWriteBinaryNatively in class com.fasterxml.jackson.core.JsonGenerator
      • useDefaultPrettyPrinter

        public com.fasterxml.jackson.core.JsonGenerator useDefaultPrettyPrinter()
        No way (or need) to indent anything, so let's block any attempts. (should we throw an exception instead?)
        Overrides:
        useDefaultPrettyPrinter in class com.fasterxml.jackson.core.base.GeneratorBase
      • setPrettyPrinter

        public com.fasterxml.jackson.core.JsonGenerator setPrettyPrinter​(com.fasterxml.jackson.core.PrettyPrinter pp)
        No way (or need) to indent anything, so let's block any attempts. (should we throw an exception instead?)
        Overrides:
        setPrettyPrinter in class com.fasterxml.jackson.core.JsonGenerator
      • getOutputTarget

        public java.lang.Object getOutputTarget()
        Overrides:
        getOutputTarget in class com.fasterxml.jackson.core.JsonGenerator
      • getOutputBuffered

        public int getOutputBuffered()
        Overrides:
        getOutputBuffered in class com.fasterxml.jackson.core.JsonGenerator
      • getFormatFeatures

        public int getFormatFeatures()
        Overrides:
        getFormatFeatures in class com.fasterxml.jackson.core.JsonGenerator
      • overrideStdFeatures

        public com.fasterxml.jackson.core.JsonGenerator overrideStdFeatures​(int values,
                                                                            int mask)
        Overrides:
        overrideStdFeatures in class com.fasterxml.jackson.core.base.GeneratorBase
      • overrideFormatFeatures

        public com.fasterxml.jackson.core.JsonGenerator overrideFormatFeatures​(int values,
                                                                               int mask)
        Overrides:
        overrideFormatFeatures in class com.fasterxml.jackson.core.JsonGenerator
      • writeFieldName

        public final void writeFieldName​(java.lang.String name)
                                  throws java.io.IOException
        Specified by:
        writeFieldName in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • writeFieldName

        public final void writeFieldName​(com.fasterxml.jackson.core.SerializableString name)
                                  throws java.io.IOException
        Overrides:
        writeFieldName in class com.fasterxml.jackson.core.base.GeneratorBase
        Throws:
        java.io.IOException
      • writeStringField

        public final void writeStringField​(java.lang.String fieldName,
                                           java.lang.String value)
                                    throws java.io.IOException
        Overrides:
        writeStringField in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • copyCurrentEvent

        public void copyCurrentEvent​(com.fasterxml.jackson.core.JsonParser p)
                              throws java.io.IOException
        Specialize JsonGenerator.copyCurrentEvent(com.fasterxml.jackson.core.JsonParser) to handle tags.
        Overrides:
        copyCurrentEvent in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • copyCurrentStructure

        public void copyCurrentStructure​(com.fasterxml.jackson.core.JsonParser p)
                                  throws java.io.IOException
        Specialize JsonGenerator.copyCurrentStructure(com.fasterxml.jackson.core.JsonParser) to handle tags.
        Overrides:
        copyCurrentStructure in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • maybeCopyTag

        protected void maybeCopyTag​(com.fasterxml.jackson.core.JsonParser p)
                             throws java.io.IOException
        Throws:
        java.io.IOException
      • writeTag

        public void writeTag​(int tagId)
                      throws java.io.IOException
        Method for writing out an explicit CBOR Tag.
        Parameters:
        tagId - Positive integer (0 or higher)
        Throws:
        java.io.IOException
        Since:
        2.5
      • writeRaw

        public void writeRaw​(byte b)
                      throws java.io.IOException
        Method for directly inserting specified byte in output at current position.

        NOTE: only use this method if you really know what you are doing.

        Throws:
        java.io.IOException
      • writeBytes

        public void writeBytes​(byte[] data,
                               int offset,
                               int len)
                        throws java.io.IOException
        Method for directly inserting specified bytes in output at current position.

        NOTE: only use this method if you really know what you are doing.

        Throws:
        java.io.IOException
      • writeStartArray

        public final void writeStartArray()
                                   throws java.io.IOException
        Specified by:
        writeStartArray in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • writeStartArray

        public void writeStartArray​(int size)
                             throws java.io.IOException
        Overrides:
        writeStartArray in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • writeEndArray

        public final void writeEndArray()
                                 throws java.io.IOException
        Specified by:
        writeEndArray in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • writeStartObject

        public final void writeStartObject()
                                    throws java.io.IOException
        Specified by:
        writeStartObject in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • writeEndObject

        public final void writeEndObject()
                                  throws java.io.IOException
        Specified by:
        writeEndObject in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • writeString

        public void writeString​(java.lang.String text)
                         throws java.io.IOException,
                                com.fasterxml.jackson.core.JsonGenerationException
        Specified by:
        writeString in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
        com.fasterxml.jackson.core.JsonGenerationException
      • writeString

        public final void writeString​(com.fasterxml.jackson.core.SerializableString sstr)
                               throws java.io.IOException
        Overrides:
        writeString in class com.fasterxml.jackson.core.base.GeneratorBase
        Throws:
        java.io.IOException
      • writeString

        public void writeString​(char[] text,
                                int offset,
                                int len)
                         throws java.io.IOException
        Specified by:
        writeString in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • writeRawUTF8String

        public void writeRawUTF8String​(byte[] raw,
                                       int offset,
                                       int len)
                                throws java.io.IOException
        Specified by:
        writeRawUTF8String in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • writeUTF8String

        public final void writeUTF8String​(byte[] text,
                                          int offset,
                                          int len)
                                   throws java.io.IOException
        Specified by:
        writeUTF8String in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • writeRaw

        public void writeRaw​(java.lang.String text)
                      throws java.io.IOException
        Specified by:
        writeRaw in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • writeRaw

        public void writeRaw​(java.lang.String text,
                             int offset,
                             int len)
                      throws java.io.IOException
        Specified by:
        writeRaw in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • writeRaw

        public void writeRaw​(char[] text,
                             int offset,
                             int len)
                      throws java.io.IOException
        Specified by:
        writeRaw in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • writeRaw

        public void writeRaw​(char c)
                      throws java.io.IOException
        Specified by:
        writeRaw in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • writeRawValue

        public void writeRawValue​(java.lang.String text)
                           throws java.io.IOException
        Overrides:
        writeRawValue in class com.fasterxml.jackson.core.base.GeneratorBase
        Throws:
        java.io.IOException
      • writeRawValue

        public void writeRawValue​(java.lang.String text,
                                  int offset,
                                  int len)
                           throws java.io.IOException
        Overrides:
        writeRawValue in class com.fasterxml.jackson.core.base.GeneratorBase
        Throws:
        java.io.IOException
      • writeRawValue

        public void writeRawValue​(char[] text,
                                  int offset,
                                  int len)
                           throws java.io.IOException
        Overrides:
        writeRawValue in class com.fasterxml.jackson.core.base.GeneratorBase
        Throws:
        java.io.IOException
      • writeBinary

        public void writeBinary​(com.fasterxml.jackson.core.Base64Variant b64variant,
                                byte[] data,
                                int offset,
                                int len)
                         throws java.io.IOException
        Specified by:
        writeBinary in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • writeBinary

        public int writeBinary​(java.io.InputStream data,
                               int dataLength)
                        throws java.io.IOException
        Overrides:
        writeBinary in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • writeBinary

        public int writeBinary​(com.fasterxml.jackson.core.Base64Variant b64variant,
                               java.io.InputStream data,
                               int dataLength)
                        throws java.io.IOException
        Overrides:
        writeBinary in class com.fasterxml.jackson.core.base.GeneratorBase
        Throws:
        java.io.IOException
      • writeBoolean

        public void writeBoolean​(boolean state)
                          throws java.io.IOException
        Specified by:
        writeBoolean in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • writeNull

        public void writeNull()
                       throws java.io.IOException
        Specified by:
        writeNull in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • writeNumber

        public void writeNumber​(int i)
                         throws java.io.IOException
        Specified by:
        writeNumber in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • writeNumber

        public void writeNumber​(long l)
                         throws java.io.IOException
        Specified by:
        writeNumber in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • writeNumber

        public void writeNumber​(java.math.BigInteger v)
                         throws java.io.IOException
        Specified by:
        writeNumber in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • writeNumber

        public void writeNumber​(double d)
                         throws java.io.IOException
        Specified by:
        writeNumber in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • writeNumber

        public void writeNumber​(float f)
                         throws java.io.IOException
        Specified by:
        writeNumber in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • writeNumber

        public void writeNumber​(java.math.BigDecimal dec)
                         throws java.io.IOException
        Specified by:
        writeNumber in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • writeNumber

        public void writeNumber​(java.lang.String encodedValue)
                         throws java.io.IOException,
                                com.fasterxml.jackson.core.JsonGenerationException,
                                java.lang.UnsupportedOperationException
        Specified by:
        writeNumber in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
        com.fasterxml.jackson.core.JsonGenerationException
        java.lang.UnsupportedOperationException
      • _verifyValueWrite

        protected final void _verifyValueWrite​(java.lang.String typeMsg)
                                        throws java.io.IOException
        Specified by:
        _verifyValueWrite in class com.fasterxml.jackson.core.base.GeneratorBase
        Throws:
        java.io.IOException
      • flush

        public final void flush()
                         throws java.io.IOException
        Specified by:
        flush in interface java.io.Flushable
        Specified by:
        flush in class com.fasterxml.jackson.core.base.GeneratorBase
        Throws:
        java.io.IOException
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class com.fasterxml.jackson.core.base.GeneratorBase
        Throws:
        java.io.IOException
      • _writeString

        protected final void _writeString​(java.lang.String name)
                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • _ensureSpace

        protected final void _ensureSpace​(int needed)
                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • _writeString

        protected final void _writeString​(char[] text,
                                          int offset,
                                          int len)
                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • _writeChunkedString

        protected final void _writeChunkedString​(char[] text,
                                                 int offset,
                                                 int len)
                                          throws java.io.IOException
        Throws:
        java.io.IOException
      • _releaseBuffers

        protected void _releaseBuffers()
        Specified by:
        _releaseBuffers in class com.fasterxml.jackson.core.base.GeneratorBase
      • _flushBuffer

        protected final void _flushBuffer()
                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • _notSupported

        protected java.lang.UnsupportedOperationException _notSupported()