Package com.fasterxml.jackson.core

# Enum JsonFactory.Feature

java.lang.Object
java.lang.Enum<JsonFactory.Feature>
com.fasterxml.jackson.core.JsonFactory.Feature

All Implemented Interfaces:
  `JacksonFeature`, `Serializable`, `Comparable<JsonFactory.Feature>`, `java.lang.constant.Constable`

Enclosing class:
  JsonFactory

public static enum JsonFactory.Feature extends Enum<JsonFactory.Feature> implements JacksonFeature
Enumeration that defines all on/off features that can only be changed for `JsonFactory`.

## Nested Class Summary

## Nested classes/interfaces inherited from class java.lang.Enum

`Enum.EnumDesc<E extends Enum<E>>`

## Enum Constant Summary

Enum Constants
Enum Constant
Description
`CANONICALIZE_FIELD_NAMES`
Feature that determines whether JSON object field names are to be canonicalized (details of how canonicalization is done then further specified by `INTERN_FIELD_NAMES`).
`CHARSET_DETECTION`
Feature to control charset detection for byte-based inputs (`byte[]`, `InputStream`...).
`FAIL_ON_SYMBOL_HASH_OVERFLOW`
Feature that determines what happens if we encounter a case in symbol handling where number of hash collisions exceeds a safety threshold -- which almost certainly means a denial-of-service attack via generated duplicate hash codes.
`INTERN_FIELD_NAMES`
Feature that determines whether JSON object field names are to be canonicalized using `String.intern()` or not: if enabled, all field names will be intern()ed (and caller can count on this being true for all such names); if disabled, no intern()ing is done.
`USE_THREAD_LOCAL_FOR_BUFFER_RECYCLING`
Feature that determines whether we will use a `RecyclerPool` for allocating and possibly recycling `BufferRecycler` or not.

## Method Summary

Modifier and Type
Method
Description
`static int`
`collectDefaults()`
Method that calculates bit set (flags) of all features that are enabled by default.
`boolean`
`enabledByDefault()`
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`
`getMask()`
Returns bit mask for this feature instance; must be a single bit, that is of form `1 << N`.
`static JsonFactory.Feature`
`valueOf(String name)`
Returns the enum constant of this type with the specified name.
`static JsonFactory.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, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

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

`getClass, notify, notifyAll, wait, wait, wait`

## Enum Constant Details

### INTERN_FIELD_NAMES

public static final JsonFactory.Feature INTERN_FIELD_NAMES
Feature that determines whether JSON object field names are to be canonicalized using `String.intern()` or not: if enabled, all field names will be intern()ed (and caller can count on this being true for all such names); if disabled, no intern()ing is done. There may still be basic canonicalization (that is, same String will be used to represent all identical object property names for a single document).

Note: this setting only has effect if `CANONICALIZE_FIELD_NAMES` is true -- otherwise no canonicalization of any sort is done.

This setting is enabled by default.

### CANONICALIZE_FIELD_NAMES

public static final JsonFactory.Feature CANONICALIZE_FIELD_NAMES
Feature that determines whether JSON object field names are to be canonicalized (details of how canonicalization is done then further specified by `INTERN_FIELD_NAMES`).

This setting is enabled by default.

### FAIL_ON_SYMBOL_HASH_OVERFLOW

public static final JsonFactory.Feature FAIL_ON_SYMBOL_HASH_OVERFLOW
Feature that determines what happens if we encounter a case in symbol handling where number of hash collisions exceeds a safety threshold -- which almost certainly means a denial-of-service attack via generated duplicate hash codes. If feature is enabled, an `IllegalStateException` is thrown to indicate the suspected denial-of-service attack; if disabled, processing continues but canonicalization (and thereby `intern()`ing) is disabled) as protective measure.

This setting is enabled by default.

Since:
  2.4

### USE_THREAD_LOCAL_FOR_BUFFER_RECYCLING

public static final JsonFactory.Feature USE_THREAD_LOCAL_FOR_BUFFER_RECYCLING
Feature that determines whether we will use a `RecyclerPool` for allocating and possibly recycling `BufferRecycler` or not. The default `RecyclerPool` implementation uses `ThreadLocal` and `SoftReference` for efficient reuse of underlying input/output buffers. This usually makes sense on normal J2SE/J2EE server-side processing; but may not make sense on platforms where `SoftReference` handling is broken (like Android), or if there are retention issues due to `ThreadLocal` (see jackson-core#189 for a possible case)

Note that since 2.16 naming here is somewhat misleading as this is used to now enable or disable pooling; but the actual pooling implementation is configurable and may not be based on `ThreadLocal`.

This setting is enabled by default.

Since:
  2.6

### CHARSET_DETECTION

public static final JsonFactory.Feature CHARSET_DETECTION
Feature to control charset detection for byte-based inputs (`byte[]`, `InputStream`...). When this feature is enabled (the default), the factory will allow UTF-16 and UTF-32 inputs and try to detect them, as specified by RFC 4627. When this feature is disabled the factory will assume UTF-8, as specified by RFC 8259.

This setting is enabled by default.

Since:
  2.15

## Method Details

### values

public static JsonFactory.Feature[] values()
Returns an array containing the constants of this enum type, in the order they are declared.

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

### valueOf

public static JsonFactory.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.

Returns:
  Bit field of features enabled by default

### 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` - Bit field 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