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.SerializableHelper 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<?>_defaultValueprotected java.lang.Class<java.lang.Enum<?>>_enumClassprotected java.lang.Enum<?>[]_enumsprotected java.util.HashMap<java.lang.String,java.lang.Enum<?>>_enumsByIdprotected boolean_isFromIntValueMarker for case where value may come from@JsonValueannotated accessor and is expected/likely to come from actual integral number value (and not String).protected boolean_isIgnoreCaseMarker for case-insensitive handling
-
Constructor Summary
Constructors Modifier Constructor Description protectedEnumResolver(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.16protectedEnumResolver(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 EnumResolverconstructFor(DeserializationConfig config, java.lang.Class<?> enumCls)Factory method for constructing resolver that maps from Enum.name() into Enum value.CompactStringObjectMapconstructLookup()static EnumResolverconstructUsingEnumNamingStrategy(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 EnumResolverconstructUsingIndex(DeserializationConfig config, java.lang.Class<java.lang.Enum<?>> enumCls)Factory method for constructing resolver that maps from index of Enum.values() into Enum valuestatic EnumResolverconstructUsingMethod(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 EnumResolverconstructUsingToString(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()booleanisFromIntValue()Accessor for checking if we have a special case in which value to map is from@JsonValueannotated 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().intlastValidIndex()
-
-
-
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@JsonValueannotated 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 outputEnumResolvershould 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@JsonValueannotated 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
-
-