package org.emdev.utils.enums;
import org.emdev.utils.LengthUtils;
import org.json.JSONObject;
public final class EnumUtils {
private EnumUtils() {
}
public static <E extends Enum<E> & ResourceConstant> E getByResValue(final Class<E> enumClass,
final String resValue, final E defValue) {
if (LengthUtils.isNotEmpty(resValue)) {
for (final E item : enumClass.getEnumConstants()) {
if (item.getResValue().equalsIgnoreCase(resValue)) {
return item;
}
}
}
return defValue;
}
public static <E extends Enum<E>> E getByName(final Class<E> enumClass, final String resValue, final E defValue) {
if (LengthUtils.isNotEmpty(resValue)) {
for (final E item : enumClass.getEnumConstants()) {
if (item.name().equalsIgnoreCase(resValue)) {
return item;
}
}
}
return defValue;
}
public static <E extends Enum<E>> E getByName(final Class<E> enumClass, final JSONObject object,
final String property, final E defValue) {
final String value = object.optString(property);
return getByName(enumClass, value, defValue);
}
}