com.fasterxml.jackson.databind

## Class ObjectWriter

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

- All Implemented Interfaces:
    com.fasterxml.jackson.core.Versioned, java.io.Serializable

      public class ObjectWriter
      extends java.lang.Object
      implements com.fasterxml.jackson.core.Versioned, java.io.Serializable

  Builder object that can be used for per-serialization configuration of serialization parameters, such as JSON View and root type to use. (and thus fully thread-safe with no external synchronization); new instances are constructed for different configurations. Instances are initially constructed by `ObjectMapper` and can be reused in completely thread-safe manner with no explicit synchronization
  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `ObjectWriter.GeneratorSettings` Helper class used for containing settings specifically related to (re)configuring `JsonGenerator` constructed for writing output.
    `static class` | `ObjectWriter.Prefetch` As a minor optimization, we will make an effort to pre-fetch a serializer, or at least relevant `TypeSerializer`, if given enough information.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected SerializationConfig` | `_config` General serialization configuration settings
    `protected com.fasterxml.jackson.core.JsonFactory` | `_generatorFactory` Factory used for constructing `JsonGenerator`s
    `protected ObjectWriter.GeneratorSettings` | `_generatorSettings` Container for settings that need to be passed to `JsonGenerator` constructed for serializing values.
    `protected ObjectWriter.Prefetch` | `_prefetch` We may pre-fetch serializer if root type is known (has been explicitly declared), and if so, reuse it afterwards.
    `protected SerializerFactory` | `_serializerFactory`
    `protected DefaultSerializerProvider` | `_serializerProvider`
    `protected static com.fasterxml.jackson.core.PrettyPrinter` | `NULL_PRETTY_PRINTER` We need to keep track of explicit disabling of pretty printing; easiest to do by a token value.

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `ObjectWriter(ObjectMapper mapper, SerializationConfig config)` Alternative constructor for initial instantiation by `ObjectMapper`
    `protected` | `ObjectWriter(ObjectMapper mapper, SerializationConfig config, com.fasterxml.jackson.core.FormatSchema s)` Alternative constructor for initial instantiation by `ObjectMapper`
    `protected` | `ObjectWriter(ObjectMapper mapper, SerializationConfig config, JavaType rootType, com.fasterxml.jackson.core.PrettyPrinter pp)` Constructor used by `ObjectMapper` for initial instantiation
    `protected` | `ObjectWriter(ObjectWriter base, com.fasterxml.jackson.core.JsonFactory f)`
    `protected` | `ObjectWriter(ObjectWriter base, SerializationConfig config)` Copy constructor used for building variations.
    `protected` | `ObjectWriter(ObjectWriter base, SerializationConfig config, ObjectWriter.GeneratorSettings genSettings, ObjectWriter.Prefetch prefetch)` Copy constructor used for building variations.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `_configAndWriteValue(com.fasterxml.jackson.core.JsonGenerator gen, java.lang.Object value)` Method called to configure the generator as necessary and then call write functionality
    `protected void` | `_configureGenerator(com.fasterxml.jackson.core.JsonGenerator gen)` Helper method called to set or override settings of passed-in `JsonGenerator`
    `protected ObjectWriter` | `_new(ObjectWriter.GeneratorSettings genSettings, ObjectWriter.Prefetch prefetch)` Overridable factory method called by various "withXxx()" methods.
    `protected ObjectWriter` | `_new(ObjectWriter base, com.fasterxml.jackson.core.JsonFactory f)` Overridable factory method called by various "withXxx()" methods
    `protected ObjectWriter` | `_new(ObjectWriter base, SerializationConfig config)` Overridable factory method called by various "withXxx()" methods
    `protected SequenceWriter` | `_newSequenceWriter(boolean wrapInArray, com.fasterxml.jackson.core.JsonGenerator gen, boolean managedInput)` Overridable factory method called by `writeValues(OutputStream)` method (and its various overrides), and initializes it as necessary.
    `protected DefaultSerializerProvider` | `_serializerProvider()` Overridable helper method used for constructing `SerializerProvider` to use for serialization.
    `protected void` | `_verifySchemaType(com.fasterxml.jackson.core.FormatSchema schema)`
    `void` | `acceptJsonFormatVisitor(java.lang.Class<?> rawType, JsonFormatVisitorWrapper visitor)` Since 2.6
    `void` | `acceptJsonFormatVisitor(JavaType type, JsonFormatVisitorWrapper visitor)` Method for visiting type hierarchy for given type, using specified visitor.
    `boolean` | `canSerialize(java.lang.Class<?> type)`
    `boolean` | `canSerialize(java.lang.Class<?> type, java.util.concurrent.atomic.AtomicReference<java.lang.Throwable> cause)` Method for checking whether instances of given type can be serialized, and optionally why (as per `Throwable` returned).
    `ObjectWriter` | `forType(java.lang.Class<?> rootType)` Method that will construct a new instance that uses specific type as the root type for serialization, instead of runtime dynamic type of the root object itself.
    `ObjectWriter` | `forType(JavaType rootType)` Method that will construct a new instance that uses specific type as the root type for serialization, instead of runtime dynamic type of the root object itself.
    `ObjectWriter` | `forType(com.fasterxml.jackson.core.type.TypeReference<?> rootType)` Method that will construct a new instance that uses specific type as the root type for serialization, instead of runtime dynamic type of the root object itself.
    `ContextAttributes` | `getAttributes()`
    `SerializationConfig` | `getConfig()`
    `com.fasterxml.jackson.core.JsonFactory` | `getFactory()`
    `TypeFactory` | `getTypeFactory()`
    `boolean` | `hasPrefetchedSerializer()` Diagnostics method that can be called to check whether this writer has pre-fetched serializer to use: pre-fetching improves performance when writer instances are reused as it avoids a per-call serializer lookup.
    `boolean` | `isEnabled(com.fasterxml.jackson.core.JsonGenerator.Feature f)`
    `boolean` | `isEnabled(com.fasterxml.jackson.core.JsonParser.Feature f)` Deprecated.
    `boolean` | `isEnabled(MapperFeature f)`
    `boolean` | `isEnabled(SerializationFeature f)`
    `com.fasterxml.jackson.core.Version` | `version()` Method that will return version information stored in and read from jar that contains this class.
    `ObjectWriter` | `with(com.fasterxml.jackson.core.Base64Variant b64variant)` Method that will construct a new instance that uses specified default `Base64Variant` for base64 encoding
    `ObjectWriter` | `with(com.fasterxml.jackson.core.io.CharacterEscapes escapes)`
    `ObjectWriter` | `with(ContextAttributes attrs)`
    `ObjectWriter` | `with(java.text.DateFormat df)` Fluent factory method that will construct a new writer instance that will use specified date format for serializing dates; or if null passed, one that will serialize dates as numeric timestamps.
    `ObjectWriter` | `with(FilterProvider filterProvider)` Method that will construct a new instance that uses specified provider for resolving filter instances by id.
    `ObjectWriter` | `with(com.fasterxml.jackson.core.FormatFeature feature)`
    `ObjectWriter` | `with(com.fasterxml.jackson.core.FormatSchema schema)` Method that will construct a new instance that uses specific format schema for serialization.
    `ObjectWriter` | `with(com.fasterxml.jackson.core.JsonFactory f)`
    `ObjectWriter` | `with(com.fasterxml.jackson.core.JsonGenerator.Feature feature)`
    `ObjectWriter` | `with(java.util.Locale l)`
    `ObjectWriter` | `with(com.fasterxml.jackson.core.PrettyPrinter pp)` Method that will construct a new instance that will use specified pretty printer (or, if null, will not do any pretty-printing)
    `ObjectWriter` | `with(SerializationFeature feature)` Method for constructing a new instance that is configured with specified feature enabled.
    `ObjectWriter` | `with(SerializationFeature first, SerializationFeature... other)` Method for constructing a new instance that is configured with specified features enabled.
    `ObjectWriter` | `with(java.util.TimeZone tz)`
    `ObjectWriter` | `withAttribute(java.lang.Object key, java.lang.Object value)`
    `ObjectWriter` | `withAttributes(java.util.Map<?,?> attrs)` Mutant factory method that allows construction of a new writer instance that uses specified set of default attribute values.
    `ObjectWriter` | `withDefaultPrettyPrinter()` Method that will construct a new instance that will use the default pretty printer for serialization.
    `ObjectWriter` | `withFeatures(com.fasterxml.jackson.core.FormatFeature... features)`
    `ObjectWriter` | `withFeatures(com.fasterxml.jackson.core.JsonGenerator.Feature... features)`
    `ObjectWriter` | `withFeatures(SerializationFeature... features)` Method for constructing a new instance that is configured with specified features enabled.
    `ObjectWriter` | `without(com.fasterxml.jackson.core.FormatFeature feature)`
    `ObjectWriter` | `without(com.fasterxml.jackson.core.JsonGenerator.Feature feature)`
    `ObjectWriter` | `without(SerializationFeature feature)` Method for constructing a new instance that is configured with specified feature enabled.
    `ObjectWriter` | `without(SerializationFeature first, SerializationFeature... other)` Method for constructing a new instance that is configured with specified features enabled.
    `ObjectWriter` | `withoutAttribute(java.lang.Object key)`
    `ObjectWriter` | `withoutFeatures(com.fasterxml.jackson.core.FormatFeature... features)`
    `ObjectWriter` | `withoutFeatures(com.fasterxml.jackson.core.JsonGenerator.Feature... features)`
    `ObjectWriter` | `withoutFeatures(SerializationFeature... features)` Method for constructing a new instance that is configured with specified features enabled.
    `ObjectWriter` | `withoutRootName()` Convenience method that is same as calling: `withRootName("")` which will forcibly prevent use of root name wrapping when writing values with this `ObjectWriter`.
    `ObjectWriter` | `withRootName(PropertyName rootName)`
    `ObjectWriter` | `withRootName(java.lang.String rootName)` Method for constructing a new instance with configuration that specifies what root name to use for "root element wrapping".
    `ObjectWriter` | `withRootValueSeparator(com.fasterxml.jackson.core.SerializableString sep)`
    `ObjectWriter` | `withRootValueSeparator(java.lang.String sep)`
    `ObjectWriter` | `withSchema(com.fasterxml.jackson.core.FormatSchema schema)` Deprecated. Since 2.5 use `with(FormatSchema)` instead
    `ObjectWriter` | `withType(java.lang.Class<?> rootType)` Deprecated. since 2.5 Use `forType(Class)` instead
    `ObjectWriter` | `withType(JavaType rootType)` Deprecated. since 2.5 Use `forType(JavaType)` instead
    `ObjectWriter` | `withType(com.fasterxml.jackson.core.type.TypeReference<?> rootType)` Deprecated. since 2.5 Use `forType(TypeReference)` instead
    `ObjectWriter` | `withView(java.lang.Class<?> view)` Method that will construct a new instance that uses specified serialization view for serialization (with null basically disables view processing)
    `void` | `writeValue(java.io.DataOutput out, java.lang.Object value)`
    `void` | `writeValue(java.io.File resultFile, java.lang.Object value)` Method that can be used to serialize any Java value as JSON output, written to File provided.
    `void` | `writeValue(com.fasterxml.jackson.core.JsonGenerator gen, java.lang.Object value)` Method that can be used to serialize any Java value as JSON output, using provided `JsonGenerator`.
    `void` | `writeValue(java.io.OutputStream out, java.lang.Object value)` Method that can be used to serialize any Java value as JSON output, using output stream provided (using encoding `JsonEncoding.UTF8`).
    `void` | `writeValue(java.io.Writer w, java.lang.Object value)` Method that can be used to serialize any Java value as JSON output, using Writer provided.
    `byte[]` | `writeValueAsBytes(java.lang.Object value)` Method that can be used to serialize any Java value as a byte array.
    `java.lang.String` | `writeValueAsString(java.lang.Object value)` Method that can be used to serialize any Java value as a String.
    `SequenceWriter` | `writeValues(java.io.DataOutput out)`
    `SequenceWriter` | `writeValues(java.io.File out)` Method for creating a `SequenceWriter` to write a sequence of root values using configuration of this `ObjectWriter`.
    `SequenceWriter` | `writeValues(com.fasterxml.jackson.core.JsonGenerator gen)` Method for creating a `SequenceWriter` to write a sequence of root values using configuration of this `ObjectWriter`.
    `SequenceWriter` | `writeValues(java.io.OutputStream out)` Method for creating a `SequenceWriter` to write a sequence of root values using configuration of this `ObjectWriter`.
    `SequenceWriter` | `writeValues(java.io.Writer out)` Method for creating a `SequenceWriter` to write a sequence of root values using configuration of this `ObjectWriter`.
    `SequenceWriter` | `writeValuesAsArray(java.io.DataOutput out)`
    `SequenceWriter` | `writeValuesAsArray(java.io.File out)` Method for creating a `SequenceWriter` to write an array of root-level values, using configuration of this `ObjectWriter`.
    `SequenceWriter` | `writeValuesAsArray(com.fasterxml.jackson.core.JsonGenerator gen)` Method for creating a `SequenceWriter` to write an array of root-level values, using configuration of this `ObjectWriter`.
    `SequenceWriter` | `writeValuesAsArray(java.io.OutputStream out)` Method for creating a `SequenceWriter` to write an array of root-level values, using configuration of this `ObjectWriter`.
    `SequenceWriter` | `writeValuesAsArray(java.io.Writer out)` Method for creating a `SequenceWriter` to write an array of root-level values, using configuration of this `ObjectWriter`.

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

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

- - ### Field Detail

    - #### NULL_PRETTY_PRINTER

          protected static final com.fasterxml.jackson.core.PrettyPrinter NULL_PRETTY_PRINTER

      We need to keep track of explicit disabling of pretty printing; easiest to do by a token value.

    - #### _config

          protected final SerializationConfig _config

      General serialization configuration settings

    - #### _serializerProvider

          protected final DefaultSerializerProvider _serializerProvider

    - #### _serializerFactory

          protected final SerializerFactory _serializerFactory

    - #### _generatorFactory

          protected final com.fasterxml.jackson.core.JsonFactory _generatorFactory

      Factory used for constructing `JsonGenerator`s

    - #### _generatorSettings

          protected final ObjectWriter.GeneratorSettings _generatorSettings

      Container for settings that need to be passed to `JsonGenerator` constructed for serializing values.
      Since:
        2.5

    - #### _prefetch

          protected final ObjectWriter.Prefetch _prefetch

      We may pre-fetch serializer if root type is known (has been explicitly declared), and if so, reuse it afterwards. This allows avoiding further serializer lookups and increases performance a bit on cases where readers are reused.
      Since:
        2.5

  - ### Constructor Detail

    - #### ObjectWriter

          protected ObjectWriter(ObjectMapper mapper,
                      SerializationConfig config,
                      JavaType rootType,
                      com.fasterxml.jackson.core.PrettyPrinter pp)

      Constructor used by `ObjectMapper` for initial instantiation

    - #### ObjectWriter

          protected ObjectWriter(ObjectMapper mapper,
                      SerializationConfig config)

      Alternative constructor for initial instantiation by `ObjectMapper`

    - #### ObjectWriter

          protected ObjectWriter(ObjectMapper mapper,
                      SerializationConfig config,
                      com.fasterxml.jackson.core.FormatSchema s)

      Alternative constructor for initial instantiation by `ObjectMapper`

    - #### ObjectWriter

          protected ObjectWriter(ObjectWriter base,
                      SerializationConfig config,
                      ObjectWriter.GeneratorSettings genSettings,
                      ObjectWriter.Prefetch prefetch)

      Copy constructor used for building variations.

    - #### ObjectWriter

          protected ObjectWriter(ObjectWriter base,
                      SerializationConfig config)

      Copy constructor used for building variations.

    - #### ObjectWriter

          protected ObjectWriter(ObjectWriter base,
                      com.fasterxml.jackson.core.JsonFactory f)

      Since:
        2.3

  - ### Method Detail

    - #### version

          public com.fasterxml.jackson.core.Version version()

      Method that will return version information stored in and read from jar that contains this class.
      Specified by:
        `version` in interface `com.fasterxml.jackson.core.Versioned`

    - #### _new

          protected ObjectWriter _new(ObjectWriter base,
                          com.fasterxml.jackson.core.JsonFactory f)

      Overridable factory method called by various "withXxx()" methods
      Since:
        2.5

    - #### _new

          protected ObjectWriter _new(ObjectWriter base,
                          SerializationConfig config)

      Overridable factory method called by various "withXxx()" methods
      Since:
        2.5

    - #### _new

          protected ObjectWriter _new(ObjectWriter.GeneratorSettings genSettings,
                          ObjectWriter.Prefetch prefetch)

      Overridable factory method called by various "withXxx()" methods. It assumes `this` as base for settings other than those directly passed in.
      Since:
        2.5

    - #### _newSequenceWriter

          protected SequenceWriter _newSequenceWriter(boolean wrapInArray,
                                          com.fasterxml.jackson.core.JsonGenerator gen,
                                          boolean managedInput)
                                               throws java.io.IOException

      Overridable factory method called by `writeValues(OutputStream)` method (and its various overrides), and initializes it as necessary.
      Throws:
        `java.io.IOException`
      Since:
        2.5

    - #### with

          public ObjectWriter with(SerializationFeature feature)

      Method for constructing a new instance that is configured with specified feature enabled.

    - #### with

          public ObjectWriter with(SerializationFeature first,
                          SerializationFeature... other)

      Method for constructing a new instance that is configured with specified features enabled.

    - #### withFeatures

          public ObjectWriter withFeatures(SerializationFeature... features)

      Method for constructing a new instance that is configured with specified features enabled.

    - #### without

          public ObjectWriter without(SerializationFeature feature)

      Method for constructing a new instance that is configured with specified feature enabled.

    - #### without

          public ObjectWriter without(SerializationFeature first,
                             SerializationFeature... other)

      Method for constructing a new instance that is configured with specified features enabled.

    - #### withoutFeatures

          public ObjectWriter withoutFeatures(SerializationFeature... features)

      Method for constructing a new instance that is configured with specified features enabled.

    - #### with

          public ObjectWriter with(com.fasterxml.jackson.core.JsonGenerator.Feature feature)

      Since:
        2.5

    - #### withFeatures

          public ObjectWriter withFeatures(com.fasterxml.jackson.core.JsonGenerator.Feature... features)

      Since:
        2.5

    - #### without

          public ObjectWriter without(com.fasterxml.jackson.core.JsonGenerator.Feature feature)

      Since:
        2.5

    - #### withoutFeatures

          public ObjectWriter withoutFeatures(com.fasterxml.jackson.core.JsonGenerator.Feature... features)

      Since:
        2.5

    - #### with

          public ObjectWriter with(com.fasterxml.jackson.core.FormatFeature feature)

      Since:
        2.7

    - #### withFeatures

          public ObjectWriter withFeatures(com.fasterxml.jackson.core.FormatFeature... features)

      Since:
        2.7

    - #### without

          public ObjectWriter without(com.fasterxml.jackson.core.FormatFeature feature)

      Since:
        2.7

    - #### withoutFeatures

          public ObjectWriter withoutFeatures(com.fasterxml.jackson.core.FormatFeature... features)

      Since:
        2.7

    - #### forType

          public ObjectWriter forType(JavaType rootType)

      Method that will construct a new instance that uses specific type as the root type for serialization, instead of runtime dynamic type of the root object itself.

      Note that method does NOT change state of this reader, but rather construct and returns a newly configured instance.

      Since:
        2.5

    - #### forType

          public ObjectWriter forType(java.lang.Class<?> rootType)

      Method that will construct a new instance that uses specific type as the root type for serialization, instead of runtime dynamic type of the root object itself.
      Since:
        2.5

    - #### forType

          public ObjectWriter forType(com.fasterxml.jackson.core.type.TypeReference<?> rootType)

      Method that will construct a new instance that uses specific type as the root type for serialization, instead of runtime dynamic type of the root object itself.
      Since:
        2.5

    - #### withType

          @Deprecated
          public ObjectWriter withType(JavaType rootType)

      Deprecated. since 2.5 Use `forType(JavaType)` instead

    - #### withType

          @Deprecated
          public ObjectWriter withType(java.lang.Class<?> rootType)

      Deprecated. since 2.5 Use `forType(Class)` instead

    - #### withType

          @Deprecated
          public ObjectWriter withType(com.fasterxml.jackson.core.type.TypeReference<?> rootType)

      Deprecated. since 2.5 Use `forType(TypeReference)` instead

    - #### with

          public ObjectWriter with(java.text.DateFormat df)

      Fluent factory method that will construct a new writer instance that will use specified date format for serializing dates; or if null passed, one that will serialize dates as numeric timestamps.

      Note that the method does NOT change state of this reader, but rather construct and returns a newly configured instance.

    - #### withDefaultPrettyPrinter

          public ObjectWriter withDefaultPrettyPrinter()

      Method that will construct a new instance that will use the default pretty printer for serialization.

    - #### with

          public ObjectWriter with(FilterProvider filterProvider)

      Method that will construct a new instance that uses specified provider for resolving filter instances by id.

    - #### with

          public ObjectWriter with(com.fasterxml.jackson.core.PrettyPrinter pp)

      Method that will construct a new instance that will use specified pretty printer (or, if null, will not do any pretty-printing)

    - #### withRootName

          public ObjectWriter withRootName(java.lang.String rootName)

      Method for constructing a new instance with configuration that specifies what root name to use for "root element wrapping". See `MapperConfigBase.withRootName(String)` for details.

      Note that method does NOT change state of this reader, but rather construct and returns a newly configured instance.

      Parameters:
        `rootName` - Root name to use, if non-empty; `null` for "use defaults", and empty String ("") for "do NOT add root wrapper"

    - #### withRootName

          public ObjectWriter withRootName(PropertyName rootName)

      Since:
        2.6

    - #### withoutRootName

          public ObjectWriter withoutRootName()

      Convenience method that is same as calling: `withRootName("")` which will forcibly prevent use of root name wrapping when writing values with this `ObjectWriter`.
      Since:
        2.6

    - #### with

          public ObjectWriter with(com.fasterxml.jackson.core.FormatSchema schema)

      Method that will construct a new instance that uses specific format schema for serialization.

      Note that method does NOT change state of this reader, but rather construct and returns a newly configured instance.

    - #### withSchema

          @Deprecated
          public ObjectWriter withSchema(com.fasterxml.jackson.core.FormatSchema schema)

      Deprecated. Since 2.5 use `with(FormatSchema)` instead

    - #### withView

          public ObjectWriter withView(java.lang.Class<?> view)

      Method that will construct a new instance that uses specified serialization view for serialization (with null basically disables view processing)

      Note that the method does NOT change state of this reader, but rather construct and returns a newly configured instance.

    - #### with

          public ObjectWriter with(java.util.Locale l)

    - #### with

          public ObjectWriter with(java.util.TimeZone tz)

    - #### with

          public ObjectWriter with(com.fasterxml.jackson.core.Base64Variant b64variant)

      Method that will construct a new instance that uses specified default `Base64Variant` for base64 encoding
      Since:
        2.1

    - #### with

          public ObjectWriter with(com.fasterxml.jackson.core.io.CharacterEscapes escapes)

      Since:
        2.3

    - #### with

          public ObjectWriter with(com.fasterxml.jackson.core.JsonFactory f)

      Since:
        2.3

    - #### with

          public ObjectWriter with(ContextAttributes attrs)

      Since:
        2.3

    - #### withAttributes

          public ObjectWriter withAttributes(java.util.Map<?,?> attrs)

      Mutant factory method that allows construction of a new writer instance that uses specified set of default attribute values.
      Since:
        2.3

    - #### withAttribute

          public ObjectWriter withAttribute(java.lang.Object key,
                                   java.lang.Object value)

      Since:
        2.3

    - #### withoutAttribute

          public ObjectWriter withoutAttribute(java.lang.Object key)

      Since:
        2.3

    - #### withRootValueSeparator

          public ObjectWriter withRootValueSeparator(java.lang.String sep)

      Since:
        2.5

    - #### withRootValueSeparator

          public ObjectWriter withRootValueSeparator(com.fasterxml.jackson.core.SerializableString sep)

      Since:
        2.5

    - #### writeValues

          public SequenceWriter writeValues(java.io.File out)
                                     throws java.io.IOException

      Method for creating a `SequenceWriter` to write a sequence of root values using configuration of this `ObjectWriter`. Sequence is not surrounded by JSON array; some backend types may not support writing of such sequences as root level. Resulting writer needs to be `SequenceWriter.close()`d after all values have been written to ensure closing of underlying generator and output stream.
      Parameters:
        `out` - Target file to write value sequence to.
      Throws:
        `java.io.IOException`
      Since:
        2.5

    - #### writeValues

          public SequenceWriter writeValues(com.fasterxml.jackson.core.JsonGenerator gen)
                                     throws java.io.IOException

      Method for creating a `SequenceWriter` to write a sequence of root values using configuration of this `ObjectWriter`. Sequence is not surrounded by JSON array; some backend types may not support writing of such sequences as root level. Resulting writer needs to be `SequenceWriter.close()`d after all values have been written to ensure that all content gets flushed by the generator. However, since a `JsonGenerator` is explicitly passed, it will NOT be closed when `SequenceWriter.close()` is called.
      Parameters:
        `gen` - Low-level generator caller has already constructed that will be used for actual writing of token stream.
      Throws:
        `java.io.IOException`
      Since:
        2.5

    - #### writeValues

          public SequenceWriter writeValues(java.io.Writer out)
                                     throws java.io.IOException

      Method for creating a `SequenceWriter` to write a sequence of root values using configuration of this `ObjectWriter`. Sequence is not surrounded by JSON array; some backend types may not support writing of such sequences as root level. Resulting writer needs to be `SequenceWriter.close()`d after all values have been written to ensure closing of underlying generator and output stream.
      Parameters:
        `out` - Target writer to use for writing the token stream
      Throws:
        `java.io.IOException`
      Since:
        2.5

    - #### writeValues

          public SequenceWriter writeValues(java.io.OutputStream out)
                                     throws java.io.IOException

      Method for creating a `SequenceWriter` to write a sequence of root values using configuration of this `ObjectWriter`. Sequence is not surrounded by JSON array; some backend types may not support writing of such sequences as root level. Resulting writer needs to be `SequenceWriter.close()`d after all values have been written to ensure closing of underlying generator and output stream.
      Parameters:
        `out` - Physical output stream to use for writing the token stream
      Throws:
        `java.io.IOException`
      Since:
        2.5

    - #### writeValues

          public SequenceWriter writeValues(java.io.DataOutput out)
                                     throws java.io.IOException

      Throws:
        `java.io.IOException`
      Since:
        2.8

    - #### writeValuesAsArray

          public SequenceWriter writeValuesAsArray(java.io.File out)
                                            throws java.io.IOException

      Method for creating a `SequenceWriter` to write an array of root-level values, using configuration of this `ObjectWriter`. Resulting writer needs to be `SequenceWriter.close()`d after all values have been written to ensure closing of underlying generator and output stream.

      Note that the type to use with `forType(Class)` needs to be type of individual values (elements) to write and NOT matching array or `Collection` type.

      Parameters:
        `out` - File to write token stream to
      Throws:
        `java.io.IOException`
      Since:
        2.5

    - #### writeValuesAsArray

          public SequenceWriter writeValuesAsArray(com.fasterxml.jackson.core.JsonGenerator gen)
                                            throws java.io.IOException

      Method for creating a `SequenceWriter` to write an array of root-level values, using configuration of this `ObjectWriter`. Resulting writer needs to be `SequenceWriter.close()`d after all values have been written to ensure that all content gets flushed by the generator. However, since a `JsonGenerator` is explicitly passed, it will NOT be closed when `SequenceWriter.close()` is called.

      Note that the type to use with `forType(Class)` needs to be type of individual values (elements) to write and NOT matching array or `Collection` type.

      Parameters:
        `gen` - Underlying generator to use for writing the token stream
      Throws:
        `java.io.IOException`
      Since:
        2.5

    - #### writeValuesAsArray

          public SequenceWriter writeValuesAsArray(java.io.Writer out)
                                            throws java.io.IOException

      Method for creating a `SequenceWriter` to write an array of root-level values, using configuration of this `ObjectWriter`. Resulting writer needs to be `SequenceWriter.close()`d after all values have been written to ensure closing of underlying generator and output stream.

      Note that the type to use with `forType(Class)` needs to be type of individual values (elements) to write and NOT matching array or `Collection` type.

      Parameters:
        `out` - Writer to use for writing the token stream
      Throws:
        `java.io.IOException`
      Since:
        2.5

    - #### writeValuesAsArray

          public SequenceWriter writeValuesAsArray(java.io.OutputStream out)
                                            throws java.io.IOException

      Method for creating a `SequenceWriter` to write an array of root-level values, using configuration of this `ObjectWriter`. Resulting writer needs to be `SequenceWriter.close()`d after all values have been written to ensure closing of underlying generator and output stream.

      Note that the type to use with `forType(Class)` needs to be type of individual values (elements) to write and NOT matching array or `Collection` type.

      Parameters:
        `out` - Physical output stream to use for writing the token stream
      Throws:
        `java.io.IOException`
      Since:
        2.5

    - #### writeValuesAsArray

          public SequenceWriter writeValuesAsArray(java.io.DataOutput out)
                                            throws java.io.IOException

      Throws:
        `java.io.IOException`
      Since:
        2.8

    - #### isEnabled

          public boolean isEnabled(SerializationFeature f)

    - #### isEnabled

          public boolean isEnabled(MapperFeature f)

    - #### isEnabled

          @Deprecated
          public boolean isEnabled(com.fasterxml.jackson.core.JsonParser.Feature f)

      Deprecated.
      Since:
        2.8.5

    - #### isEnabled

          public boolean isEnabled(com.fasterxml.jackson.core.JsonGenerator.Feature f)

      Since:
        2.8.5

    - #### getConfig

          public SerializationConfig getConfig()

      Since:
        2.2

    - #### getFactory

          public com.fasterxml.jackson.core.JsonFactory getFactory()

      Since:
        2.2

    - #### getTypeFactory

          public TypeFactory getTypeFactory()

    - #### hasPrefetchedSerializer

          public boolean hasPrefetchedSerializer()

      Diagnostics method that can be called to check whether this writer has pre-fetched serializer to use: pre-fetching improves performance when writer instances are reused as it avoids a per-call serializer lookup.
      Since:
        2.2

    - #### getAttributes

          public ContextAttributes getAttributes()

      Since:
        2.3

    - #### writeValue

          public void writeValue(com.fasterxml.jackson.core.JsonGenerator gen,
                        java.lang.Object value)
                          throws java.io.IOException

      Method that can be used to serialize any Java value as JSON output, using provided `JsonGenerator`.
      Throws:
        `java.io.IOException`

    - #### writeValue

          public void writeValue(java.io.File resultFile,
                        java.lang.Object value)
                          throws java.io.IOException,
                                 com.fasterxml.jackson.core.JsonGenerationException,
                                 JsonMappingException

      Method that can be used to serialize any Java value as JSON output, written to File provided.
      Throws:
        `java.io.IOException`
        `com.fasterxml.jackson.core.JsonGenerationException`
        `JsonMappingException`

    - #### writeValue

          public void writeValue(java.io.OutputStream out,
                        java.lang.Object value)
                          throws java.io.IOException,
                                 com.fasterxml.jackson.core.JsonGenerationException,
                                 JsonMappingException

      Method that can be used to serialize any Java value as JSON output, using output stream provided (using encoding `JsonEncoding.UTF8`).

      Note: method does not close the underlying stream explicitly here; however, `JsonFactory` this mapper uses may choose to close the stream depending on its settings (by default, it will try to close it when `JsonGenerator` we construct is closed).

      Throws:
        `java.io.IOException`
        `com.fasterxml.jackson.core.JsonGenerationException`
        `JsonMappingException`

    - #### writeValue

          public void writeValue(java.io.Writer w,
                        java.lang.Object value)
                          throws java.io.IOException,
                                 com.fasterxml.jackson.core.JsonGenerationException,
                                 JsonMappingException

      Method that can be used to serialize any Java value as JSON output, using Writer provided.

      Note: method does not close the underlying stream explicitly here; however, `JsonFactory` this mapper uses may choose to close the stream depending on its settings (by default, it will try to close it when `JsonGenerator` we construct is closed).

      Throws:
        `java.io.IOException`
        `com.fasterxml.jackson.core.JsonGenerationException`
        `JsonMappingException`

    - #### writeValue

          public void writeValue(java.io.DataOutput out,
                        java.lang.Object value)
                          throws java.io.IOException

      Throws:
        `java.io.IOException`
      Since:
        2.8

    - #### writeValueAsString

          public java.lang.String writeValueAsString(java.lang.Object value)
                                              throws com.fasterxml.jackson.core.JsonProcessingException

      Method that can be used to serialize any Java value as a String. Functionally equivalent to calling `writeValue(Writer,Object)` with `StringWriter` and constructing String, but more efficient.

      Note: prior to version 2.1, throws clause included `IOException`; 2.1 removed it.

      Throws:
        `com.fasterxml.jackson.core.JsonProcessingException`

    - #### writeValueAsBytes

          public byte[] writeValueAsBytes(java.lang.Object value)
                                   throws com.fasterxml.jackson.core.JsonProcessingException

      Method that can be used to serialize any Java value as a byte array. Functionally equivalent to calling `writeValue(Writer,Object)` with `ByteArrayOutputStream` and getting bytes, but more efficient. Encoding used will be UTF-8.

      Note: prior to version 2.1, throws clause included `IOException`; 2.1 removed it.

      Throws:
        `com.fasterxml.jackson.core.JsonProcessingException`

    - #### acceptJsonFormatVisitor

          public void acceptJsonFormatVisitor(JavaType type,
                                     JsonFormatVisitorWrapper visitor)
                                       throws JsonMappingException

      Method for visiting type hierarchy for given type, using specified visitor. Visitation uses `Serializer` hierarchy and related properties

      This method can be used for things like generating Json Schema instance for specified type.

      Parameters:
        `type` - Type to generate schema for (possibly with generic signature)
      Throws:
        `JsonMappingException`
      Since:
        2.2

    - #### acceptJsonFormatVisitor

          public void acceptJsonFormatVisitor(java.lang.Class<?> rawType,
                                     JsonFormatVisitorWrapper visitor)
                                       throws JsonMappingException

      Since 2.6
      Throws:
        `JsonMappingException`

    - #### canSerialize

          public boolean canSerialize(java.lang.Class<?> type)

    - #### canSerialize

          public boolean canSerialize(java.lang.Class<?> type,
                             java.util.concurrent.atomic.AtomicReference<java.lang.Throwable> cause)

      Method for checking whether instances of given type can be serialized, and optionally why (as per `Throwable` returned).
      Since:
        2.3

    - #### _serializerProvider

          protected DefaultSerializerProvider _serializerProvider()

      Overridable helper method used for constructing `SerializerProvider` to use for serialization.

    - #### _verifySchemaType

          protected void _verifySchemaType(com.fasterxml.jackson.core.FormatSchema schema)

      Since:
        2.2

    - #### _configAndWriteValue

          protected final void _configAndWriteValue(com.fasterxml.jackson.core.JsonGenerator gen,
                                  java.lang.Object value)
                                             throws java.io.IOException

      Method called to configure the generator as necessary and then call write functionality
      Throws:
        `java.io.IOException`

    - #### _configureGenerator

          protected final void _configureGenerator(com.fasterxml.jackson.core.JsonGenerator gen)

      Helper method called to set or override settings of passed-in `JsonGenerator`
      Since:
        2.5