com.fasterxml.jackson.dataformat.csv.impl
Class CsvEncoder

java.lang.Object
  extended by 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
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 _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
CsvEncoder(CsvEncoder base, CsvSchema newSchema)
           
CsvEncoder(com.fasterxml.jackson.core.io.IOContext ctxt, int csvFeatures, Writer out, CsvSchema schema)
           
 
Method Summary
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

_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 © 2016 FasterXML. All rights reserved.