Top Description Fields Constructors Methods
tools.jackson.databind.util

public Class EnumResolver

extends Object
implements Serializable
Class Inheritance
All Implemented Interfaces
java.io.Serializable
Imports
java.util.*, tools.jackson.databind.*, tools.jackson.databind.cfg.MapperConfig, tools.jackson.databind.introspect.AnnotatedClass, .AnnotatedMember

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
_hasAsValueAnnotation

Marker for case where enum values to match are from @JsonValue-annotated method.

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<?>> enumsById, Enum<?> defaultValue, boolean isIgnoreCase, boolean isFromIntValue, boolean hasAsValueAnnotation)

Method Summary

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

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

protected static Enum<?>
_enumDefault(MapperConfig<?> config, AnnotatedClass annotatedClass, Enum<?>[] enums)

Internal helper method used to resolve com.fasterxml.jackson.annotation.JsonEnumDefaultValue

private final 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 CompactStringObjectMap
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
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 Enum<?>
public Enum<?>
public Enum<?>
getEnum(int index)

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

Accessor for checking whether @JsonValue annotated accessor is used to get enum values to use for deserialization.

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
_hasAsValueAnnotationback to summary
protected final boolean _hasAsValueAnnotation

Marker for case where enum values to match are from @JsonValue-annotated method.

Since
2.20
_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.

_isIgnoreCaseback to summary
protected final boolean _isIgnoreCase

Marker for case-insensitive handling

serialVersionUIDback to summary
private static final long serialVersionUID

Constructor Detail

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

Method Detail

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

Internal helper method used to resolve com.fasterxml.jackson.annotation.JsonEnumDefaultValue

Since
2.16
_findEnumIgnoreCaseback to summary
private final Enum<?> _findEnumIgnoreCase(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

constructLookupback to summary
public CompactStringObjectMap constructLookup()
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.

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.

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
findEnumback to summary
public Enum<?> findEnum(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()
getEnumsback to summary
public List<Enum<?>> getEnums()
getRawEnumsback to summary
public Enum<?>[] getRawEnums()
hasAsValueAnnotationback to summary
public boolean hasAsValueAnnotation()

Accessor for checking whether @JsonValue annotated accessor is used to get enum values to use for deserialization.

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().

lastValidIndexback to summary
public int lastValidIndex()