Class EnumResolver
- java.lang.Object
-
- com.fasterxml.jackson.databind.util.EnumResolver
-
- All Implemented Interfaces:
java.io.Serializable
public class EnumResolver extends java.lang.Object implements java.io.Serializable
Helper class used to resolve String values (either JSON Object field names or regular String values) into Java Enum instances.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.Enum<?>
_defaultValue
protected java.lang.Class<java.lang.Enum<?>>
_enumClass
protected java.lang.Enum<?>[]
_enums
protected java.util.HashMap<java.lang.String,java.lang.Enum<?>>
_enumsById
protected 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 boolean
_isIgnoreCase
Marker for case-insensitive handling
-
Constructor Summary
Constructors Modifier Constructor Description protected
EnumResolver(java.lang.Class<java.lang.Enum<?>> enumClass, java.lang.Enum<?>[] enums, java.util.HashMap<java.lang.String,java.lang.Enum<?>> map, java.lang.Enum<?> defaultValue, boolean isIgnoreCase)
Deprecated.Since 2.13 -- remove from 2.16protected
EnumResolver(java.lang.Class<java.lang.Enum<?>> enumClass, java.lang.Enum<?>[] enums, java.util.HashMap<java.lang.String,java.lang.Enum<?>> map, java.lang.Enum<?> defaultValue, boolean isIgnoreCase, boolean isFromIntValue)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected static EnumResolver
_constructFor(DeserializationConfig config, java.lang.Class<?> enumCls0)
protected static EnumResolver
_constructUsingMethod(DeserializationConfig config, java.lang.Class<?> enumCls0, AnnotatedMember accessor)
protected static EnumResolver
_constructUsingToString(DeserializationConfig config, java.lang.Class<?> enumCls0)
protected static java.lang.Class<java.lang.Enum<?>>
_enumClass(java.lang.Class<?> enumCls0)
protected static java.lang.Enum<?>[]
_enumConstants(java.lang.Class<?> enumCls)
protected static java.lang.Enum<?>
_enumDefault(AnnotationIntrospector intr, java.lang.Class<?> enumCls)
protected java.lang.Enum<?>
_findEnumCaseInsensitive(java.lang.String key)
protected static boolean
_isIntType(java.lang.Class<?> erasedType)
static EnumResolver
constructFor(DeserializationConfig config, java.lang.Class<?> enumCls)
Factory method for constructing resolver that maps from Enum.name() into Enum value.CompactStringObjectMap
constructLookup()
static EnumResolver
constructUsingEnumNamingStrategy(DeserializationConfig config, java.lang.Class<?> enumCls, EnumNamingStrategy enumNamingStrategy)
Factory method for constructing resolver that maps the name of enums converted to external property names into Enum value using an implementation ofEnumNamingStrategy
.static EnumResolver
constructUsingIndex(DeserializationConfig config, java.lang.Class<java.lang.Enum<?>> enumCls)
Factory method for constructing resolver that maps from index of Enum.values() into Enum valuestatic EnumResolver
constructUsingMethod(DeserializationConfig config, java.lang.Class<?> enumCls, AnnotatedMember accessor)
Method used when actual String serialization is indicated using @JsonValue on a method in Enum class.static EnumResolver
constructUsingToString(DeserializationConfig config, java.lang.Class<?> enumCls)
Factory method for constructing resolver that maps from Enum.toString() into Enum valuejava.lang.Enum<?>
findEnum(java.lang.String key)
java.lang.Enum<?>
getDefaultValue()
java.lang.Enum<?>
getEnum(int index)
java.lang.Class<java.lang.Enum<?>>
getEnumClass()
java.util.Collection<java.lang.String>
getEnumIds()
java.util.List<java.lang.Enum<?>>
getEnums()
java.lang.Enum<?>[]
getRawEnums()
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 toEnum.index()
.int
lastValidIndex()
-
-
-
Field Detail
-
_enumClass
protected final java.lang.Class<java.lang.Enum<?>> _enumClass
-
_enums
protected final java.lang.Enum<?>[] _enums
-
_enumsById
protected final java.util.HashMap<java.lang.String,java.lang.Enum<?>> _enumsById
-
_defaultValue
protected final java.lang.Enum<?> _defaultValue
-
_isIgnoreCase
protected final boolean _isIgnoreCase
Marker for case-insensitive handling- Since:
- 2.12
-
_isFromIntValue
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
-
-
Constructor Detail
-
EnumResolver
protected EnumResolver(java.lang.Class<java.lang.Enum<?>> enumClass, java.lang.Enum<?>[] enums, java.util.HashMap<java.lang.String,java.lang.Enum<?>> map, java.lang.Enum<?> defaultValue, boolean isIgnoreCase, boolean isFromIntValue)
- Since:
- 2.12
-
EnumResolver
@Deprecated protected EnumResolver(java.lang.Class<java.lang.Enum<?>> enumClass, java.lang.Enum<?>[] enums, java.util.HashMap<java.lang.String,java.lang.Enum<?>> map, java.lang.Enum<?> defaultValue, boolean isIgnoreCase)
Deprecated.Since 2.13 -- remove from 2.16
-
-
Method Detail
-
constructFor
public static EnumResolver constructFor(DeserializationConfig config, java.lang.Class<?> enumCls)
Factory method for constructing resolver that maps from Enum.name() into Enum value.- Since:
- 2.12
-
_constructFor
protected static EnumResolver _constructFor(DeserializationConfig config, java.lang.Class<?> enumCls0)
- Since:
- 2.15
-
constructUsingToString
public static EnumResolver constructUsingToString(DeserializationConfig config, java.lang.Class<?> enumCls)
Factory method for constructing resolver that maps from Enum.toString() into Enum value- Since:
- 2.12
-
constructUsingIndex
public static EnumResolver constructUsingIndex(DeserializationConfig config, java.lang.Class<java.lang.Enum<?>> enumCls)
Factory method for constructing resolver that maps from index of Enum.values() into Enum value- Since:
- 2.15
-
constructUsingEnumNamingStrategy
public static EnumResolver constructUsingEnumNamingStrategy(DeserializationConfig config, java.lang.Class<?> enumCls, EnumNamingStrategy enumNamingStrategy)
Factory method for constructing resolver that maps the name of enums converted to external property names into Enum value using an implementation ofEnumNamingStrategy
. The outputEnumResolver
should contain values that are symmetric toEnumValues.constructUsingEnumNamingStrategy(MapperConfig, Class, EnumNamingStrategy)
.- Since:
- 2.15
-
_constructUsingToString
protected static EnumResolver _constructUsingToString(DeserializationConfig config, java.lang.Class<?> enumCls0)
- Since:
- 2.12
-
constructUsingMethod
public static EnumResolver constructUsingMethod(DeserializationConfig config, java.lang.Class<?> enumCls, AnnotatedMember accessor)
Method used when actual String serialization is indicated using @JsonValue on a method in Enum class.- Since:
- 2.12
-
_constructUsingMethod
protected static EnumResolver _constructUsingMethod(DeserializationConfig config, java.lang.Class<?> enumCls0, AnnotatedMember accessor)
- Since:
- 2.12
-
constructLookup
public CompactStringObjectMap constructLookup()
-
_enumClass
protected static java.lang.Class<java.lang.Enum<?>> _enumClass(java.lang.Class<?> enumCls0)
-
_enumConstants
protected static java.lang.Enum<?>[] _enumConstants(java.lang.Class<?> enumCls)
-
_enumDefault
protected static java.lang.Enum<?> _enumDefault(AnnotationIntrospector intr, java.lang.Class<?> enumCls)
-
_isIntType
protected static boolean _isIntType(java.lang.Class<?> erasedType)
-
findEnum
public java.lang.Enum<?> findEnum(java.lang.String key)
-
_findEnumCaseInsensitive
protected java.lang.Enum<?> _findEnumCaseInsensitive(java.lang.String key)
-
getEnum
public java.lang.Enum<?> getEnum(int index)
-
getDefaultValue
public java.lang.Enum<?> getDefaultValue()
-
getRawEnums
public java.lang.Enum<?>[] getRawEnums()
-
getEnums
public java.util.List<java.lang.Enum<?>> getEnums()
-
getEnumIds
public java.util.Collection<java.lang.String> getEnumIds()
- Since:
- 2.7.3
-
getEnumClass
public java.lang.Class<java.lang.Enum<?>> getEnumClass()
-
lastValidIndex
public int lastValidIndex()
-
isFromIntValue
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 toEnum.index()
.- Since:
- 2.13
-
-