com.fasterxml.jackson.dataformat.csv.impl

## Class CsvEncoder

- java.lang.Object
- - com.fasterxml.jackson.dataformat.csv.impl.CsvEncoder

-     public class CsvEncoder
      extends Object

  Helper class that handles actual low-level construction of CSV output, based only on indexes given without worrying about reordering, or binding from logical properties.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected BufferedValue[]` | `_buffered` And if output comes in shuffled order we will need to do bit of ordering.
    `protected boolean` | `_bufferRecyclable` Flag that indicates whether the `_outputBuffer` is recyclable (and needs to be returned to recycler once we are done) or not.
    `protected boolean` | `_cfgAlwaysQuoteEmptyStrings`
    `protected boolean` | `_cfgAlwaysQuoteStrings`
    `protected char` | `_cfgColumnSeparator`
    `protected int` | `_cfgEscapeCharacter`
    `protected boolean` | `_cfgIncludeMissingTail`
    `protected char[]` | `_cfgLineSeparator`
    `protected int` | `_cfgLineSeparatorLength`
    `protected int` | `_cfgMaxQuoteCheckChars`
    `protected int` | `_cfgMinSafeChar` Lowest-valued character that is safe to output without using quotes around value, NOT including possible escape character.
    `protected char[]` | `_cfgNullValue`
    `protected boolean` | `_cfgOptimalQuoting` Marker flag used to determine if to do optimal (aka "strict") quoting checks or not (looser conservative check)
    `protected int` | `_cfgQuoteCharacter`
    `protected int` | `_charsWritten` Let's keep track of how many bytes have been output, may prove useful when debugging.
    `protected int` | `_columnCount`
    `protected int` | `_csvFeatures`
    `protected com.fasterxml.jackson.core.io.IOContext` | `_ioContext`
    `protected int` | `_lastBuffered` Index of the last buffered value
    `protected int` | `_nextColumnToWrite` Index of column we expect to write next
    `protected Writer` | `_out` Underlying `Writer` used for output.
    `protected char[]` | `_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 char position in `_outputBuffer`
    `protected static int` | `MAX_QUOTE_CHECK`
    `protected BufferedValue[]` | `NO_BUFFERED`
    `protected static int` | `SHORT_WRITE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CsvEncoder(CsvEncoder base, CsvSchema newSchema)`
    `CsvEncoder(com.fasterxml.jackson.core.io.IOContext ctxt, int csvFeatures, Writer out, CsvSchema schema)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `_append(char[] ch)`
    `protected void` | `_buffer(int index, BufferedValue v)`
    `protected void` | `_flushBuffer()`
    `protected boolean` | `_mayNeedQuotes(String value, int length)` Helper method that determines whether given String is likely to require quoting; check tries to optimize for speed.
    `protected boolean` | `_needsQuotingLoose(String value)` NOTE: final since checking is not expected to be changed here; override calling method (`_mayNeedQuotes`) instead, if necessary.
    `protected boolean` | `_needsQuotingLoose(String value, int esc)`
    `protected boolean` | `_needsQuotingStrict(String value)`
    `protected boolean` | `_needsQuotingStrict(String value, int esc)`
    `void` | `_releaseBuffers()`
    `void` | `_writeQuoted(String text)`
    `protected void` | `_writeQuoted(String text, char q, int i)`
    `void` | `_writeQuotedAndEscaped(String text, char esc)`
    `protected void` | `_writeQuotedAndEscaped(String text, char q, char esc, int i)`
    `protected void` | `appendColumnSeparator()`
    `protected void` | `appendNull()`
    `protected void` | `appendRawValue(String value)`
    `protected void` | `appendValue(boolean value)`
    `protected void` | `appendValue(double value)`
    `protected void` | `appendValue(float value)`
    `protected void` | `appendValue(int value)`
    `protected void` | `appendValue(long value)`
    `protected void` | `appendValue(String value)`
    `void` | `close(boolean autoClose)`
    `void` | `endRow()`
    `void` | `flush(boolean flushStream)`
    `int` | `getOutputBuffered()` NOTE: while value does indeed indicate amount that has been written in the buffer, there may be more intermediate data that is buffered as values but not yet in buffer.
    `Object` | `getOutputTarget()`
    `int` | `nextColumnIndex()`
    `CsvEncoder` | `overrideFormatFeatures(int feat)`
    `CsvEncoder` | `withSchema(CsvSchema schema)`
    `void` | `write(int columnIndex, boolean value)`
    `void` | `write(int columnIndex, char[] ch, int offset, int len)`
    `void` | `write(int columnIndex, double value)`
    `void` | `write(int columnIndex, float value)`
    `void` | `write(int columnIndex, int value)`
    `void` | `write(int columnIndex, long value)`
    `void` | `write(int columnIndex, String value)`
    `void` | `writeColumnName(String name)`
    `void` | `writeNonEscaped(int columnIndex, String rawValue)`
    `void` | `writeNull(int columnIndex)`
    `void` | `writeRaw(char c)`
    `void` | `writeRaw(char[] text, int offset, int len)`
    `void` | `writeRaw(String text)`
    `void` | `writeRaw(String text, int start, int len)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### SHORT_WRITE

          protected static final int SHORT_WRITE

      See Also:
        Constant Field Values

    - #### MAX_QUOTE_CHECK

          protected static final int MAX_QUOTE_CHECK

      See Also:
        Constant Field Values

    - #### NO_BUFFERED

          protected final BufferedValue[] NO_BUFFERED

    - #### _ioContext

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

    - #### _out

          protected final Writer _out

      Underlying `Writer` used for output.

    - #### _cfgColumnSeparator

          protected final char _cfgColumnSeparator

    - #### _cfgQuoteCharacter

          protected final int _cfgQuoteCharacter

    - #### _cfgEscapeCharacter

          protected final int _cfgEscapeCharacter

      Since:
        2.7

    - #### _cfgLineSeparator

          protected final char[] _cfgLineSeparator

    - #### _cfgNullValue

          protected final char[] _cfgNullValue

      Since:
        2.5

    - #### _cfgLineSeparatorLength

          protected final int _cfgLineSeparatorLength

    - #### _cfgMaxQuoteCheckChars

          protected int _cfgMaxQuoteCheckChars

    - #### _cfgMinSafeChar

          protected final int _cfgMinSafeChar

      Lowest-valued character that is safe to output without using quotes around value, NOT including possible escape character.

    - #### _csvFeatures

          protected int _csvFeatures

    - #### _cfgOptimalQuoting

          protected boolean _cfgOptimalQuoting

      Marker flag used to determine if to do optimal (aka "strict") quoting checks or not (looser conservative check)
      Since:
        2.4

    - #### _cfgIncludeMissingTail

          protected boolean _cfgIncludeMissingTail

      Since:
        2.4

    - #### _cfgAlwaysQuoteStrings

          protected boolean _cfgAlwaysQuoteStrings

      Since:
        2.5

    - #### _cfgAlwaysQuoteEmptyStrings

          protected boolean _cfgAlwaysQuoteEmptyStrings

    - #### _columnCount

          protected int _columnCount

      Since:
        2.4

    - #### _nextColumnToWrite

          protected int _nextColumnToWrite

      Index of column we expect to write next

    - #### _buffered

          protected BufferedValue[] _buffered

      And if output comes in shuffled order we will need to do bit of ordering.

    - #### _lastBuffered

          protected int _lastBuffered

      Index of the last buffered value

    - #### _outputBuffer

          protected char[] _outputBuffer

      Intermediate buffer in which contents are buffered before being written using `_out`.

    - #### _bufferRecyclable

          protected boolean _bufferRecyclable

      Flag that indicates whether the `_outputBuffer` is recyclable (and needs to be returned to recycler once we are done) or not.

    - #### _outputTail

          protected int _outputTail

      Pointer to the next available char position in `_outputBuffer`

    - #### _outputEnd

          protected final int _outputEnd

      Offset to index after the last valid index in `_outputBuffer`. Typically same as length of the buffer.

    - #### _charsWritten

          protected int _charsWritten

      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.

  - ### Constructor Detail

    - #### CsvEncoder

          public CsvEncoder(com.fasterxml.jackson.core.io.IOContext ctxt,
                    int csvFeatures,
                    Writer out,
                    CsvSchema schema)

    - #### CsvEncoder

          public CsvEncoder(CsvEncoder base,
                    CsvSchema newSchema)

  - ### Method Detail

    - #### withSchema

          public CsvEncoder withSchema(CsvSchema schema)

    - #### overrideFormatFeatures

          public CsvEncoder overrideFormatFeatures(int feat)

    - #### getOutputTarget

          public Object getOutputTarget()

    - #### getOutputBuffered

          public int getOutputBuffered()

      NOTE: while value does indeed indicate amount that has been written in the buffer, there may be more intermediate data that is buffered as values but not yet in buffer.

    - #### nextColumnIndex

          public int nextColumnIndex()

    - #### write

          public final void write(int columnIndex,
                   String value)
                           throws IOException

      Throws:
        `IOException`

    - #### write

          public final void write(int columnIndex,
                   char[] ch,
                   int offset,
                   int len)
                           throws IOException

      Throws:
        `IOException`

    - #### write

          public final void write(int columnIndex,
                   int value)
                           throws IOException

      Throws:
        `IOException`

    - #### write

          public final void write(int columnIndex,
                   long value)
                           throws IOException

      Throws:
        `IOException`

    - #### write

          public final void write(int columnIndex,
                   float value)
                           throws IOException

      Throws:
        `IOException`

    - #### write

          public final void write(int columnIndex,
                   double value)
                           throws IOException

      Throws:
        `IOException`

    - #### write

          public final void write(int columnIndex,
                   boolean value)
                           throws IOException

      Throws:
        `IOException`

    - #### writeNonEscaped

          public final void writeNonEscaped(int columnIndex,
                             String rawValue)
                                     throws IOException

      Throws:
        `IOException`
      Since:
        2.5

    - #### writeNull

          public final void writeNull(int columnIndex)
                               throws IOException

      Throws:
        `IOException`

    - #### writeColumnName

          public final void writeColumnName(String name)
                                     throws IOException

      Throws:
        `IOException`

    - #### endRow

          public void endRow()
                      throws IOException

      Throws:
        `IOException`

    - #### appendValue

          protected void appendValue(String value)
                              throws IOException

      Throws:
        `IOException`

    - #### appendRawValue

          protected void appendRawValue(String value)
                                 throws IOException

      Throws:
        `IOException`

    - #### appendValue

          protected void appendValue(int value)
                              throws IOException

      Throws:
        `IOException`

    - #### appendValue

          protected void appendValue(long value)
                              throws IOException

      Throws:
        `IOException`

    - #### appendValue

          protected void appendValue(float value)
                              throws IOException

      Throws:
        `IOException`

    - #### appendValue

          protected void appendValue(double value)
                              throws IOException

      Throws:
        `IOException`

    - #### appendValue

          protected void appendValue(boolean value)
                              throws IOException

      Throws:
        `IOException`

    - #### appendNull

          protected void appendNull()
                             throws IOException

      Throws:
        `IOException`

    - #### _append

          protected void _append(char[] ch)
                          throws IOException

      Throws:
        `IOException`

    - #### appendColumnSeparator

          protected void appendColumnSeparator()
                                        throws IOException

      Throws:
        `IOException`

    - #### writeRaw

          public void writeRaw(String text)
                        throws IOException

      Throws:
        `IOException`

    - #### writeRaw

          public void writeRaw(String text,
                      int start,
                      int len)
                        throws IOException

      Throws:
        `IOException`

    - #### writeRaw

          public void writeRaw(char[] text,
                      int offset,
                      int len)
                        throws IOException

      Throws:
        `IOException`

    - #### writeRaw

          public void writeRaw(char c)
                        throws IOException

      Throws:
        `IOException`

    - #### _writeQuoted

          public void _writeQuoted(String text)
                            throws IOException

      Throws:
        `IOException`

    - #### _writeQuoted

          protected void _writeQuoted(String text,
                          char q,
                          int i)
                               throws IOException

      Throws:
        `IOException`

    - #### _writeQuotedAndEscaped

          public void _writeQuotedAndEscaped(String text,
                                    char esc)
                                      throws IOException

      Throws:
        `IOException`

    - #### _writeQuotedAndEscaped

          protected void _writeQuotedAndEscaped(String text,
                                    char q,
                                    char esc,
                                    int i)
                                         throws IOException

      Throws:
        `IOException`

    - #### flush

          public void flush(boolean flushStream)
                     throws IOException

      Throws:
        `IOException`

    - #### close

          public void close(boolean autoClose)
                     throws IOException

      Throws:
        `IOException`

    - #### _mayNeedQuotes

          protected boolean _mayNeedQuotes(String value,
                               int length)

      Helper method that determines whether given String is likely to require quoting; check tries to optimize for speed.

    - #### _needsQuotingLoose

          protected final boolean _needsQuotingLoose(String value)

      NOTE: final since checking is not expected to be changed here; override calling method (`_mayNeedQuotes`) instead, if necessary.

      Since:
        2.4

    - #### _needsQuotingLoose

          protected final boolean _needsQuotingLoose(String value,
                                   int esc)

    - #### _needsQuotingStrict

          protected boolean _needsQuotingStrict(String value)

      Since:
        2.4

    - #### _needsQuotingStrict

          protected boolean _needsQuotingStrict(String value,
                                    int esc)

      Since:
        2.7

    - #### _buffer

          protected void _buffer(int index,
                     BufferedValue v)

    - #### _flushBuffer

          protected void _flushBuffer()
                               throws IOException

      Throws:
        `IOException`

    - #### _releaseBuffers

          public void _releaseBuffers()

Copyright © 2017 FasterXML. All rights reserved.