StreamWriteFeature (Jackson-core 2.14.0 API)

com.fasterxml.jackson.core

## Enum StreamWriteFeature

- java.lang.Object
- - java.lang.Enum<StreamWriteFeature>
  - - com.fasterxml.jackson.core.StreamWriteFeature

- All Implemented Interfaces:
    JacksonFeature, Serializable, Comparable<StreamWriteFeature>

      public enum StreamWriteFeature
      extends Enum<StreamWriteFeature>
      implements JacksonFeature

  Token writer (generator) features not-specific to any particular format backend. Eventual replacement for non-JSON-specific `JsonGenerator.Feature`s.
  Since:
    2.10

- - ### Enum Constant Summary

    Enum Constants
    Enum Constant and Description
    `AUTO_CLOSE_CONTENT` Feature that determines what happens when the generator is closed while there are still unmatched `JsonToken.START_ARRAY` or `JsonToken.START_OBJECT` entries in output content.
    `AUTO_CLOSE_TARGET` Feature that determines whether generator will automatically close underlying output target that is NOT owned by the generator.
    `FLUSH_PASSED_TO_STREAM` Feature that specifies that calls to `JsonGenerator.flush()` will cause matching `flush()` to underlying `OutputStream` or `Writer`; if disabled this will not be done.
    `IGNORE_UNKNOWN` Feature that determines what to do if the underlying data format requires knowledge of all properties to output, and if no definition is found for a property that caller tries to write.
    `STRICT_DUPLICATE_DETECTION` Feature that determines whether `JsonGenerator` will explicitly check that no duplicate JSON Object field names are written.
    `USE_FAST_DOUBLE_WRITER` Feature that determines whether to use standard Java code to write floats/doubles (default) or use the Schubfach algorithm which is faster.
    `WRITE_BIGDECIMAL_AS_PLAIN` Feature that determines whether `BigDecimal` entries are serialized using `BigDecimal.toPlainString()` to prevent values to be written using scientific notation.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static int` | `collectDefaults()` Method that calculates bit set (flags) of all features that are enabled by default.
    `boolean` | `enabledByDefault()` Accessor for checking whether this feature is enabled by default.
    `boolean` | `enabledIn(int flags)` Convenience method for checking whether feature is enabled in given bitmask.
    `int` | `getMask()` Returns bit mask for this feature instance; must be a single bit, that is of form `1 << N`.
    `JsonGenerator.Feature` | `mappedFeature()`
    `static StreamWriteFeature` | `valueOf(String name)` Returns the enum constant of this type with the specified name.
    `static StreamWriteFeature[]` | `values()` Returns an array containing the constants of this enum type, in the order they are declared.

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

      `clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

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

      `getClass, notify, notifyAll, wait, wait, wait`

