Class CsvGenerator

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

    public class CsvGenerator
    extends com.fasterxml.jackson.core.base.GeneratorBase
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  CsvGenerator.Feature
      Enumeration that defines all togglable features for CSV writers (if any: currently none)
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.lang.StringBuilder _arrayContents
      Accumulated contents of an array cell, if any
      protected int _arrayElements
      Additional counter that indicates number of value entries in the array.
      protected java.lang.String _arraySeparator
      Separator to use during writing of (simple) array value, to be encoded as a single column value, if any.
      protected int _formatFeatures
      Bit flag composed of bits that indicate which CsvGenerator.Features are enabled.
      protected boolean _handleFirstLine
      Flag that indicates that we need to write header line, if one is needed.
      protected com.fasterxml.jackson.core.io.IOContext _ioContext  
      protected int _nextColumnByName
      Index of column that we will be getting next, based on field name call that was made.
      protected CsvSchema _schema
      Definition of columns being written, if available.
      protected boolean _skipValue
      Flag set when property to write is unknown, and the matching value is to be skipped quietly.
      protected com.fasterxml.jackson.core.json.JsonWriteContext _skipWithin
      When skipping output (for "unknown" output), outermost write context where skipping should occur
      protected CsvEncoder _writer  
      private static CsvSchema EMPTY_SCHEMA  
      protected static long MAX_INT_AS_LONG  
      protected static long MIN_INT_AS_LONG  
      • 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
      CsvGenerator​(com.fasterxml.jackson.core.io.IOContext ctxt, int jsonFeatures, int csvFeatures, com.fasterxml.jackson.core.ObjectCodec codec, CsvEncoder csvWriter)  
      CsvGenerator​(com.fasterxml.jackson.core.io.IOContext ctxt, int jsonFeatures, int csvFeatures, com.fasterxml.jackson.core.ObjectCodec codec, java.io.Writer out, CsvSchema schema)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void _addToArray​(char[] value)  
      protected void _addToArray​(java.lang.String value)  
      protected int _columnIndex()  
      protected void _handleFirstLine()  
      protected void _releaseBuffers()  
      protected void _reportMappingError​(java.lang.String msg)
      Method called when there is a problem related to mapping data (compared to a low-level generation); if so, should be surfaced as
      protected void _verifyValueWrite​(java.lang.String typeMsg)  
      private void _writeFieldName​(java.lang.String name)  
      boolean canOmitFields()  
      boolean canUseSchema​(com.fasterxml.jackson.core.FormatSchema schema)  
      boolean canWriteFormattedNumbers()  
      void close()  
      CsvGenerator configure​(CsvGenerator.Feature f, boolean state)  
      CsvGenerator disable​(CsvGenerator.Feature f)  
      CsvGenerator enable​(CsvGenerator.Feature f)  
      protected void finishRow()
      Method called when the current row is complete; typically will flush possibly buffered column values, append linefeed and reset state appropriately.
      void flush()  
      int getFormatFeatures()  
      int getOutputBuffered()
      NOTE: while this method will return some information on amount of data buffered, it may be an incomplete view as some buffering happens at a higher level, as not-yet-serialized values.
      java.lang.Object getOutputTarget()  
      boolean isEnabled​(CsvGenerator.Feature f)  
      com.fasterxml.jackson.core.JsonGenerator overrideFormatFeatures​(int values, int mask)  
      CsvGenerator setPrettyPrinter​(com.fasterxml.jackson.core.PrettyPrinter pp)
      No way (or need) to indent anything, so let's block any attempts.
      void setSchema​(com.fasterxml.jackson.core.FormatSchema schema)  
      CsvGenerator 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)  
      void writeBoolean​(boolean state)  
      void writeEndArray()  
      void writeEndObject()  
      void writeFieldName​(com.fasterxml.jackson.core.SerializableString name)  
      void writeFieldName​(java.lang.String name)  
      void writeNull()  
      void writeNumber​(double v)  
      void writeNumber​(float v)  
      void writeNumber​(int v)  
      void writeNumber​(long v)  
      void writeNumber​(java.lang.String encodedValue)  
      void writeNumber​(java.math.BigDecimal v)  
      void writeNumber​(java.math.BigInteger v)  
      void writeOmittedField​(java.lang.String fieldName)  
      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[] text, 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 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 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, overrideStdFeatures, setCodec, setCurrentValue, setFeatureMask, writeBinary, writeObject, writeRawValue, writeStartObject, writeTree
      • Methods inherited from class com.fasterxml.jackson.core.JsonGenerator

        _copyCurrentContents, _reportError, _reportUnsupportedOperation, _throwInternal, _verifyOffsets, _writeSimpleObject, canWriteBinaryNatively, canWriteObjectId, canWriteTypeId, configure, copyCurrentEvent, copyCurrentStructure, getCharacterEscapes, getHighestEscapedChar, getPrettyPrinter, getSchema, isEnabled, setCharacterEscapes, setHighestNonEscapedChar, setRootValueSeparator, writeArray, writeArray, writeArray, writeArray, writeArrayFieldStart, writeBinary, writeBinary, writeBinary, writeBinaryField, writeBooleanField, writeEmbeddedObject, writeFieldId, writeNullField, writeNumber, writeNumber, writeNumberField, writeNumberField, writeNumberField, writeNumberField, writeNumberField, writeNumberField, writeNumberField, writeObjectField, writeObjectFieldStart, writeObjectId, writeObjectRef, writeRaw, writeStartArray, 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

      • EMPTY_SCHEMA

        private static final CsvSchema EMPTY_SCHEMA
      • _ioContext

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

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

        protected CsvSchema _schema
        Definition of columns being written, if available.
      • _handleFirstLine

        protected boolean _handleFirstLine
        Flag that indicates that we need to write header line, if one is needed. Used because schema may be specified after instance is constructed.
      • _nextColumnByName

        protected int _nextColumnByName
        Index of column that we will be getting next, based on field name call that was made.
      • _skipValue

        protected boolean _skipValue
        Flag set when property to write is unknown, and the matching value is to be skipped quietly.
        Since:
        2.5
      • _arraySeparator

        protected java.lang.String _arraySeparator
        Separator to use during writing of (simple) array value, to be encoded as a single column value, if any.
        Since:
        2.5
      • _arrayContents

        protected java.lang.StringBuilder _arrayContents
        Accumulated contents of an array cell, if any
      • _arrayElements

        protected int _arrayElements
        Additional counter that indicates number of value entries in the array. Needed because `null` entries do not add content, but need to be separated by array cell separator
        Since:
        2.7
      • _skipWithin

        protected com.fasterxml.jackson.core.json.JsonWriteContext _skipWithin
        When skipping output (for "unknown" output), outermost write context where skipping should occur
        Since:
        2.7
    • Constructor Detail

      • CsvGenerator

        public CsvGenerator​(com.fasterxml.jackson.core.io.IOContext ctxt,
                            int jsonFeatures,
                            int csvFeatures,
                            com.fasterxml.jackson.core.ObjectCodec codec,
                            java.io.Writer out,
                            CsvSchema schema)
        Since:
        2.4
      • CsvGenerator

        public CsvGenerator​(com.fasterxml.jackson.core.io.IOContext ctxt,
                            int jsonFeatures,
                            int csvFeatures,
                            com.fasterxml.jackson.core.ObjectCodec codec,
                            CsvEncoder csvWriter)
    • 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
      • useDefaultPrettyPrinter

        public CsvGenerator 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 CsvGenerator 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()
        NOTE: while this method will return some information on amount of data buffered, it may be an incomplete view as some buffering happens at a higher level, as not-yet-serialized values.
        Overrides:
        getOutputBuffered in class com.fasterxml.jackson.core.JsonGenerator
      • setSchema

        public void setSchema​(com.fasterxml.jackson.core.FormatSchema schema)
        Overrides:
        setSchema in class com.fasterxml.jackson.core.JsonGenerator
      • getFormatFeatures

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

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

        public boolean canUseSchema​(com.fasterxml.jackson.core.FormatSchema schema)
        Overrides:
        canUseSchema in class com.fasterxml.jackson.core.JsonGenerator
      • canOmitFields

        public boolean canOmitFields()
        Overrides:
        canOmitFields in class com.fasterxml.jackson.core.JsonGenerator
      • canWriteFormattedNumbers

        public boolean canWriteFormattedNumbers()
        Overrides:
        canWriteFormattedNumbers 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
      • _writeFieldName

        private final void _writeFieldName​(java.lang.String name)
                                    throws java.io.IOException
        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
      • writeStartArray

        public final void writeStartArray()
                                   throws java.io.IOException
        Specified by:
        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
        Specified by:
        writeString in class com.fasterxml.jackson.core.JsonGenerator
        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
      • 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
      • writeRawUTF8String

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

        public 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,
                                com.fasterxml.jackson.core.JsonGenerationException
        Specified by:
        writeBinary in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
        com.fasterxml.jackson.core.JsonGenerationException
      • 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 v)
                         throws java.io.IOException
        Specified by:
        writeNumber in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • writeNumber

        public void writeNumber​(long v)
                         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 v)
                         throws java.io.IOException
        Specified by:
        writeNumber in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • writeNumber

        public void writeNumber​(float v)
                         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 v)
                         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
        Specified by:
        writeNumber in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • writeOmittedField

        public void writeOmittedField​(java.lang.String fieldName)
                               throws java.io.IOException
        Overrides:
        writeOmittedField in class com.fasterxml.jackson.core.JsonGenerator
        Throws:
        java.io.IOException
      • _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
      • _releaseBuffers

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

        protected void _reportMappingError​(java.lang.String msg)
                                    throws com.fasterxml.jackson.core.JsonProcessingException
        Method called when there is a problem related to mapping data (compared to a low-level generation); if so, should be surfaced as
        Throws:
        com.fasterxml.jackson.core.JsonProcessingException
        Since:
        2.7
      • _columnIndex

        protected final int _columnIndex()
      • finishRow

        protected void finishRow()
                          throws java.io.IOException
        Method called when the current row is complete; typically will flush possibly buffered column values, append linefeed and reset state appropriately.
        Throws:
        java.io.IOException
      • _handleFirstLine

        protected void _handleFirstLine()
                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • _addToArray

        protected void _addToArray​(java.lang.String value)
      • _addToArray

        protected void _addToArray​(char[] value)