Class CsvGenerator

java.lang.Object
com.fasterxml.jackson.core.JsonGenerator
com.fasterxml.jackson.core.base.GeneratorBase
com.fasterxml.jackson.dataformat.csv.CsvGenerator
All Implemented Interfaces:
com.fasterxml.jackson.core.Versioned, Closeable, Flushable, AutoCloseable

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

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

    Fields
    Modifier and Type
    Field
    Description
    protected StringBuilder
    Accumulated contents of an array cell, if any
    protected int
    Additional counter that indicates number of value entries in the array.
    protected String
    Separator to use during writing of (simple) array value, to be encoded as a single column value, if any.
    protected com.fasterxml.jackson.core.io.CharacterEscapes
     
    protected int
    Bit flag composed of bits that indicate which CsvGenerator.Features are enabled.
    protected boolean
    Flag that indicates that we need to write header line, if one is needed.
    protected int
    Index of column that we will be getting next, based on field name call that was made.
    protected CsvSchema
    Definition of columns being written, if available.
    protected boolean
    Flag set when property to write is unknown, and the matching value is to be skipped quietly.
    When skipping output (for "unknown" output), outermost write context where skipping should occur
    protected final com.fasterxml.jackson.core.StreamWriteConstraints
     
    Current context, in form we can use it (GeneratorBase has untyped reference; left as null)
    protected CsvEncoder
     
    private static final CsvSchema
     
    protected static final long
     
    protected static final long
     

    Fields inherited from class com.fasterxml.jackson.core.base.GeneratorBase

    _cfgNumbersAsStrings, _closed, _features, _ioContext, _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, DEFAULT_BINARY_WRITE_CAPABILITIES, DEFAULT_TEXTUAL_WRITE_CAPABILITIES, DEFAULT_WRITE_CAPABILITIES
  • 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, Writer out, CsvSchema schema)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
    _addToArray(char[] value)
     
    protected void
     
    protected final int
     
    protected void
     
    protected void
     
    protected void
    Method called when there is a problem related to mapping data (compared to a low-level generation); if so, should be surfaced as
    protected final void
     
    private final void
     
    boolean
     
    boolean
    canUseSchema(com.fasterxml.jackson.core.FormatSchema schema)
     
    boolean
     
    void
     
    configure(CsvGenerator.Feature f, boolean state)
     
     
     
    protected void
    Method called when the current row is complete; typically will flush possibly buffered column values, append linefeed and reset state appropriately.
    final void
     
    com.fasterxml.jackson.core.io.CharacterEscapes
     
    int
     
    int
    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.
     
     
    com.fasterxml.jackson.core.util.JacksonFeatureSet<com.fasterxml.jackson.core.StreamWriteCapability>
     
    final boolean
     
    com.fasterxml.jackson.core.JsonGenerator
    overrideFormatFeatures(int values, int mask)
     
    com.fasterxml.jackson.core.JsonGenerator
    setCharacterEscapes(com.fasterxml.jackson.core.io.CharacterEscapes esc)
     
    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)
     
    com.fasterxml.jackson.core.StreamWriteConstraints
     
    No way (or need) to indent anything, so let's block any attempts.
    com.fasterxml.jackson.core.Version
     
    void
    writeBinary(com.fasterxml.jackson.core.Base64Variant b64variant, byte[] data, int offset, int len)
     
    void
    writeBoolean(boolean state)
     
    final void
     
    final void
     
    final void
    writeFieldName(com.fasterxml.jackson.core.SerializableString name)
     
    final void
     
    void
     
    void
    writeNumber(double v)
     
    void
    writeNumber(float v)
     
    void
    writeNumber(int v)
     
    void
    writeNumber(long v)
     
    void
    writeNumber(String encodedValue)
     
    void
     
    void
     
    void
     
    void
    writeRaw(char c)
     
    void
    writeRaw(char[] text, int offset, int len)
     
    void
     
    void
    writeRaw(String text, int offset, int len)
     
    void
    writeRawUTF8String(byte[] text, int offset, int len)
     
    void
    writeRawValue(char[] text, int offset, int len)
     
    void
     
    void
    writeRawValue(String text, int offset, int len)
     
    final void
     
    final void
     
    void
    writeString(char[] text, int offset, int len)
     
    final void
    writeString(com.fasterxml.jackson.core.SerializableString sstr)
     
    void
     
    void
    writeUTF8String(byte[] text, int offset, int len)
     

    Methods inherited from class com.fasterxml.jackson.core.base.GeneratorBase

    _asString, _checkRangeBoundsForByteArray, _checkRangeBoundsForCharArray, _checkRangeBoundsForString, _checkStdFeatureChanges, _constructDefaultPrettyPrinter, _decodeSurrogate, assignCurrentValue, currentValue, disable, enable, getCodec, getFeatureMask, ioContext, isClosed, isEnabled, overrideStdFeatures, setCodec, setFeatureMask, writeBinary, writeObject, writeRawValue, writeStartObject, writeTree

    Methods inherited from class com.fasterxml.jackson.core.JsonGenerator

    _constructWriteException, _constructWriteException, _constructWriteException, _constructWriteException, _copyCurrentContents, _copyCurrentFloatValue, _copyCurrentFloatValueExact, _copyCurrentIntValue, _copyCurrentStringValue, _reportError, _reportUnsupportedOperation, _reportUnsupportedOperation, _throwInternal, _verifyOffsets, _writeSimpleObject, canWriteBinaryNatively, canWriteObjectId, canWriteTypeId, configure, copyCurrentEvent, copyCurrentEventExact, copyCurrentStructure, getCurrentValue, getHighestEscapedChar, getPrettyPrinter, getSchema, isEnabled, setCurrentValue, 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, writePOJO, writePOJOField, writeRaw, writeStartArray, writeStartArray, writeStartArray, writeStartObject, writeString, writeStringField, writeTypeId, writeTypePrefix, writeTypeSuffix

    Methods inherited from class java.lang.Object

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

    • MIN_INT_AS_LONG

      protected static final long MIN_INT_AS_LONG
      See Also:
    • MAX_INT_AS_LONG

      protected static final long MAX_INT_AS_LONG
      See Also:
    • EMPTY_SCHEMA

      private static final CsvSchema EMPTY_SCHEMA
    • _streamWriteConstraints

      protected final com.fasterxml.jackson.core.StreamWriteConstraints _streamWriteConstraints
      Since:
      2.16
    • _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.
    • _writer

      protected CsvEncoder _writer
    • _tokenWriteContext

      protected SimpleTokenWriteContext _tokenWriteContext
      Current context, in form we can use it (GeneratorBase has untyped reference; left as null)
      Since:
      2.11
    • _characterEscapes

      protected com.fasterxml.jackson.core.io.CharacterEscapes _characterEscapes
    • _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 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 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 SimpleTokenWriteContext _skipWithin
      When skipping output (for "unknown" output), outermost write context where skipping should occur
      Since:
      2.7
  • Constructor Details

    • CsvGenerator

      public CsvGenerator(com.fasterxml.jackson.core.io.IOContext ctxt, int jsonFeatures, int csvFeatures, com.fasterxml.jackson.core.ObjectCodec codec, 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 Details

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

      public SimpleTokenWriteContext getOutputContext()
      Overrides:
      getOutputContext in class com.fasterxml.jackson.core.base.GeneratorBase
    • 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
    • setCharacterEscapes

      public com.fasterxml.jackson.core.JsonGenerator setCharacterEscapes(com.fasterxml.jackson.core.io.CharacterEscapes esc)
      Overrides:
      setCharacterEscapes in class com.fasterxml.jackson.core.JsonGenerator
    • getCharacterEscapes

      public com.fasterxml.jackson.core.io.CharacterEscapes getCharacterEscapes()
      Overrides:
      getCharacterEscapes 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
    • getWriteCapabilities

      public com.fasterxml.jackson.core.util.JacksonFeatureSet<com.fasterxml.jackson.core.StreamWriteCapability> getWriteCapabilities()
      Overrides:
      getWriteCapabilities in class com.fasterxml.jackson.core.JsonGenerator
    • writeFieldName

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

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

      private final void _writeFieldName(String name) throws IOException
      Throws:
      IOException
    • isEnabled

      public final boolean isEnabled(CsvGenerator.Feature f)
    • configure

      public CsvGenerator configure(CsvGenerator.Feature f, boolean state)
    • enable

    • disable

      public CsvGenerator disable(CsvGenerator.Feature f)
    • streamWriteConstraints

      public com.fasterxml.jackson.core.StreamWriteConstraints streamWriteConstraints()
      Overrides:
      streamWriteConstraints in class com.fasterxml.jackson.core.JsonGenerator
    • flush

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

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

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

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

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

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

      public void writeString(String text) throws IOException
      Specified by:
      writeString in class com.fasterxml.jackson.core.JsonGenerator
      Throws:
      IOException
    • writeString

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      public void writeNumber(String encodedValue) throws IOException
      Specified by:
      writeNumber in class com.fasterxml.jackson.core.JsonGenerator
      Throws:
      IOException
    • writeOmittedField

      public void writeOmittedField(String fieldName) throws IOException
      Overrides:
      writeOmittedField in class com.fasterxml.jackson.core.JsonGenerator
      Throws:
      IOException
    • _verifyValueWrite

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

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

      protected void _reportMappingError(String msg) throws IOException
      Method called when there is a problem related to mapping data (compared to a low-level generation); if so, should be surfaced as
      Throws:
      IOException
      Since:
      2.7
    • _columnIndex

      protected final int _columnIndex()
    • finishRow

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

      protected void _handleFirstLine() throws IOException
      Throws:
      IOException
    • _addToArray

      protected void _addToArray(String value)
    • _addToArray

      protected void _addToArray(char[] value)