![JAR search and dependency download from the Maven repository](/logo.png)
org.codehaus.jackson.map.util.EnumValues Maven / Gradle / Ivy
Go to download
Data Mapper package is a high-performance data binding package
built on Jackson JSON processor
package org.codehaus.jackson.map.util;
import java.util.*;
import org.codehaus.jackson.map.*;
/**
* Helper class used for storing String serializations of
* enumerations.
*/
public final class EnumValues
{
private final EnumMap,String> _values;
@SuppressWarnings("unchecked")
private EnumValues(Map,String> v) {
_values = new EnumMap(v);
}
public static EnumValues construct(Class> enumClass, AnnotationIntrospector intr)
{
return constructFromName(enumClass, intr);
}
public static EnumValues constructFromName(Class> enumClass, AnnotationIntrospector intr)
{
/* [JACKSON-214]: Enum types with per-instance sub-classes
* need special handling
*/
Class extends Enum>> cls = ClassUtil.findEnumType(enumClass);
Enum>[] values = cls.getEnumConstants();
if (values != null) {
// Type juggling... unfortunate
Map,String> map = new HashMap,String>();
for (Enum> en : values) {
map.put(en, intr.findEnumValue(en));
}
return new EnumValues(map);
}
throw new IllegalArgumentException("Can not determine enum constants for Class "+enumClass.getName());
}
public static EnumValues constructFromToString(Class> enumClass, AnnotationIntrospector intr)
{
Class extends Enum>> cls = ClassUtil.findEnumType(enumClass);
Enum>[] values = cls.getEnumConstants();
if (values != null) {
// Type juggling... unfortunate
Map,String> map = new HashMap,String>();
for (Enum> en : values) {
map.put(en, en.toString());
}
return new EnumValues(map);
}
throw new IllegalArgumentException("Can not determine enum constants for Class "+enumClass.getName());
}
public String valueFor(Enum> key)
{
return _values.get(key);
}
public Collection values() {
return _values.values();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy