/** * @param enumClass * @param displayName * @return Returns the enum value matching the input displayName, belonging to the specified enum class * Does not throw an exception if enum value is not found, returns null */ public static <T extends Enum<?> & FriendlyNamed> T valueOfSilently(Class<T> enumClass, String displayName) { for (T each : enumClass.getEnumConstants()) { if (StringUtils.equalsIgnoreCase(each.getFriendlyName(), displayName)) { return each; } } return null; }
private static <T extends Enum<?> & FriendlyNamed> Collection<String> findValidValues(Class<T> enumClass) { List<String> result = new ArrayList<>(); for (FriendlyNamed each : enumClass.getEnumConstants()) { result.add(each.getFriendlyName()); } Collections.sort(result); return result; }