com.fasterxml.jackson.databind.cfg

## Class DatatypeFeatures

- java.lang.Object
- - com.fasterxml.jackson.databind.cfg.DatatypeFeatures

All Implemented Interfaces:
  Serializable

    public class DatatypeFeatures
    extends Object
    implements Serializable

Immutable value class that contains settings for multiple `DatatypeFeature` enumerations.

Since:
  2.14
See Also:
  Serialized Form

### Field Summary

Fields
`protected static int` `FEATURE_INDEX_ENUM`
`protected static int` `FEATURE_INDEX_JSON_NODE`

### Constructor Summary

Constructors
`protected` `DatatypeFeatures(int enabledFor1, int explicitFor1, int enabledFor2, int explicitFor2)`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`static DatatypeFeatures` `defaultFeatures()`
`Boolean` `getExplicitState(DatatypeFeature f)` Accessor for getting explicit state of given feature in this set iff explicitly set, or `null` if not explicitly set (default value)
`boolean` `isEnabled(DatatypeFeature f)` Accessor for getting value of specified feature in this set, regardless of whether explicit defined or not (if not explicitly enabled/disabled returns default value, `JacksonFeature.enabledByDefault()`.
`boolean` `isExplicitlySet(DatatypeFeature f)` Accessor for checking whether given feature has been explicitly enabled or disabled in this set or not: if not it has the default value.
`DatatypeFeatures` `with(DatatypeFeature f)` Mutant factory method that returns an instance with given Feature explicitly enabled.
`DatatypeFeatures` `withFeatures(DatatypeFeature... features)` "Bulk" variant of `with(DatatypeFeature)` which allows explicit enabling of multiple features
`DatatypeFeatures` `without(DatatypeFeature f)` Mutant factory method that returns an instance with given Feature explicitly disabled.
`DatatypeFeatures` `withoutFeatures(DatatypeFeature... features)` "Bulk" variant of `without(DatatypeFeature)` which allows explicit disabling of multiple features

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

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

### Field Detail

#### FEATURE_INDEX_ENUM

    protected static final int FEATURE_INDEX_ENUM

See Also:
  Constant Field Values

#### FEATURE_INDEX_JSON_NODE

    protected static final int FEATURE_INDEX_JSON_NODE

See Also:
  Constant Field Values

### Constructor Detail

#### DatatypeFeatures

    protected DatatypeFeatures(int enabledFor1,
                               int explicitFor1,
                               int enabledFor2,
                               int explicitFor2)

### Method Detail

#### defaultFeatures

    public static DatatypeFeatures defaultFeatures()

#### with

    public DatatypeFeatures with(DatatypeFeature f)

Mutant factory method that returns an instance with given Feature explicitly enabled.

Parameters:
  `f` - `DatatypeFeature` to explicitly enable in this set
Returns:
  Existing instance if there is no change (feature was already explicitly enabled), or a new instance with feature explicitly enabled (if it was not).

#### withFeatures

    public DatatypeFeatures withFeatures(DatatypeFeature... features)

"Bulk" variant of `with(DatatypeFeature)` which allows explicit enabling of multiple features

Parameters:
  `features` - `DatatypeFeature`s to explicitly enable in this set
Returns:
  Existing instance if there is no change (features were already explicitly enabled), or a new instance with features explicitly enabled (if it was not).

#### without

    public DatatypeFeatures without(DatatypeFeature f)

Mutant factory method that returns an instance with given Feature explicitly disabled.

Parameters:
  `f` - `DatatypeFeature` to explicitly disable in this set
Returns:
  Existing instance if there is no change (feature was already explicitly disabled), or a new instance with feature explicitly disabled (if it was not).

#### withoutFeatures

    public DatatypeFeatures withoutFeatures(DatatypeFeature... features)

"Bulk" variant of `without(DatatypeFeature)` which allows explicit disabling of multiple features

Parameters:
  `features` - `DatatypeFeature`s to explicitly disable in this set
Returns:
  Existing instance if there is no change (features were already explicitly disabled), or a new instance with features explicitly disabled (if it was not).

#### isEnabled

    public boolean isEnabled(DatatypeFeature f)

Accessor for getting value of specified feature in this set, regardless of whether explicit defined or not (if not explicitly enabled/disabled returns default value, `JacksonFeature.enabledByDefault()`.

Parameters:
  `f` - Feature to check
Returns:
  True if the specified Feature is enabled in this set either explicitly or by having enabled by default (if not explicit enabled or disabled).

#### isExplicitlySet

    public boolean isExplicitlySet(DatatypeFeature f)

Accessor for checking whether given feature has been explicitly enabled or disabled in this set or not: if not it has the default value.

Parameters:
  `f` - Feature to check
Returns:
  Whether given feature has been explicitly set (enabled or disabled) in this set or not.

#### getExplicitState

    public Boolean getExplicitState(DatatypeFeature f)

Accessor for getting explicit state of given feature in this set iff explicitly set, or `null` if not explicitly set (default value)

Parameters:
  `f` - Feature to check
Returns:
  `Boolean.TRUE` if Feature has been explicitly enabled in this set; `Boolean.FALSE` if Feature has been explicitly disabled in this set; or `null` if Feature still has its default value.