blob: 4c94d3b70a01f6f60887e4ad58734791913a5863 [file] [log] [blame]
package aQute.bnd.build.model.conversions;
public class EnumConverter<E extends Enum<E>> implements Converter<E,String> {
private final Class<E> enumType;
private final E defaultValue;
public static <E extends Enum<E>> EnumConverter<E> create(Class<E> enumType) {
return new EnumConverter<E>(enumType, null);
}
public static <E extends Enum<E>> EnumConverter<E> create(Class<E> enumType, E defaultValue) {
return new EnumConverter<E>(enumType, defaultValue);
}
private EnumConverter(Class<E> enumType, E defaultValue) {
this.enumType = enumType;
this.defaultValue = defaultValue;
}
public E convert(String input) throws IllegalArgumentException {
if (input == null)
return defaultValue;
return Enum.valueOf(enumType, input);
}
}