public class SequenceWriter
extends java.lang.Object
implements com.fasterxml.jackson.core.Versioned, java.io.Closeable, java.io.Flushable
ObjectWriter
, except that it can be used
for writing sequences of values, not just a single value.
The main use case is in writing very long sequences, or sequences where
values are incrementally produced; cases where it would be impractical
or at least inconvenient to construct a wrapper container around values
(or where no JSON array is desired around values).
Differences from ObjectWriter
include:
SequenceWriter
are stateful, and not thread-safe:
if sharing, external synchronization must be used.
close()
is needed after all values have been written
(ObjectWriter
can auto-close after individual value writes)
Modifier and Type | Field and Description |
---|---|
protected boolean |
_cfgCloseCloseable |
protected boolean |
_cfgFlush |
protected boolean |
_closed |
protected boolean |
_closeGenerator |
protected SerializationConfig |
_config |
protected PropertySerializerMap |
_dynamicSerializers
If
_rootSerializer is not defined (no root type
was used for constructing ObjectWriter ), we will
use simple scheme for keeping track of serializers needed. |
protected com.fasterxml.jackson.core.JsonGenerator |
_generator |
protected boolean |
_openArray
State flag for keeping track of need to write matching END_ARRAY,
if a START_ARRAY was written during initialization
|
protected DefaultSerializerProvider |
_provider |
protected JsonSerializer<java.lang.Object> |
_rootSerializer |
protected TypeSerializer |
_typeSerializer |
Constructor and Description |
---|
SequenceWriter(DefaultSerializerProvider prov,
com.fasterxml.jackson.core.JsonGenerator gen,
boolean closeGenerator,
ObjectWriter.Prefetch prefetch) |
Modifier and Type | Method and Description |
---|---|
private JsonSerializer<java.lang.Object> |
_findAndAddDynamic(java.lang.Class<?> type) |
private JsonSerializer<java.lang.Object> |
_findAndAddDynamic(JavaType type) |
protected SequenceWriter |
_writeCloseableValue(java.lang.Object value) |
protected SequenceWriter |
_writeCloseableValue(java.lang.Object value,
JavaType type) |
void |
close() |
void |
flush() |
SequenceWriter |
init(boolean wrapInArray) |
com.fasterxml.jackson.core.Version |
version()
Method that will return version information stored in and read from jar
that contains this class.
|
SequenceWriter |
write(java.lang.Object value)
Method for writing given value into output, as part of sequence
to write.
|
SequenceWriter |
write(java.lang.Object value,
JavaType type)
Method for writing given value into output, as part of sequence
to write; further, full type (often generic, like
Map
is passed in case a new
JsonSerializer needs to be fetched to handle type
If root type was specified for ObjectWriter ,
value must be of compatible type (same or subtype). |
<C extends java.util.Collection<?>> |
writeAll(C container) |
SequenceWriter |
writeAll(java.lang.Iterable<?> iterable) |
SequenceWriter |
writeAll(java.lang.Object[] value) |
protected final DefaultSerializerProvider _provider
protected final SerializationConfig _config
protected final com.fasterxml.jackson.core.JsonGenerator _generator
protected final JsonSerializer<java.lang.Object> _rootSerializer
protected final TypeSerializer _typeSerializer
protected final boolean _closeGenerator
protected final boolean _cfgFlush
protected final boolean _cfgCloseCloseable
protected PropertySerializerMap _dynamicSerializers
_rootSerializer
is not defined (no root type
was used for constructing ObjectWriter
), we will
use simple scheme for keeping track of serializers needed.
Assumption is thatprotected boolean _openArray
protected boolean _closed
public SequenceWriter(DefaultSerializerProvider prov, com.fasterxml.jackson.core.JsonGenerator gen, boolean closeGenerator, ObjectWriter.Prefetch prefetch) throws java.io.IOException
java.io.IOException
public SequenceWriter init(boolean wrapInArray) throws java.io.IOException
java.io.IOException
public com.fasterxml.jackson.core.Version version()
version
in interface com.fasterxml.jackson.core.Versioned
public SequenceWriter write(java.lang.Object value) throws java.io.IOException
ObjectWriter
,
value must be of compatible type (same or subtype).java.io.IOException
public SequenceWriter write(java.lang.Object value, JavaType type) throws java.io.IOException
Map
is passed in case a new
JsonSerializer
needs to be fetched to handle type
If root type was specified for ObjectWriter
,
value must be of compatible type (same or subtype).java.io.IOException
public SequenceWriter writeAll(java.lang.Object[] value) throws java.io.IOException
java.io.IOException
public <C extends java.util.Collection<?>> SequenceWriter writeAll(C container) throws java.io.IOException
java.io.IOException
public SequenceWriter writeAll(java.lang.Iterable<?> iterable) throws java.io.IOException
java.io.IOException
public void flush() throws java.io.IOException
flush
in interface java.io.Flushable
java.io.IOException
public void close() throws java.io.IOException
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
java.io.IOException
protected SequenceWriter _writeCloseableValue(java.lang.Object value) throws java.io.IOException
java.io.IOException
protected SequenceWriter _writeCloseableValue(java.lang.Object value, JavaType type) throws java.io.IOException
java.io.IOException
private final JsonSerializer<java.lang.Object> _findAndAddDynamic(java.lang.Class<?> type) throws JsonMappingException
JsonMappingException
private final JsonSerializer<java.lang.Object> _findAndAddDynamic(JavaType type) throws JsonMappingException
JsonMappingException