package com.github.czyzby.kiwi.util.gdx.preference;
import com.badlogic.gdx.Preferences;
/** "Abstract" implementation for the Preference interface, although the class itself is not abstract and can be
* normally used in code. If you want to extend it though, you should know that all setter and extract methods use
* getName method to put and get preference values from the preferences.
*
* Preferences are advised to be kept in an enum (which cannot extend), so this implementation might have to be copied.
*
* @author MJ */
public class PreferenceWrapper implements Preference {
private final String preferenceName;
public PreferenceWrapper(final String preferenceName) {
this.preferenceName = preferenceName;
}
@Override
public String getName() {
return preferenceName;
}
@Override
public void setIn(final Preferences preferences, final String preferenceValue) {
preferences.putString(getName(), preferenceValue);
}
@Override
public void setIn(final Preferences preferences, final boolean preferenceValue) {
preferences.putBoolean(getName(), preferenceValue);
}
@Override
public void setIn(final Preferences preferences, final int preferenceValue) {
preferences.putInteger(getName(), preferenceValue);
}
@Override
public void setIn(final Preferences preferences, final long preferenceValue) {
preferences.putLong(getName(), preferenceValue);
}
@Override
public void setIn(final Preferences preferences, final float preferenceValue) {
preferences.putFloat(getName(), preferenceValue);
}
@Override
public String extractStringFrom(final Preferences preferences) {
return preferences.getString(getName());
}
@Override
public String extractStringOrElse(final Preferences preferences, final String defaultValue) {
return preferences.getString(getName(), defaultValue);
}
@Override
public boolean extractBooleanFrom(final Preferences preferences) {
return preferences.getBoolean(getName());
}
@Override
public boolean extractBooleanOrElse(final Preferences preferences, final boolean defaultValue) {
return preferences.getBoolean(getName(), defaultValue);
}
@Override
public int extractIntFrom(final Preferences preferences) {
return preferences.getInteger(getName());
}
@Override
public int extractIntOrElse(final Preferences preferences, final int defaultValue) {
return preferences.getInteger(getName(), defaultValue);
}
@Override
public long extractLongFrom(final Preferences preferences) {
return preferences.getLong(getName());
}
@Override
public long extractLongOrElse(final Preferences preferences, final long defaultValue) {
return preferences.getLong(getName(), defaultValue);
}
@Override
public float extractFloatFrom(final Preferences preferences) {
return preferences.getFloat(getName());
}
@Override
public float extractFloatOrElse(final Preferences preferences, final float defaultValue) {
return preferences.getFloat(getName(), defaultValue);
}
@Override
public boolean isPresentIn(final Preferences preferences) {
return preferences.contains(getName());
}
}