Map<String, String> nameValueMap = new HashMap<String, String>();
Field[] fields = enumType.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
EnumValue enumValue = fields[i].getAnnotation(EnumValue.class);
if (enumValue != null) {
nameValueMap.put(fields[i].getName(), enumValue.value());
if (integerType && !isIntegerType(enumValue.value())) {
// will treat the values as strings
integerType = false;
}
}
}