Class SequenceWriter

  • All Implemented Interfaces:
    Versioned, java.io.Closeable, java.io.Flushable, java.lang.AutoCloseable

    public class SequenceWriter
    extends java.lang.Object
    implements Versioned, java.io.Closeable, java.io.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
    • Method Detail

      • init

        public SequenceWriter init​(boolean wrapInArray)
                            throws java.io.IOException
        Internal method called by ObjectWriter: should not be called by code outside jackson-databind classes.
        Throws:
        java.io.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
        Returns:
        Version of the component
      • write

        public SequenceWriter write​(java.lang.Object value)
                             throws java.io.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:
        java.io.IOException
      • write

        public SequenceWriter write​(java.lang.Object value,
                                    JavaType type)
                             throws java.io.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:
        java.io.IOException
      • writeAll

        public SequenceWriter writeAll​(java.lang.Object[] value)
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • writeAll

        public <C extends java.util.Collection<?>> SequenceWriter writeAll​(C container)
                                                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • writeAll

        public SequenceWriter writeAll​(java.lang.Iterable<?> iterable)
                                throws java.io.IOException
        Throws:
        java.io.IOException
        Since:
        2.7
      • flush

        public void flush()
                   throws java.io.IOException
        Specified by:
        flush in interface java.io.Flushable
        Throws:
        java.io.IOException
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Throws:
        java.io.IOException