cdc.util.prefs.defaults.EnumPreference Maven / Gradle / Ivy
package cdc.util.prefs.defaults;
import java.util.prefs.Preferences;
import cdc.util.prefs.AbstractPreference;
/**
* Enum preference (node, key) pair.
*
* @author Damien Carbonne
* @param The enum type.
*/
public class EnumPreference> extends AbstractPreference {
public EnumPreference(Class valueClass,
Preferences node,
String key,
E def) {
super(valueClass,
node,
key,
def,
Object::toString,
s -> {
for (final E value : valueClass.getEnumConstants()) {
if (value.toString().equals(s)) {
return value;
}
}
return null;
});
}
}