SmileGenerator.Feature (Jackson JSON Processor)
Date: 2013-07-14

org.codehaus.jackson.smile

## Enum SmileGenerator.Feature

- java.lang.Object
- - java.lang.Enum<SmileGenerator.Feature>
  - - org.codehaus.jackson.smile.SmileGenerator.Feature

- All Implemented Interfaces:
    Serializable, Comparable<SmileGenerator.Feature>
  Enclosing class:
    SmileGenerator

      public static enum SmileGenerator.Feature
      extends Enum<SmileGenerator.Feature>

  Enumeration that defines all togglable features for Smile generators.

- - ### Enum Constant Summary

    Enum Constants
    Enum Constant and Description
    `CHECK_SHARED_NAMES` Whether generator should check if it can "share" field names during generating content or not.
    `CHECK_SHARED_STRING_VALUES` Whether generator should check if it can "share" short (at most 64 bytes encoded) String value during generating content or not.
    `ENCODE_BINARY_AS_7BIT` Whether to use simple 7-bit per byte encoding for binary content when output.
    `WRITE_END_MARKER` Whether write byte marker that signifies end of logical content segment (`SmileConstants.BYTE_MARKER_END_OF_CONTENT`) when `SmileGenerator.close()` is called or not.
    `WRITE_HEADER` Whether to write 4-byte header sequence when starting output or not.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected boolean` | `_defaultState`
    `protected int` | `_mask`

  - ### Method Summary

    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()`
    `int` | `getMask()`
    `static SmileGenerator.Feature` | `valueOf(String name)` Returns the enum constant of this type with the specified name.
    `static SmileGenerator.Feature[]` | `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

    - #### WRITE_HEADER

          public static final SmileGenerator.Feature WRITE_HEADER

      Whether to write 4-byte header sequence when starting output or not. If disabled, no header is written; this may be useful in embedded cases where context is enough to know that content is encoded using this format. Note, however, that omitting header means that default settings for shared names/string values can not be changed.

      Default setting is true, meaning that header will be written.

    - #### WRITE_END_MARKER

          public static final SmileGenerator.Feature WRITE_END_MARKER

      Whether write byte marker that signifies end of logical content segment (`SmileConstants.BYTE_MARKER_END_OF_CONTENT`) when `SmileGenerator.close()` is called or not. This can be useful when outputting multiple adjacent logical content segments (documents) into single physical output unit (file).

      Default setting is false meaning that such marker is not written.

    - #### ENCODE_BINARY_AS_7BIT

          public static final SmileGenerator.Feature ENCODE_BINARY_AS_7BIT

      Whether to use simple 7-bit per byte encoding for binary content when output. This is necessary ensure that byte 0xFF will never be included in content output. For other data types this limitation is handled automatically; but since overhead for binary data (14% size expansion, processing overhead) is non-negligible, it is not enabled by default. If no binary data is output, feature has no effect.

      Default setting is true, indicating that binary data is quoted as 7-bit bytes instead of written raw.

    - #### CHECK_SHARED_NAMES

          public static final SmileGenerator.Feature CHECK_SHARED_NAMES

      Whether generator should check if it can "share" field names during generating content or not. If enabled, can replace repeating field names with back references, which are more compact and should faster to decode. Downside is that there is some overhead for writing (need to track existing values, check), as well as decoding.

      Since field names tend to repeat quite often, this setting is enabled by default.

    - #### CHECK_SHARED_STRING_VALUES

          public static final SmileGenerator.Feature CHECK_SHARED_STRING_VALUES

      Whether generator should check if it can "share" short (at most 64 bytes encoded) String value during generating content or not. If enabled, can replace repeating Short String values with back references, which are more compact and should faster to decode. Downside is that there is some overhead for writing (need to track existing values, check), as well as decoding.

      Since efficiency of this option depends a lot on type of content being produced, this option is disabled by default, and should only be enabled if it is likely that same values repeat relatively often.

  - ### Field Detail

    - #### _defaultState

          protected final boolean _defaultState

    - #### _mask

          protected final int _mask

  - ### Method Detail

    - #### values

          public static SmileGenerator.Feature[] 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 (SmileGenerator.Feature c : SmileGenerator.Feature.values())
              System.out.println(c);

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

    - #### valueOf

          public static SmileGenerator.Feature 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.

    - #### enabledByDefault

          public boolean enabledByDefault()

    - #### getMask

          public int getMask()