Enum Class SmileWriteFeature

java.lang.Object
java.lang.Enum<SmileWriteFeature>
tools.jackson.dataformat.smile.SmileWriteFeature
All Implemented Interfaces:
Serializable, Comparable<SmileWriteFeature>, Constable, tools.jackson.core.FormatFeature, tools.jackson.core.util.JacksonFeature

public enum SmileWriteFeature extends Enum<SmileWriteFeature> implements tools.jackson.core.FormatFeature
Enumeration that defines all togglable features for Smile generators.

NOTE: in Jackson 2.x this was named AvroGenerator.Feature.

  • Enum Constant Details

    • WRITE_HEADER

      public static final SmileWriteFeature 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 SmileWriteFeature WRITE_END_MARKER
      Whether write byte marker that signifies end of logical content segment (SmileConstants.BYTE_MARKER_END_OF_CONTENT) when SmileParserBase.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 SmileWriteFeature 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. This setting is enabled by default, however, overhead for binary data (14% size expansion, processing overhead) is non-negligible. 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 SmileWriteFeature CHECK_SHARED_NAMES
      Whether generator should check if it can "share" property names during generating content or not. If enabled, can replace repeating property 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 property names tend to repeat quite often, this setting is enabled by default.

    • CHECK_SHARED_STRING_VALUES

      public static final SmileWriteFeature 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.

    • LENIENT_UTF_ENCODING

      public static final SmileWriteFeature LENIENT_UTF_ENCODING
      Feature that determines if an invalid surrogate encoding found in the incoming String should fail with an exception or silently be output as the Unicode 'REPLACEMENT CHARACTER' (U+FFFD) or not; if not, an exception will be thrown to indicate invalid content.

      Default value is false (for backwards compatibility) meaning that an invalid surrogate will result in exception (StreamWriteException).

      Since:
      2.13
  • Field Details

    • _defaultState

      private final boolean _defaultState
    • _mask

      private final int _mask
  • Constructor Details

    • SmileWriteFeature

      private SmileWriteFeature(boolean defaultState)
  • Method Details

    • values

      public static SmileWriteFeature[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static SmileWriteFeature valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (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 class 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()
      Specified by:
      enabledByDefault in interface tools.jackson.core.util.JacksonFeature
    • getMask

      public int getMask()
      Specified by:
      getMask in interface tools.jackson.core.util.JacksonFeature
    • enabledIn

      public boolean enabledIn(int flags)
      Specified by:
      enabledIn in interface tools.jackson.core.util.JacksonFeature