Top Description Fields Constructors Methods
com.fasterxml.jackson.core

public final Enum StreamReadCapability

extends Enum<StreamReadCapability>
implements JacksonFeature
Class Inheritance
All Implemented Interfaces
com.fasterxml.jackson.core.util.JacksonFeature
Imports
com.fasterxml.jackson.core.util.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.
Since
2.12

Field Summary

Modifier and TypeField and Description
private final boolean
_defaultState

Whether feature is enabled or disabled by default.

private final int
public static final StreamReadCapability
DUPLICATE_PROPERTIES

Capability that indicates that data format can expose multiple properties with same name ("duplicates") within one Object context.

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, com.fasterxml.jackson.core.JsonParser.NumberType#DOUBLE) or not.

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.

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.

Constructor Summary

AccessConstructor and Description
private
StreamReadCapability(boolean defaultState)

Method Summary

Modifier and TypeMethod and Description
public boolean
enabledByDefault()

Implements com.fasterxml.jackson.core.util.JacksonFeature.enabledByDefault.

Accessor for checking whether this feature is enabled by default.

public boolean
enabledIn(int
Bit field that contains a set of enabled features of this type
flags
)

Implements com.fasterxml.jackson.core.util.JacksonFeature.enabledIn.

Convenience method for checking whether feature is enabled in given bitmask.

public int
getMask()

Implements com.fasterxml.jackson.core.util.JacksonFeature.getMask.

Returns bit mask for this feature instance; must be a single bit, that is of form 1 << N.

public static StreamReadCapability
public static StreamReadCapability[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

_defaultStateback to summary
private final boolean _defaultState

Whether feature is enabled or disabled by default.

_maskback to summary
private final int _mask
DUPLICATE_PROPERTIESback to summary
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 java.lang.Object).

Capability is currently only enabled for XML format backend.

EXACT_FLOATSback to summary
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, com.fasterxml.jackson.core.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 java.math.BigDecimal. But for performance reasons they may be (depending on settings) be exposed as java.lang.Doubles (that is, com.fasterxml.jackson.core.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
SCALARS_AS_OBJECTSback to summary
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_SCALARSback to summary
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.

Constructor Detail

StreamReadCapabilityback to summary
private StreamReadCapability(boolean defaultState)

Method Detail

enabledByDefaultback to summary
public boolean enabledByDefault()

Implements com.fasterxml.jackson.core.util.JacksonFeature.enabledByDefault.

Doc from com.fasterxml.jackson.core.util.JacksonFeature.enabledByDefault.

Accessor for checking whether this feature is enabled by default.

Returns:boolean

Whether this instance is enabled by default or not

Annotations
@Override
enabledInback to summary
public boolean enabledIn(int flags)

Implements com.fasterxml.jackson.core.util.JacksonFeature.enabledIn.

Doc from com.fasterxml.jackson.core.util.JacksonFeature.enabledIn.

Convenience method for checking whether feature is enabled in given bitmask.

Parameters
flags:int

Bit field that contains a set of enabled features of this type

Returns:boolean

True if this feature is enabled in passed bit field

Annotations
@Override
getMaskback to summary
public int getMask()

Implements com.fasterxml.jackson.core.util.JacksonFeature.getMask.

Doc from com.fasterxml.jackson.core.util.JacksonFeature.getMask.

Returns bit mask for this feature instance; must be a single bit, that is of form 1 << N.

Returns:int

Bit mask of this feature

Annotations
@Override
valueOfback to summary
public static StreamReadCapability valueOf(String name)
valuesback to summary
public static StreamReadCapability[] values()