JsonGeneratorImpl (Jackson-core 2.12.0 API)
Date: 2021-01-08

com.fasterxml.jackson.core.json

## Class JsonGeneratorImpl

- java.lang.Object
- - com.fasterxml.jackson.core.JsonGenerator
  - - com.fasterxml.jackson.core.base.GeneratorBase
    - - com.fasterxml.jackson.core.json.JsonGeneratorImpl

- All Implemented Interfaces:
    Versioned, Closeable, Flushable, AutoCloseable
  Direct Known Subclasses:
    UTF8JsonGenerator, WriterBasedJsonGenerator

      public abstract class JsonGeneratorImpl
      extends GeneratorBase

  Intermediate base class shared by JSON-backed generators like `UTF8JsonGenerator` and `WriterBasedJsonGenerator`.
  Since:
    2.1

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class com.fasterxml.jackson.core.JsonGenerator

      `JsonGenerator.Feature`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected boolean` | `_cfgUnqNames` Flag that is set if quoting is not to be added around JSON Object property names.
    `protected CharacterEscapes` | `_characterEscapes` Definition of custom character escapes to use for generators created by this factory, if any.
    `protected IOContext` | `_ioContext`
    `protected int` | `_maximumNonEscapedChar` Value between 128 (0x80) and 65535 (0xFFFF) that indicates highest Unicode code point that will not need escaping; or 0 to indicate that all characters can be represented without escaping.
    `protected int[]` | `_outputEscapes` Currently active set of output escape code definitions (whether and how to escape or not) for 7-bit ASCII range (first 128 character codes).
    `protected SerializableString` | `_rootValueSeparator` Separator to use, if any, between root-level values.
    `protected static JacksonFeatureSet<StreamWriteCapability>` | `JSON_WRITE_CAPABILITIES` Default capabilities for JSON generator implementations which do not different from "general textual" defaults
    `protected static int[]` | `sOutputEscapes` This is the default set of escape codes, over 7-bit ASCII range (first 128 character codes), used for single-byte UTF-8 characters.

    - ### Fields inherited from class com.fasterxml.jackson.core.base.GeneratorBase

      `_cfgNumbersAsStrings, _closed, _features, _objectCodec, _writeContext, DERIVED_FEATURES_MASK, MAX_BIG_DECIMAL_SCALE, SURR1_FIRST, SURR1_LAST, SURR2_FIRST, SURR2_LAST, WRITE_BINARY, WRITE_BOOLEAN, WRITE_NULL, WRITE_NUMBER, WRITE_RAW, WRITE_STRING`

    - ### Fields inherited from class com.fasterxml.jackson.core.JsonGenerator

      `_cfgPrettyPrinter, DEFAULT_BINARY_WRITE_CAPABILITIES, DEFAULT_TEXTUAL_WRITE_CAPABILITIES, DEFAULT_WRITE_CAPABILITIES`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `JsonGeneratorImpl(IOContext ctxt, int features, ObjectCodec codec)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `_checkStdFeatureChanges(int newFeatureFlags, int changedFeatures)` Helper method called to verify changes to standard features.
    `protected void` | `_reportCantWriteValueExpectName(String typeMsg)`
    `protected void` | `_verifyPrettyValueWrite(String typeMsg, int status)`
    `JsonGenerator` | `disable(JsonGenerator.Feature f)` Method for disabling specified feature (check `JsonGenerator.Feature` for list of features)
    `JsonGenerator` | `enable(JsonGenerator.Feature f)` Method for enabling specified generator feature: check `JsonGenerator.Feature` for list of available features.
    `CharacterEscapes` | `getCharacterEscapes()` Method for accessing custom escapes factory uses for `JsonGenerator`s it creates.
    `int` | `getHighestEscapedChar()` Accessor method for testing what is the highest unescaped character configured for this generator.
    `JacksonFeatureSet<StreamWriteCapability>` | `getWriteCapabilities()` Accessor for getting metadata on capabilities of this generator, based on underlying data format being read (directly or indirectly).
    `JsonGenerator` | `setCharacterEscapes(CharacterEscapes esc)` Method for defining custom escapes factory uses for `JsonGenerator`s it creates.
    `JsonGenerator` | `setHighestNonEscapedChar(int charCode)` Method that can be called to request that generator escapes all character codes above specified code point (if positive value); or, to not escape any characters except for ones that must be escaped for the data format (if -1).
    `JsonGenerator` | `setRootValueSeparator(SerializableString sep)` Method that allows overriding String used for separating root-level JSON values (default is single space character)
    `Version` | `version()` Implemented with standard version number detection algorithm, typically using a simple generated class, with information extracted from Maven project file during build.

    - ### Methods inherited from class com.fasterxml.jackson.core.base.GeneratorBase

      `_asString, _constructDefaultPrettyPrinter, _decodeSurrogate, _releaseBuffers, _verifyValueWrite, close, flush, getCodec, getCurrentValue, getFeatureMask, getOutputContext, isClosed, isEnabled, overrideStdFeatures, setCodec, setCurrentValue, setFeatureMask, useDefaultPrettyPrinter, writeBinary, writeFieldName, writeObject, writeRawValue, writeRawValue, writeRawValue, writeRawValue, writeStartObject, writeString, writeTree`

    - ### Methods inherited from class com.fasterxml.jackson.core.JsonGenerator

      `_copyCurrentContents, _reportError, _reportUnsupportedOperation, _throwInternal, _verifyOffsets, _writeSimpleObject, canOmitFields, canUseSchema, canWriteBinaryNatively, canWriteFormattedNumbers, canWriteObjectId, canWriteTypeId, configure, copyCurrentEvent, copyCurrentStructure, getFormatFeatures, getOutputBuffered, getOutputTarget, getPrettyPrinter, getSchema, isEnabled, overrideFormatFeatures, setPrettyPrinter, setSchema, writeArray, writeArray, writeArray, writeArray, writeArrayFieldStart, writeBinary, writeBinary, writeBinary, writeBinary, writeBinaryField, writeBoolean, writeBooleanField, writeEmbeddedObject, writeEndArray, writeEndObject, writeFieldId, writeFieldName, writeNull, writeNullField, writeNumber, writeNumber, writeNumber, writeNumber, writeNumber, writeNumber, writeNumber, writeNumber, writeNumber, writeNumberField, writeNumberField, writeNumberField, writeNumberField, writeNumberField, writeNumberField, writeNumberField, writeObjectField, writeObjectFieldStart, writeObjectId, writeObjectRef, writeOmittedField, writeRaw, writeRaw, writeRaw, writeRaw, writeRaw, writeRawUTF8String, writeStartArray, writeStartArray, writeStartArray, writeStartArray, writeStartObject, writeStartObject, writeString, writeString, writeString, writeStringField, writeTypeId, writeTypePrefix, writeTypeSuffix, writeUTF8String`

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

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

