Top Description Fields Constructors Methods
com.fasterxml.jackson.databind.util

public Class EnumResolver

extends Object
implements Serializable
Class Inheritance
All Implemented Interfaces
java.io.Serializable
Imports
java.util.*, com.fasterxml.jackson.databind.AnnotationIntrospector, .DeserializationConfig, .MapperFeature, .EnumNamingStrategy, com.fasterxml.jackson.databind.cfg.MapperConfig, com.fasterxml.jackson.databind.introspect.AnnotatedMember, .AnnotatedClass

Helper class used to resolve String values (either JSON Object field names or regular String values) into Java Enum instances.

Field Summary

Modifier and TypeField and Description
protected final Enum<?>
protected final Class<Enum<?>>
protected final Enum<?>[]
protected final HashMap<String, Enum<?>>
protected final boolean
_isFromIntValue

Marker for case where value may come from @JsonValue annotated accessor and is expected/likely to come from actual integral number value (and not String).

protected final boolean
_isIgnoreCase

Marker for case-insensitive handling

private static final long

Constructor Summary

AccessConstructor and Description
protected
EnumResolver(Class<Enum<?>> enumClass, Enum<?>[] enums, HashMap<String, Enum<?>> map, Enum<?> defaultValue, boolean isIgnoreCase, boolean isFromIntValue)

Method Summary

Modifier and TypeMethod and Description
protected static Class<Enum<?>>
_enumClass(Class<?> enumCls0)

protected static Enum<?>[]
_enumConstants(Class<?> enumCls)

protected static Enum<?>
_enumDefault(AnnotationIntrospector intr, AnnotatedClass annotatedClass, Enum<?>[] enums)

Internal helper method used to resolve Enum default value to use (if any).

protected static Enum<?>
_enumDefault(AnnotationIntrospector intr, Class<?> enumCls)
Deprecated Since 2.16.

protected Enum<?>
protected static boolean
_isIntType(Class<?> erasedType)

public static EnumResolver

Returns:

the constructed EnumResolver
constructFor
(DeserializationConfig
the deserialization configuration to use
config
,
AnnotatedClass
the annotated class of the enum to be resolved
annotatedClass
)

Factory method for constructing an EnumResolver based on the given DeserializationConfig and AnnotatedClass of the enum to be resolved.

public static EnumResolver
constructFor(DeserializationConfig config, Class<?> enumCls0)
Deprecated Since 2.16 use constructFor(DeserializationConfig, AnnotatedClass) instead

Factory method for constructing resolver that maps from Enum.name() into Enum value.

public CompactStringObjectMap
public static EnumResolver
constructUsingEnumNamingStrategy(DeserializationConfig config, Class<?> enumCls0, EnumNamingStrategy enumNamingStrategy)
Deprecated Since 2.16.

Factory method for constructing resolver that maps the name of enums converted to external property names into Enum value using an implementation of EnumNamingStrategy.

public static EnumResolver
constructUsingEnumNamingStrategy(DeserializationConfig config, AnnotatedClass annotatedClass, EnumNamingStrategy enumNamingStrategy)

Factory method for constructing an EnumResolver with EnumNamingStrategy applied.

public static EnumResolver
constructUsingIndex(DeserializationConfig config, AnnotatedClass annotatedClass)

Factory method for constructing resolver that maps from index of Enum.values() into Enum value.

public static EnumResolver
constructUsingIndex(DeserializationConfig config, Class<Enum<?>> enumCls0)
Deprecated Since 2.16.

Factory method for constructing resolver that maps from index of Enum.values() into Enum value

public static EnumResolver
constructUsingMethod(DeserializationConfig config, Class<?> enumCls0, AnnotatedMember accessor)
Deprecated Since 2.16.

Method used when actual String serialization is indicated using @JsonValue on a method in Enum class.

public static EnumResolver
constructUsingMethod(DeserializationConfig config, AnnotatedClass annotatedClass, AnnotatedMember accessor)

Method used when actual String serialization is indicated using @JsonValue on a method in Enum class.

public static EnumResolver
constructUsingToString(DeserializationConfig config, AnnotatedClass annotatedClass)

Factory method for constructing resolver that maps from Enum.toString() into Enum value

public static EnumResolver
constructUsingToString(DeserializationConfig config, Class<?> enumCls0)

Factory method for constructing resolver that maps from Enum.toString() into Enum value

public Enum<?>
findEnum(final String key)

public Enum<?>
public Enum<?>
getEnum(int index)

public Class<Enum<?>>
public Collection<String>
public List<Enum<?>>
public Enum<?>[]
public boolean
isFromIntValue()

Accessor for checking if we have a special case in which value to map is from @JsonValue annotated accessor with integral type: this matters for cases where incoming content value is of integral type and should be mapped to specific value and NOT to Enum.index().

public int
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

_defaultValueback to summary
protected final Enum<?> _defaultValue
_enumClassback to summary
protected final Class<Enum<?>> _enumClass
_enumsback to summary
protected final Enum<?>[] _enums
_enumsByIdback to summary
protected final HashMap<String, Enum<?>> _enumsById
_isFromIntValueback to summary
protected final boolean _isFromIntValue

Marker for case where value may come from @JsonValue annotated accessor and is expected/likely to come from actual integral number value (and not String).

Special case is needed since this specifically means that Enum.index() should NOT be used or default to.

Since
2.13
_isIgnoreCaseback to summary
protected final boolean _isIgnoreCase

