![JAR search and dependency download from the Maven repository](/logo.png)
org.codehaus.jackson.map.deser.EnumResolver Maven / Gradle / Ivy
package org.codehaus.jackson.map.deser;
import org.codehaus.jackson.map.AnnotationIntrospector;
import java.util.*;
/**
* Helper class used to resolve String values (either Json Object field
* names or regular String values) into Java Enum instances.
*/
public final class EnumResolver
{
protected final Class> _enumClass;
protected final Enum>[] _enums;
/**
*
*/
protected final HashMap> _enumsById;
private EnumResolver(Class> enumClass, Enum>[] enums, HashMap> map)
{
_enumClass = enumClass;
_enums = enums;
_enumsById = map;
}
public static EnumResolver constructFor(Class> rawEnumCls, AnnotationIntrospector ai)
{
@SuppressWarnings("unchecked")
Class> enumCls = (Class>) rawEnumCls;
Enum>[] enumValues = enumCls.getEnumConstants();
HashMap> map = new HashMap>();
for (Enum> e : enumValues) {
map.put(ai.findEnumValue(e), e);
}
return new EnumResolver(enumCls, enumValues, map);
}
public Enum> findEnum(String key)
{
return _enumsById.get(key);
}
public Enum> getEnum(int index)
{
if (index < 0 || index >= _enums.length) {
return null;
}
return _enums[index];
}
public Class> getEnumClass() { return _enumClass; }
public int lastValidIndex() { return _enums.length-1; }
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy