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)
Internal method called by
ObjectWriter : should not be called by code
outside jackson-databind classes. |
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
ObjectWriter
: should not be called by code
outside jackson-databind
classes.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