package com.yoursway.commons.preferences.core.typed; import com.yoursway.commons.preferences.core.PreferenceContainer; import com.yoursway.commons.preferences.core.PreferenceSetting; public abstract class AbstractTypedPreferenceSetting<T> extends PreferenceSetting { public AbstractTypedPreferenceSetting(PreferenceContainer container, String name) { super(container, name); } public T value() { return decode(rawValue()); } public void setValue(T newValue) { setRawValue(encode(newValue)); } protected abstract T decode(String raw); protected abstract String encode(T value); }