- - ### Field Detail

    - #### sOutputEscapes

          protected static final int[] sOutputEscapes

      This is the default set of escape codes, over 7-bit ASCII range (first 128 character codes), used for single-byte UTF-8 characters.

    - #### JSON_WRITE_CAPABILITIES

          protected static final JacksonFeatureSet<StreamWriteCapability> JSON_WRITE_CAPABILITIES

      Default capabilities for JSON generator implementations which do not different from "general textual" defaults
      Since:
        2.12

    - #### _ioContext

          protected final IOContext _ioContext

    - #### _outputEscapes

          protected int[] _outputEscapes

      Currently active set of output escape code definitions (whether and how to escape or not) for 7-bit ASCII range (first 128 character codes). Defined separately to make potentially customizable

    - #### _maximumNonEscapedChar

          protected int _maximumNonEscapedChar

      Value between 128 (0x80) and 65535 (0xFFFF) that indicates highest Unicode code point that will not need escaping; or 0 to indicate that all characters can be represented without escaping. Typically used to force escaping of some portion of character set; for example to always escape non-ASCII characters (if value was 127).

      NOTE: not all sub-classes make use of this setting.

    - #### _characterEscapes

          protected CharacterEscapes _characterEscapes

      Definition of custom character escapes to use for generators created by this factory, if any. If null, standard data format specific escapes are used.

    - #### _rootValueSeparator

          protected SerializableString _rootValueSeparator

      Separator to use, if any, between root-level values.
      Since:
        2.1

    - #### _cfgUnqNames

          protected boolean _cfgUnqNames

      Flag that is set if quoting is not to be added around JSON Object property names.
      Since:
        2.7

  - ### Constructor Detail

    - #### JsonGeneratorImpl

          public JsonGeneratorImpl(IOContext ctxt,
                                   int features,
                                   ObjectCodec codec)

  - ### Method Detail

    - #### version

          public Version version()

      Description copied from class: `GeneratorBase`
      Implemented with standard version number detection algorithm, typically using a simple generated class, with information extracted from Maven project file during build.
      Specified by:
        `version` in interface `Versioned`
      Overrides:
        `version` in class `GeneratorBase`
      Returns:
        Version of this generator (derived from version declared for `jackson-core` jar that contains the class

    - #### enable

          public JsonGenerator enable(JsonGenerator.Feature f)

      Description copied from class: `JsonGenerator`
      Method for enabling specified generator feature: check `JsonGenerator.Feature` for list of available features.
      Overrides:
        `enable` in class `GeneratorBase`
      Parameters:
        `f` - Feature to enable
      Returns:
        This generator, to allow call chaining

    - #### disable

          public JsonGenerator disable(JsonGenerator.Feature f)

      Description copied from class: `JsonGenerator`
      Method for disabling specified feature (check `JsonGenerator.Feature` for list of features)
      Overrides:
        `disable` in class `GeneratorBase`
      Parameters:
        `f` - Feature to disable
      Returns:
        This generator, to allow call chaining

    - #### _checkStdFeatureChanges

          protected void _checkStdFeatureChanges(int newFeatureFlags,
                                                 int changedFeatures)

      Description copied from class: `GeneratorBase`
      Helper method called to verify changes to standard features.
      Overrides:
        `_checkStdFeatureChanges` in class `GeneratorBase`
      Parameters:
        `newFeatureFlags` - Bitflag of standard features after they were changed
        `changedFeatures` - Bitflag of standard features for which setting did change

    - #### setHighestNonEscapedChar

          public JsonGenerator setHighestNonEscapedChar(int charCode)

      Description copied from class: `JsonGenerator`
      Method that can be called to request that generator escapes all character codes above specified code point (if positive value); or, to not escape any characters except for ones that must be escaped for the data format (if -1). To force escaping of all non-ASCII characters, for example, this method would be called with value of 127.

      Note that generators are NOT required to support setting of value higher than 127, because there are other ways to affect quoting (or lack thereof) of character codes between 0 and 127. Not all generators support concept of escaping, either; if so, calling this method will have no effect.

      Default implementation does nothing; sub-classes need to redefine it according to rules of supported data format.

      Overrides:
        `setHighestNonEscapedChar` in class `JsonGenerator`
      Parameters:
        `charCode` - Either -1 to indicate that no additional escaping is to be done; or highest code point not to escape (meaning higher ones will be), if positive value.
      Returns:
        This generator, to allow call chaining

    - #### getHighestEscapedChar

          public int getHighestEscapedChar()

      Description copied from class: `JsonGenerator`
      Accessor method for testing what is the highest unescaped character configured for this generator. This may be either positive value (when escaping configuration has been set and is in effect), or 0 to indicate that no additional escaping is in effect. Some generators may not support additional escaping: for example, generators for binary formats that do not use escaping should simply return 0.
      Overrides:
        `getHighestEscapedChar` in class `JsonGenerator`
      Returns:
        Currently active limitation for highest non-escaped character, if defined; or 0 to indicate no additional escaping is performed.

    - #### setCharacterEscapes

          public JsonGenerator setCharacterEscapes(CharacterEscapes esc)

      Description copied from class: `JsonGenerator`
      Method for defining custom escapes factory uses for `JsonGenerator`s it creates.

      Default implementation does nothing and simply returns this instance.

      Overrides:
        `setCharacterEscapes` in class `JsonGenerator`
      Parameters:
        `esc` - `CharacterEscapes` to configure this generator to use, if any; `null` if none
      Returns:
        This generator, to allow call chaining

    - #### getCharacterEscapes

          public CharacterEscapes getCharacterEscapes()

      Method for accessing custom escapes factory uses for `JsonGenerator`s it creates.
      Overrides:
        `getCharacterEscapes` in class `JsonGenerator`
      Returns:
        `CharacterEscapes` configured for this generator, if any; `null` if none

    - #### setRootValueSeparator

          public JsonGenerator setRootValueSeparator(SerializableString sep)

      Description copied from class: `JsonGenerator`
      Method that allows overriding String used for separating root-level JSON values (default is single space character)

      Default implementation throws `UnsupportedOperationException`.

      Overrides:
        `setRootValueSeparator` in class `JsonGenerator`
      Parameters:
        `sep` - Separator to use, if any; null means that no separator is automatically added
      Returns:
        This generator, to allow call chaining

    - #### getWriteCapabilities

          public JacksonFeatureSet<StreamWriteCapability> getWriteCapabilities()

      Description copied from class: `JsonGenerator`
      Accessor for getting metadata on capabilities of this generator, based on underlying data format being read (directly or indirectly).
      Overrides:
        `getWriteCapabilities` in class `JsonGenerator`
      Returns:
        Set of write capabilities for content written using this generator

    - #### _verifyPrettyValueWrite

          protected void _verifyPrettyValueWrite(String typeMsg,
                                                 int status)
                                          throws IOException

      Throws:
        `IOException`

    - #### _reportCantWriteValueExpectName

          protected void _reportCantWriteValueExpectName(String typeMsg)
                                                  throws IOException

      Throws:
        `IOException`

Copyright © 2008–2021 FasterXML. All rights reserved.