Marker for case-insensitive handling

Since
2.12
serialVersionUIDback to summary
private static final long serialVersionUID

Constructor Detail

EnumResolverback to summary
protected EnumResolver(Class<Enum<?>> enumClass, Enum<?>[] enums, HashMap<String, Enum<?>> map, Enum<?> defaultValue, boolean isIgnoreCase, boolean isFromIntValue)
Since
2.12

Method Detail

_enumClassback to summary
protected static Class<Enum<?>> _enumClass(Class<?> enumCls0)
Annotations
@SuppressWarnings:unchecked
_enumConstantsback to summary
protected static Enum<?>[] _enumConstants(Class<?> enumCls)
_enumDefaultback to summary
protected static Enum<?> _enumDefault(AnnotationIntrospector intr, AnnotatedClass annotatedClass, Enum<?>[] enums)

Internal helper method used to resolve Enum default value to use (if any).

Since
2.16
See Also
AnnotationIntrospector#findDefaultEnumValue(AnnotatedClass, Enum[])
_enumDefaultback to summary
protected static Enum<?> _enumDefault(AnnotationIntrospector intr, Class<?> enumCls)
Annotations
@Deprecated
_findEnumCaseInsensitiveback to summary
protected Enum<?> _findEnumCaseInsensitive(final String key)
_isIntTypeback to summary
protected static boolean _isIntType(Class<?> erasedType)
constructForback to summary
public static EnumResolver constructFor(DeserializationConfig config, AnnotatedClass annotatedClass)

Factory method for constructing an EnumResolver based on the given DeserializationConfig and AnnotatedClass of the enum to be resolved.

Parameters
config:DeserializationConfig

the deserialization configuration to use

annotatedClass:AnnotatedClass

the annotated class of the enum to be resolved

Returns:EnumResolver

the constructed EnumResolver

Since
2.16
constructForback to summary
public static EnumResolver constructFor(DeserializationConfig config, Class<?> enumCls0)

Deprecated

Since 2.16 use constructFor(DeserializationConfig, AnnotatedClass) instead

Factory method for constructing resolver that maps from Enum.name() into Enum value.

Annotations
@Deprecated
Since
2.12
constructLookupback to summary
public CompactStringObjectMap constructLookup()
constructUsingEnumNamingStrategyback to summary
public static EnumResolver constructUsingEnumNamingStrategy(DeserializationConfig config, Class<?> enumCls0, EnumNamingStrategy enumNamingStrategy)

Factory method for constructing resolver that maps the name of enums converted to external property names into Enum value using an implementation of EnumNamingStrategy. The output EnumResolver should contain values that are symmetric to EnumValues#constructUsingEnumNamingStrategy(MapperConfig, Class, EnumNamingStrategy).

Annotations
@Deprecated
Since
2.15
constructUsingEnumNamingStrategyback to summary
public static EnumResolver constructUsingEnumNamingStrategy(DeserializationConfig config, AnnotatedClass annotatedClass, EnumNamingStrategy enumNamingStrategy)

Factory method for constructing an EnumResolver with EnumNamingStrategy applied.

Since
2.16
constructUsingIndexback to summary
public static EnumResolver constructUsingIndex(DeserializationConfig config, AnnotatedClass annotatedClass)

Factory method for constructing resolver that maps from index of Enum.values() into Enum value.

Since
2.16
constructUsingIndexback to summary
public static EnumResolver constructUsingIndex(DeserializationConfig config, Class<Enum<?>> enumCls0)

Factory method for constructing resolver that maps from index of Enum.values() into Enum value

Annotations
@Deprecated
Since
2.15
constructUsingMethodback to summary
public static EnumResolver constructUsingMethod(DeserializationConfig config, Class<?> enumCls0, AnnotatedMember accessor)

Method used when actual String serialization is indicated using @JsonValue on a method in Enum class.

Annotations
@Deprecated
Since
2.12
constructUsingMethodback to summary
public static EnumResolver constructUsingMethod(DeserializationConfig config, AnnotatedClass annotatedClass, AnnotatedMember accessor)

Method used when actual String serialization is indicated using @JsonValue on a method in Enum class.

Since
2.16
constructUsingToStringback to summary
public static EnumResolver constructUsingToString(DeserializationConfig config, AnnotatedClass annotatedClass)

Factory method for constructing resolver that maps from Enum.toString() into Enum value

Since
2.16
constructUsingToStringback to summary
public static EnumResolver constructUsingToString(DeserializationConfig config, Class<?> enumCls0)

Factory method for constructing resolver that maps from Enum.toString() into Enum value

Annotations
@Deprecated
Since
2.12
findEnumback to summary
public Enum<?> findEnum(final String key)
getDefaultValueback to summary
public Enum<?> getDefaultValue()
getEnumback to summary
public Enum<?> getEnum(int index)
getEnumClassback to summary
public Class<Enum<?>> getEnumClass()
getEnumIdsback to summary
public Collection<String> getEnumIds()
Since
2.7.3
getEnumsback to summary
public List<Enum<?>> getEnums()
getRawEnumsback to summary
public Enum<?>[] getRawEnums()
isFromIntValueback to summary
public boolean isFromIntValue()

Accessor for checking if we have a special case in which value to map is from @JsonValue annotated accessor with integral type: this matters for cases where incoming content value is of integral type and should be mapped to specific value and NOT to Enum.index().

Since
2.13
lastValidIndexback to summary
public int lastValidIndex()