Enum Class StreamReadCapability

java.lang.Object
java.lang.Enum<StreamReadCapability>
tools.jackson.core.StreamReadCapability
All Implemented Interfaces:
Serializable, Comparable<StreamReadCapability>, Constable, JacksonFeature

public enum StreamReadCapability extends Enum<StreamReadCapability> implements JacksonFeature
Set of on/off capabilities that a JsonParser for given format (or in case of buffering, original format) has. Used in some cases to adjust aspects of things like content conversions, coercions and validation by format-agnostic functionality. Specific or expected usage documented by individual capability entry Javadocs.
  • Nested Class Summary

    Nested classes/interfaces inherited from class Enum

    Enum.EnumDesc<E>
  • Enum Constant Summary

    Enum Constants
    Enum Constant
    Description
    Capability that indicates that data format can expose multiple properties with same name ("duplicates") within one Object context.
    Capability that indicates whether data format supports reporting of accurate floating point values (with respect to reported numeric type, JsonParser.NumberType.DOUBLE) or not.
    Capability that indicates that data format may in some cases expose Scalar values (whether typed or untyped) as Object values.
    Capability that indicates that data format only exposed "untyped" scalars: that is, instead of Number, Boolean and String types all scalar values are reported as text (JsonToken.VALUE_STRING) unless some sort of coercion is implied by caller.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final boolean
    Whether feature is enabled or disabled by default.
    private final int
     
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    private
    StreamReadCapability(boolean defaultState)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    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
    Returns bit mask for this feature instance; must be a single bit, that is of form 1 << N.
    Returns the enum constant of this class with the specified name.
    Returns an array containing the constants of this enum class, in the order they are declared.

    Methods inherited from class Object

    getClass, notify, notifyAll, wait, wait, wait
  • Enum Constant Details

    • DUPLICATE_PROPERTIES

      public static final StreamReadCapability DUPLICATE_PROPERTIES
      Capability that indicates that data format can expose multiple properties with same name ("duplicates") within one Object context. This is usually not enabled, except for formats like xml that have content model that does not map cleanly to JSON-based token stream.

      Capability may be used for allowing secondary mapping of such duplicates in case of using Tree Model (see TreeNode), or "untyped" databinding (mapping content as generic Object).

      Capability is currently only enabled for XML format backend.

    • SCALARS_AS_OBJECTS

      public static final StreamReadCapability SCALARS_AS_OBJECTS
      Capability that indicates that data format may in some cases expose Scalar values (whether typed or untyped) as Object values. There are additional access methods at databind level: this capability may be used to decide whether to attempt to use such methods especially in potentially ambiguous cases.

      Capability is currently only enabled for XML format backend.

    • UNTYPED_SCALARS

      public static final StreamReadCapability UNTYPED_SCALARS
      Capability that indicates that data format only exposed "untyped" scalars: that is, instead of Number, Boolean and String types all scalar values are reported as text (JsonToken.VALUE_STRING) unless some sort of coercion is implied by caller.

      This capability is true for many textual formats like CSV, Properties and XML.

    • EXACT_FLOATS

      public static final StreamReadCapability EXACT_FLOATS
      Capability that indicates whether data format supports reporting of accurate floating point values (with respect to reported numeric type, JsonParser.NumberType.DOUBLE) or not. This usually depends on whether format stores such values natively (as IEEE binary FP formats for java.lang.Float and java.lang.Double; using some other value preserving presentation for java.math.BigDecimal) or not: most binary formats do, and most textual formats do not (at least for Float and Double, specifically).

      In case of JSON numbers (as well as for most if not all textual formats), all floating-point numbers are represented simply by decimal (10-base) textual representation and can only be represented accurately using BigDecimal. But for performance reasons they may be (depending on settings) be exposed as Doubles (that is, JsonParser.NumberType.DOUBLE). Note that methods like JsonParser.getNumberValueExact(), JsonParser.getValueAsString() and JsonParser.getDecimalValue() report values without precision loss.

      The main intended use case is to let non-Jackson code to handle cases where exact accuracy is necessary in a way that handling does not incur unnecessary conversions across different formats: for example, when reading binary format, simple access is essentially guaranteed to expose value exactly as encoded by the format (as float, double or BigDecimal), whereas for textual formats like JSON it is necessary to access value explicitly as BigDecimal using JsonParser#getDecimalValue.

      Capability is false for text formats like JSON, but true for binary formats like Smile, MessagePack, etc., where type is precisely and inexpensively indicated by format.

      Since:
      2.14
  • Field Details

    • _defaultState

      private final boolean _defaultState
      Whether feature is enabled or disabled by default.
    • _mask

      private final int _mask
  • Constructor Details

    • StreamReadCapability

      private StreamReadCapability(boolean defaultState)
  • Method Details

    • values

      public static StreamReadCapability[] 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 StreamReadCapability 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
    • 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 - Bitfield 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