package com.github.czyzby.lml.uedi.preferences;
import java.lang.reflect.Member;
import com.badlogic.gdx.Preferences;
import com.github.czyzby.kiwi.util.common.Strings;
import com.github.czyzby.kiwi.util.gdx.preference.ApplicationPreferences;
import com.github.czyzby.uedi.stereotype.Provider;
/** Provides {@link Preferences} instances.
*
* @author MJ */
public class PreferencesProvider implements Provider<Preferences> {
@Override
public Class<? extends Preferences> getType() {
return Preferences.class;
}
@Override
public Preferences provide(final Object target, final Member member) {
return member == null || Strings.isEmpty(member.getName()) ? getPreferences()
: getPreferences(member.getName());
}
/** @return the default {@link Preferences} instance. */
public Preferences getPreferences() {
return ApplicationPreferences.getPreferences();
}
/** @param path unique ID of the preferences.
* @return {@link Preferences} instance with the selected path. */
public Preferences getPreferences(final String path) {
return ApplicationPreferences.getPreferences(path);
}
}