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
,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 anyprotected 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 com.fasterxml.jackson.core.io.CharacterEscapes
_characterEscapes
protected int
_formatFeatures
Bit flag composed of bits that indicate whichCsvGenerator.Feature
s are enabled.protected boolean
_handleFirstLine
Flag that indicates that we need to write header line, if one is needed.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 SimpleTokenWriteContext
_skipWithin
When skipping output (for "unknown" output), outermost write context where skipping should occurprotected com.fasterxml.jackson.core.StreamWriteConstraints
_streamWriteConstraints
protected SimpleTokenWriteContext
_tokenWriteContext
Current context, in form we can use it (GeneratorBase has untyped reference; left as null)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, _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
-
-
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 asprotected 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()
com.fasterxml.jackson.core.io.CharacterEscapes
getCharacterEscapes()
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.SimpleTokenWriteContext
getOutputContext()
java.lang.Object
getOutputTarget()
com.fasterxml.jackson.core.util.JacksonFeatureSet<com.fasterxml.jackson.core.StreamWriteCapability>
getWriteCapabilities()
boolean
isEnabled(CsvGenerator.Feature f)
com.fasterxml.jackson.core.JsonGenerator
overrideFormatFeatures(int values, int mask)
com.fasterxml.jackson.core.JsonGenerator
setCharacterEscapes(com.fasterxml.jackson.core.io.CharacterEscapes esc)
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)
com.fasterxml.jackson.core.StreamWriteConstraints
streamWriteConstraints()
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
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
-
-
-
-
Field Detail
-
MIN_INT_AS_LONG
protected static final long MIN_INT_AS_LONG
- See Also:
- Constant Field Values
-
MAX_INT_AS_LONG
protected static final long MAX_INT_AS_LONG
- See Also:
- Constant Field Values
-
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 whichCsvGenerator.Feature
s 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 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 SimpleTokenWriteContext _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 interfacecom.fasterxml.jackson.core.Versioned
- Overrides:
version
in classcom.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 classcom.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 classcom.fasterxml.jackson.core.JsonGenerator
-
getOutputTarget
public java.lang.Object getOutputTarget()
- Overrides:
getOutputTarget
in classcom.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 classcom.fasterxml.jackson.core.JsonGenerator
-
getOutputContext
public SimpleTokenWriteContext getOutputContext()
- Overrides:
getOutputContext
in classcom.fasterxml.jackson.core.base.GeneratorBase
-
setSchema
public void setSchema(com.fasterxml.jackson.core.FormatSchema schema)
- Overrides:
setSchema
in classcom.fasterxml.jackson.core.JsonGenerator
-
getFormatFeatures
public int getFormatFeatures()
- Overrides:
getFormatFeatures
in classcom.fasterxml.jackson.core.JsonGenerator
-
overrideFormatFeatures
public com.fasterxml.jackson.core.JsonGenerator overrideFormatFeatures(int values, int mask)
- Overrides:
overrideFormatFeatures
in classcom.fasterxml.jackson.core.JsonGenerator
-
setCharacterEscapes
public com.fasterxml.jackson.core.JsonGenerator setCharacterEscapes(com.fasterxml.jackson.core.io.CharacterEscapes esc)
- Overrides:
setCharacterEscapes
in classcom.fasterxml.jackson.core.JsonGenerator
-
getCharacterEscapes
public com.fasterxml.jackson.core.io.CharacterEscapes getCharacterEscapes()
- Overrides:
getCharacterEscapes
in classcom.fasterxml.jackson.core.JsonGenerator
-
canUseSchema
public boolean canUseSchema(com.fasterxml.jackson.core.FormatSchema schema)
- Overrides:
canUseSchema
in classcom.fasterxml.jackson.core.JsonGenerator
-
canOmitFields
public boolean canOmitFields()
- Overrides:
canOmitFields
in classcom.fasterxml.jackson.core.JsonGenerator
-
canWriteFormattedNumbers
public boolean canWriteFormattedNumbers()
- Overrides:
canWriteFormattedNumbers
in classcom.fasterxml.jackson.core.JsonGenerator
-
getWriteCapabilities
public com.fasterxml.jackson.core.util.JacksonFeatureSet<com.fasterxml.jackson.core.StreamWriteCapability> getWriteCapabilities()
- Overrides:
getWriteCapabilities
in classcom.fasterxml.jackson.core.JsonGenerator
-
writeFieldName
public final void writeFieldName(java.lang.String name) throws java.io.IOException
- Specified by:
writeFieldName
in classcom.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 classcom.fasterxml.jackson.core.base.GeneratorBase
- Throws:
java.io.IOException
-
_writeFieldName
private final void _writeFieldName(java.lang.String name) throws java.io.IOException
- Throws:
java.io.IOException
-
isEnabled
public final boolean isEnabled(CsvGenerator.Feature f)
-
configure
public CsvGenerator configure(CsvGenerator.Feature f, boolean state)
-
enable
public CsvGenerator enable(CsvGenerator.Feature f)
-
disable
public CsvGenerator disable(CsvGenerator.Feature f)
-
streamWriteConstraints
public com.fasterxml.jackson.core.StreamWriteConstraints streamWriteConstraints()
- Overrides:
streamWriteConstraints
in classcom.fasterxml.jackson.core.JsonGenerator
-
flush
public final void flush() throws java.io.IOException
- Specified by:
flush
in interfacejava.io.Flushable
- Specified by:
flush
in classcom.fasterxml.jackson.core.base.GeneratorBase
- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOException
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Overrides:
close
in classcom.fasterxml.jackson.core.base.GeneratorBase
- Throws:
java.io.IOException
-
writeStartArray
public final void writeStartArray() throws java.io.IOException
- Specified by:
writeStartArray
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeEndArray
public final void writeEndArray() throws java.io.IOException
- Specified by:
writeEndArray
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeStartObject
public final void writeStartObject() throws java.io.IOException
- Specified by:
writeStartObject
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeEndObject
public final void writeEndObject() throws java.io.IOException
- Specified by:
writeEndObject
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeString
public void writeString(java.lang.String text) throws java.io.IOException
- Specified by:
writeString
in classcom.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 classcom.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 classcom.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 classcom.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 classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeRaw
public void writeRaw(java.lang.String text) throws java.io.IOException
- Specified by:
writeRaw
in classcom.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 classcom.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 classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeRaw
public void writeRaw(char c) throws java.io.IOException
- Specified by:
writeRaw
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeRawValue
public void writeRawValue(java.lang.String text) throws java.io.IOException
- Overrides:
writeRawValue
in classcom.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 classcom.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 classcom.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 classcom.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 classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeNull
public void writeNull() throws java.io.IOException
- Specified by:
writeNull
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeNumber
public void writeNumber(int v) throws java.io.IOException
- Specified by:
writeNumber
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeNumber
public void writeNumber(long v) throws java.io.IOException
- Specified by:
writeNumber
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeNumber
public void writeNumber(java.math.BigInteger v) throws java.io.IOException
- Specified by:
writeNumber
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeNumber
public void writeNumber(double v) throws java.io.IOException
- Specified by:
writeNumber
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeNumber
public void writeNumber(float v) throws java.io.IOException
- Specified by:
writeNumber
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeNumber
public void writeNumber(java.math.BigDecimal v) throws java.io.IOException
- Specified by:
writeNumber
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeNumber
public void writeNumber(java.lang.String encodedValue) throws java.io.IOException
- Specified by:
writeNumber
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeOmittedField
public void writeOmittedField(java.lang.String fieldName) throws java.io.IOException
- Overrides:
writeOmittedField
in classcom.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 classcom.fasterxml.jackson.core.base.GeneratorBase
- Throws:
java.io.IOException
-
_releaseBuffers
protected void _releaseBuffers()
- Specified by:
_releaseBuffers
in classcom.fasterxml.jackson.core.base.GeneratorBase
-
_reportMappingError
protected void _reportMappingError(java.lang.String msg) throws java.io.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:
java.io.IOException
- 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)
-
-