@Override public T convert(String arg) { try { return Enum.valueOf(enumClass(), arg.toUpperCase().replaceAll("-", "_")); } catch (IllegalArgumentException e) { EnumSet<T> values = EnumSet.allOf(enumClass()); Set<String> validValues = new HashSet<>(); for (T value : values) { validValues.add(friendlyName(value)); } throw new ParameterException("Invalid value for " + getOptionName() + " parameter. Allowed values:" + validValues); } }
@Override public Set<T> convert(String val) { List<String> values = converter.convert(val); Set<T> set = EnumSet.noneOf(enumConverter().enumClass()); for (String value : values) { T t = enumConverter().convert(value); set.add(t); } return set; }