- - ### Enum Constant Detail

    - #### AUTO_CLOSE_TARGET

          public static final StreamWriteFeature AUTO_CLOSE_TARGET

      Feature that determines whether generator will automatically close underlying output target that is NOT owned by the generator. If disabled, calling application has to separately close the underlying `OutputStream` and `Writer` instances used to create the generator. If enabled, generator will handle closing, as long as generator itself gets closed: this happens when end-of-input is encountered, or generator is closed by a call to `JsonGenerator.close()`.

      Feature is enabled by default.

    - #### AUTO_CLOSE_CONTENT

          public static final StreamWriteFeature AUTO_CLOSE_CONTENT

      Feature that determines what happens when the generator is closed while there are still unmatched `JsonToken.START_ARRAY` or `JsonToken.START_OBJECT` entries in output content. If enabled, such Array(s) and/or Object(s) are automatically closed (that is, matching END_ token write call is made for all open scopes); if disabled, no additional write calls are made.

      Feature is enabled by default.

    - #### FLUSH_PASSED_TO_STREAM

          public static final StreamWriteFeature FLUSH_PASSED_TO_STREAM

      Feature that specifies that calls to `JsonGenerator.flush()` will cause matching `flush()` to underlying `OutputStream` or `Writer`; if disabled this will not be done. Main reason to disable this feature is to prevent flushing at generator level, if it is not possible to prevent method being called by other code (like `ObjectMapper` or third party libraries).

      Feature is enabled by default.

    - #### WRITE_BIGDECIMAL_AS_PLAIN

          public static final StreamWriteFeature WRITE_BIGDECIMAL_AS_PLAIN

      Feature that determines whether `BigDecimal` entries are serialized using `BigDecimal.toPlainString()` to prevent values to be written using scientific notation.

      NOTE: only affects generators that serialize `BigDecimal`s using textual representation (textual formats but potentially some binary formats).

      Feature is disabled by default, so default output mode is used; this generally depends on how `BigDecimal` has been created.

    - #### STRICT_DUPLICATE_DETECTION

          public static final StreamWriteFeature STRICT_DUPLICATE_DETECTION

      Feature that determines whether `JsonGenerator` will explicitly check that no duplicate JSON Object field names are written. If enabled, generator will check all names within context and report duplicates by throwing a `JsonGenerationException`; if disabled, no such checking will be done. Assumption in latter case is that caller takes care of not trying to write duplicate names.

      Note that enabling this feature will incur performance overhead due to having to store and check additional information.

      Feature is disabled by default.

    - #### IGNORE_UNKNOWN

          public static final StreamWriteFeature IGNORE_UNKNOWN

      Feature that determines what to do if the underlying data format requires knowledge of all properties to output, and if no definition is found for a property that caller tries to write. If enabled, such properties will be quietly ignored; if disabled, a `JsonProcessingException` will be thrown to indicate the problem. Typically most textual data formats do NOT require schema information (although some do, such as CSV), whereas many binary data formats do require definitions (such as Avro, protobuf), although not all (Smile, CBOR, BSON and MessagePack do not).

      Note that support for this feature is implemented by individual data format module, if (and only if) it makes sense for the format in question. For JSON, for example, this feature has no effect as properties need not be pre-defined.

      Feature is disabled by default, meaning that if the underlying data format requires knowledge of all properties to output, attempts to write an unknown property will result in a `JsonProcessingException`

    - #### USE_FAST_DOUBLE_WRITER

          public static final StreamWriteFeature USE_FAST_DOUBLE_WRITER

      Feature that determines whether to use standard Java code to write floats/doubles (default) or use the Schubfach algorithm which is faster. The latter approach may lead to small differences in the precision of the float/double that is written to the JSON output.

      Feature is disabled by default, meaning that slower JDK default conversions are used.

      Since:
        2.14

  - ### Method Detail

    - #### values

          public static StreamWriteFeature[] values()

      Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:

          for (StreamWriteFeature c : StreamWriteFeature.values())
              System.out.println(c);

      Returns:
        an array containing the constants of this enum type, in the order they are declared

    - #### valueOf

          public static StreamWriteFeature valueOf(String name)

      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
        `name` - the name of the enum constant to be returned.
      Returns:
        the enum constant with the specified name
      Throws:
        `IllegalArgumentException` - if this enum type has no constant with the specified name
        `NullPointerException` - if the argument is null

    - #### collectDefaults

          public static int collectDefaults()

      Method that calculates bit set (flags) of all features that are enabled by default.
      Returns:
        Bit mask of all features that are enabled by default

    - #### enabledByDefault

          public boolean enabledByDefault()

      Description copied from interface: `JacksonFeature`
      Accessor for checking whether this feature is enabled by default.
      Specified by:
        `enabledByDefault` in interface `JacksonFeature`
      Returns:
        Whether this instance is enabled by default or not

    - #### enabledIn

          public boolean enabledIn(int flags)

      Description copied from interface: `JacksonFeature`
      Convenience method for checking whether feature is enabled in given bitmask.
      Specified by:
        `enabledIn` in interface `JacksonFeature`
      Parameters:
        `flags` - Bit field that contains a set of enabled features of this type
      Returns:
        True if this feature is enabled in passed bit field

    - #### getMask

          public int getMask()

      Description copied from interface: `JacksonFeature`
      Returns bit mask for this feature instance; must be a single bit, that is of form `1 << N`.
      Specified by:
        `getMask` in interface `JacksonFeature`
      Returns:
        Bit mask of this feature

    - #### mappedFeature

          public JsonGenerator.Feature mappedFeature()

Copyright © 2008–2022 FasterXML. All rights reserved.