package droidkit.content; import android.os.Bundle; import android.os.Parcelable; import android.support.annotation.NonNull; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Set; /** * @author Daniel Serdyukov */ class BundleDelegate implements KeyValueDelegate { private final Bundle mBundle; BundleDelegate(@NonNull Bundle bundle) { mBundle = bundle; } @Override public int getInt(@NonNull String key, int defaultValue) { return mBundle.getInt(key, defaultValue); } @Override public void putInt(@NonNull String key, int value) { mBundle.putInt(key, value); } @Override public boolean getBoolean(@NonNull String key, boolean defaultValue) { return mBundle.getBoolean(key, defaultValue); } @Override public void putBoolean(@NonNull String key, boolean value) { mBundle.putBoolean(key, value); } @Override public long getLong(@NonNull String key, long defaultValue) { return mBundle.getLong(key, defaultValue); } @Override public void putLong(@NonNull String key, long value) { mBundle.putLong(key, value); } @NonNull @Override public String getString(@NonNull String key, @NonNull String defaultValue) { return mBundle.getString(key, defaultValue); } @Override public void putString(@NonNull String key, @NonNull String value) { mBundle.putString(key, value); } @Override public double getDouble(@NonNull String key, double defaultValue) { return mBundle.getDouble(key, defaultValue); } @Override public void putDouble(@NonNull String key, double value) { mBundle.putDouble(key, value); } @Override public float getFloat(@NonNull String key, float defaultValue) { return mBundle.getFloat(key, defaultValue); } @Override public void putFloat(@NonNull String key, float value) { mBundle.putFloat(key, value); } @NonNull @Override public Set<String> getStringSet(@NonNull String key) { throw new IllegalArgumentException("Unsupported type 'Set<String>'"); } @Override public void putStringSet(@NonNull String key, @NonNull Set<String> value) { throw new IllegalArgumentException("Unsupported type 'Set<String>'"); } @NonNull @Override public List<String> getStringList(@NonNull String key) { List<String> list = mBundle.getStringArrayList(key); if (list == null) { list = Collections.emptyList(); } return list; } @Override public void putStringList(@NonNull String key, @NonNull List<String> value) { mBundle.putStringArrayList(key, new ArrayList<>(value)); } @Override public <T extends Parcelable> T getParcelable(@NonNull String key) { return mBundle.getParcelable(key); } @Override public <T extends Parcelable> void putParcelable(@NonNull String key, @NonNull T value) { mBundle.putParcelable(key, value); } @Override public void remove(String key) { mBundle.remove(key); } @Override public void clear() { mBundle.clear(); } }