com.fasterxml.jackson.databind

## Class SequenceWriter

- java.lang.Object
- - com.fasterxml.jackson.databind.SequenceWriter

All Implemented Interfaces:
  Versioned, Closeable, Flushable, AutoCloseable

    public class SequenceWriter
    extends Object
    implements Versioned, Closeable, Flushable

Writer class similar to `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:

- Instances of `SequenceWriter` are stateful, and not thread-safe: if sharing, external synchronization must be used.
- Explicit `close()` is needed after all values have been written (`ObjectWriter` can auto-close after individual value writes)

Since:
  2.5

### Field Summary

Fields
`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 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<Object>` `_rootSerializer`
`protected TypeSerializer` `_typeSerializer`

### Constructor Summary

Constructors
Constructor and Description
`SequenceWriter(DefaultSerializerProvider prov, JsonGenerator gen, boolean closeGenerator, ObjectWriter.Prefetch prefetch)`

### Method Summary

All Methods Instance Methods Concrete Methods
`protected SequenceWriter` `_writeCloseableValue(Object value)`
`protected SequenceWriter` `_writeCloseableValue(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.
`Version` `version()` Method that will return version information stored in and read from jar that contains this class.
`SequenceWriter` `write(Object value)` Method for writing given value into output, as part of sequence to write.
`SequenceWriter` `write(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 Collection<?>> SequenceWriter` `writeAll(C container)`
`SequenceWriter` `writeAll(Iterable<?> iterable)`
`SequenceWriter` `writeAll(Object[] value)`

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

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

### Field Detail

#### _provider

    protected final DefaultSerializerProvider _provider

#### _config

    protected final SerializationConfig _config

#### _generator

    protected final JsonGenerator _generator

#### _rootSerializer

    protected final JsonSerializer<Object> _rootSerializer

#### _typeSerializer

    protected final TypeSerializer _typeSerializer

#### _closeGenerator

    protected final boolean _closeGenerator

#### _cfgFlush

    protected final boolean _cfgFlush

#### _cfgCloseCloseable

    protected final boolean _cfgCloseCloseable

#### _dynamicSerializers

    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. Assumption is that

#### _openArray

    protected boolean _openArray

State flag for keeping track of need to write matching END_ARRAY, if a START_ARRAY was written during initialization

#### _closed

    protected boolean _closed

### Constructor Detail

#### SequenceWriter

    public SequenceWriter(DefaultSerializerProvider prov,
                          JsonGenerator gen,
                          boolean closeGenerator,
                          ObjectWriter.Prefetch prefetch)
                   throws IOException

Throws:
  `IOException`

### Method Detail

#### init

    public SequenceWriter init(boolean wrapInArray)
                        throws IOException

Internal method called by `ObjectWriter`: should not be called by code outside `jackson-databind` classes.

Throws:
  `IOException`

#### version

    public Version version()

Method that will return version information stored in and read from jar that contains this class.

Specified by:
  `version` in interface `Versioned`

#### write

    public SequenceWriter write(Object value)
                         throws IOException

Method for writing given value into output, as part of sequence to write. If root type was specified for `ObjectWriter`, value must be of compatible type (same or subtype).

Throws:
  `IOException`

#### write

    public SequenceWriter write(Object value,
                                JavaType type)
                         throws IOException

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).

Throws:
  `IOException`

#### writeAll

    public SequenceWriter writeAll(Object[] value)
                            throws IOException

Throws:
  `IOException`

#### writeAll

    public <C extends Collection<?>> SequenceWriter writeAll(C container)
                                                      throws IOException

Throws:
  `IOException`

#### writeAll

    public SequenceWriter writeAll(Iterable<?> iterable)
                            throws IOException

Throws:
  `IOException`
Since:
  2.7

#### flush

    public void flush()
               throws IOException

Specified by:
  `flush` in interface `Flushable`
Throws:
  `IOException`

#### close

    public void close()
               throws IOException

Specified by:
  `close` in interface `Closeable`
Specified by:
  `close` in interface `AutoCloseable`
Throws:
  `IOException`

#### _writeCloseableValue

    protected SequenceWriter _writeCloseableValue(Object value)
                                           throws IOException

Throws:
  `IOException`

#### _writeCloseableValue

    protected SequenceWriter _writeCloseableValue(Object value,
                                                  JavaType type)
                                           throws IOException

Throws:
  `IOException`