public class EnumResolver extends Object implements Serializable
| Modifier and Type | Field and Description |
|---|---|
protected Enum<?> |
_defaultValue |
protected Class<Enum<?>> |
_enumClass |
protected Enum<?>[] |
_enums |
protected HashMap<String,Enum<?>> |
_enumsById |
protected boolean |
_hasAsValueAnnotation
Marker for case where enum values to match are from
@JsonValue-annotated
method. |
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
|
| Modifier | Constructor and Description |
|---|---|
protected |
EnumResolver(Class<Enum<?>> enumClass,
Enum<?>[] enums,
HashMap<String,Enum<?>> map,
Enum<?> defaultValue,
boolean isIgnoreCase,
boolean isFromIntValue)
Deprecated.
Since 2.20; use variant that also takes
hasAsValueAnnotation argument |
protected |
EnumResolver(Class<Enum<?>> enumClass,
Enum<?>[] enums,
HashMap<String,Enum<?>> map,
Enum<?> defaultValue,
boolean isIgnoreCase,
boolean isFromIntValue,
boolean hasAsValueAnnotation) |
| Modifier and Type | Method 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 Enum<?> |
_findEnumCaseInsensitive(String key) |
protected static boolean |
_isIntType(Class<?> erasedType) |
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. |
CompactStringObjectMap |
constructLookup() |
static EnumResolver |
constructUsingEnumNamingStrategy(DeserializationConfig config,
AnnotatedClass annotatedClass,
EnumNamingStrategy enumNamingStrategy)
Factory method for constructing an
EnumResolver with EnumNamingStrategy applied. |
static EnumResolver |
constructUsingIndex(DeserializationConfig config,
AnnotatedClass annotatedClass)
Factory method for constructing resolver that maps from index of Enum.values() into
Enum value.
|
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.
|
static EnumResolver |
constructUsingToString(DeserializationConfig config,
AnnotatedClass annotatedClass)
Factory method for constructing resolver that maps from Enum.toString() into
Enum value
|
Enum<?> |
findEnum(String key) |
Enum<?> |
getDefaultValue() |
Enum<?> |
getEnum(int index) |
Class<Enum<?>> |
getEnumClass() |
Collection<String> |
getEnumIds() |
List<Enum<?>> |
getEnums() |
Enum<?>[] |
getRawEnums() |
boolean |
hasAsValueAnnotation()
Accessor for checking whether
@JsonValue annotated accessor is used
to get enum values to use for deserialization. |
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(). |
int |
lastValidIndex() |
protected final Enum<?>[] _enums
protected final Enum<?> _defaultValue
protected final boolean _isIgnoreCase
protected final boolean _isFromIntValue
@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.
protected final boolean _hasAsValueAnnotation
@JsonValue-annotated
method.protected EnumResolver(Class<Enum<?>> enumClass, Enum<?>[] enums, HashMap<String,Enum<?>> map, Enum<?> defaultValue, boolean isIgnoreCase, boolean isFromIntValue, boolean hasAsValueAnnotation)
public static EnumResolver constructFor(DeserializationConfig config, AnnotatedClass annotatedClass)
EnumResolver based on the given DeserializationConfig and
AnnotatedClass of the enum to be resolved.config - the deserialization configuration to useannotatedClass - the annotated class of the enum to be resolvedEnumResolverpublic static EnumResolver constructUsingToString(DeserializationConfig config, AnnotatedClass annotatedClass)
public static EnumResolver constructUsingIndex(DeserializationConfig config, AnnotatedClass annotatedClass)
public static EnumResolver constructUsingEnumNamingStrategy(DeserializationConfig config, AnnotatedClass annotatedClass, EnumNamingStrategy enumNamingStrategy)
EnumResolver with EnumNamingStrategy applied.public static EnumResolver constructUsingMethod(DeserializationConfig config, AnnotatedClass annotatedClass, AnnotatedMember accessor)
public CompactStringObjectMap constructLookup()
protected static Enum<?> _enumDefault(AnnotationIntrospector intr, AnnotatedClass annotatedClass, Enum<?>[] enums)
AnnotationIntrospector.findDefaultEnumValue(AnnotatedClass, Enum[])protected static boolean _isIntType(Class<?> erasedType)
public Enum<?> getEnum(int index)
public Enum<?> getDefaultValue()
public Enum<?>[] getRawEnums()
public Collection<String> getEnumIds()
public int lastValidIndex()
public boolean isFromIntValue()
@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 boolean hasAsValueAnnotation()
@JsonValue annotated accessor is used
to get enum values to use for deserialization.Copyright © 2008–2025 FasterXML. All rights reserved.