blob: cc458bc5ee869e04b7f3df7ca39715b7e777df66 [file] [log] [blame]
package com.xtremelabs.robolectric.shadows;
import static com.xtremelabs.robolectric.Robolectric.shadowOf_;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import android.os.Build;
import android.os.Bundle;
import android.os.Parcelable;
import com.xtremelabs.robolectric.Robolectric;
import com.xtremelabs.robolectric.internal.Implementation;
import com.xtremelabs.robolectric.internal.Implements;
@SuppressWarnings({ "UnusedDeclaration" })
@Implements(Bundle.class)
public class ShadowBundle {
Map<String, Object> map = new HashMap<String, Object>();
public void __constructor__(Bundle b) {
putAll(b);
}
@Implementation
public void clear() {
map.clear();
}
@Implementation
public void remove(String key) {
map.remove(key);
}
@Implementation
public Object get(String key) {
return map.get(key);
}
@Implementation
public void putString(String key, String value) {
map.put(key, value);
}
@Implementation
public String getString(String key) {
Object value = map.get(key);
return value == null || !(value instanceof String) ? null : (String) value;
}
@Implementation
public String getString(String key, String defaultValue) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB_MR1) {
throw new RuntimeException(new NoSuchMethodException("Requires API_12"));
}
if (map.containsKey(key)) {
Object value = map.get(key);
return value == null || !(value instanceof String) ? null : (String) value;
}
return defaultValue;
}
@Implementation
public void putLong(String key, long value) {
map.put(key, value);
}
@Implementation
public long getLong(String key) {
return getLong(key, 0);
}
@Implementation
public long getLong(String key, long defaultValue) {
Object value = map.get(key);
return value == null || !(value instanceof Long) ? defaultValue : (Long) value;
}
@Implementation
public void putInt(String key, int value) {
map.put(key, value);
}
@Implementation
public int getInt(String key) {
return getInt(key, 0);
}
@Implementation
public int getInt(String key, int defaultValue) {
Object value = map.get(key);
return value == null || !(value instanceof Integer) ? defaultValue : (Integer) value;
}
@Implementation
public void putDouble(String key, double value) {
map.put(key, value);
}
@Implementation
public double getDouble(String key) {
return getDouble(key, 0);
}
@Implementation
public double getDouble(String key, double defaultValue) {
Object value = map.get(key);
return value == null || !(value instanceof Double) ? defaultValue : (Double) value;
}
@Implementation
public void putBoolean(String key, boolean value) {
map.put(key, value);
}
@Implementation
public boolean getBoolean(String key) {
return getBoolean(key, false);
}
@Implementation
public boolean getBoolean(String key, boolean defaultValue) {
Object value = map.get(key);
return value == null || !(value instanceof Boolean) ? defaultValue : (Boolean) value;
}
@Implementation
public void putChar(String key, char value) {
map.put(key, value);
}
@Implementation
public char getChar(String key) {
return getChar(key, (char) 0);
}
@Implementation
public char getChar(String key, char defaultValue) {
Object value = map.get(key);
return value == null || !(value instanceof Character) ? defaultValue : (Character) value;
}
@Implementation
public void putCharSequence(String key, CharSequence value) {
map.put(key, value);
}
@Implementation
public CharSequence getCharSequence(String key) {
Object value = map.get(key);
return value == null || !(value instanceof CharSequence) ? null : (CharSequence) value;
}
@Implementation
public void putFloat(String key, float value) {
map.put(key, value);
}
@Implementation
public float getFloat(String key) {
return getFloat(key, 0);
}
@Implementation
public float getFloat(String key, float defaultValue) {
Object value = map.get(key);
return value == null || !(value instanceof Float) ? defaultValue : (Float) value;
}
@Implementation
public void putSerializable(String key, Serializable value) {
map.put(key, value);
}
@Implementation
public Serializable getSerializable(String key) {
Object value = map.get(key);
return value == null || !(value instanceof Serializable) ? null : (Serializable) value;
}
@Implementation
public void putParcelable(String key, Parcelable value) {
map.put(key, value);
}
@Implementation
public void putParcelableArrayList(String key, ArrayList<? extends Parcelable> value) {
map.put(key, value);
}
@Implementation
public Parcelable getParcelable(String key) {
Object value = map.get(key);
return value == null || !(value instanceof Parcelable) ? null : (Parcelable) value;
}
@Implementation
public ArrayList<Parcelable> getParcelableArrayList(String key) {
Object value = map.get(key);
return value == null || !(value instanceof ArrayList) ? null
: (ArrayList<Parcelable>) value;
}
@Implementation
public Parcelable[] getParcelableArray(String key) {
Object value = map.get(key);
return value == null || !(value instanceof Parcelable[]) ? null : (Parcelable[]) value;
}
@Implementation
public void putParcelableArray(String key, Parcelable[] value) {
map.put(key, value);
}
@Implementation
public void putStringArrayList(String key, ArrayList<String> value) {
map.put(key, value);
}
@Implementation
public ArrayList<String> getStringArrayList(String key) {
Object value = map.get(key);
return value == null || !(value instanceof ArrayList) ? null : (ArrayList<String>) value;
}
@Implementation
public void putCharSequenceArrayList(String key, ArrayList<CharSequence> value) {
map.put(key, value);
}
@Implementation
public ArrayList<CharSequence> getCharSequenceArrayList(String key) {
Object value = map.get(key);
return value == null || !(value instanceof ArrayList) ? null
: (ArrayList<CharSequence>) value;
}
@Implementation
public void putIntegerArrayList(String key, ArrayList<Integer> value) {
map.put(key, value);
}
@Implementation
public ArrayList<Integer> getIntegerArrayList(String key) {
Object value = map.get(key);
return value == null || !(value instanceof ArrayList) ? null : (ArrayList<Integer>) value;
}
@Implementation
public void putBundle(String key, Bundle value) {
map.put(key, value);
}
@Implementation
public Bundle getBundle(String key) {
Object value = map.get(key);
return value == null || !(value instanceof Bundle) ? null : (Bundle) value;
}
@Implementation
public void putBooleanArray(String key, boolean[] value) {
map.put(key, value);
}
@Implementation
public boolean[] getBooleanArray(String key) {
Object value = map.get(key);
return value == null || !(value instanceof boolean[]) ? null : (boolean[]) value;
}
@Implementation
public void putByteArray(String key, byte[] value) {
map.put(key, value);
}
@Implementation
public byte[] getByteArray(String key) {
Object value = map.get(key);
return value == null || !(value instanceof byte[]) ? null : (byte[]) value;
}
@Implementation
public void putCharArray(String key, char[] value) {
map.put(key, value);
}
@Implementation
public char[] getCharArray(String key) {
Object value = map.get(key);
return value == null || !(value instanceof char[]) ? null : (char[]) value;
}
@Implementation
public void putDoubleArray(String key, double[] value) {
map.put(key, value);
}
@Implementation
public double[] getDoubleArray(String key) {
Object value = map.get(key);
return value == null || !(value instanceof double[]) ? null : (double[]) value;
}
@Implementation
public void putFloatArray(String key, float[] value) {
map.put(key, value);
}
@Implementation
public float[] getFloatArray(String key) {
Object value = map.get(key);
return value == null || !(value instanceof float[]) ? null : (float[]) value;
}
@Implementation
public void putIntArray(String key, int[] value) {
map.put(key, value);
}
@Implementation
public int[] getIntArray(String key) {
Object value = map.get(key);
return value == null || !(value instanceof int[]) ? null : (int[]) value;
}
@Implementation
public void putLongArray(String key, long[] value) {
map.put(key, value);
}
@Implementation
public long[] getLongArray(String key) {
Object value = map.get(key);
return value == null || !(value instanceof long[]) ? null : (long[]) value;
}
@Implementation
public void putShortArray(String key, short[] value) {
map.put(key, value);
}
@Implementation
public short[] getShortArray(String key) {
Object value = map.get(key);
return value == null || !(value instanceof short[]) ? null : (short[]) value;
}
@Implementation
public void putAll(Bundle bundle) {
map.putAll(((ShadowBundle) Robolectric.shadowOf_(bundle)).map);
}
@Implementation
public void putStringArray(String key, String[] value) {
map.put(key, value);
}
@Implementation
public String[] getStringArray(String key) {
Object value = map.get(key);
return value == null || !(value instanceof String[]) ? null : (String[]) value;
}
@Implementation
public void putCharSequenceArray(String key, CharSequence[] value) {
map.put(key, value);
}
@Implementation
public CharSequence[] getCharSequenceArray(String key) {
Object value = map.get(key);
return value == null || !(value instanceof CharSequence[]) ? null : (CharSequence[]) value;
}
@Implementation
public boolean containsKey(String key) {
return map.containsKey(key);
}
@Implementation
public boolean isEmpty() {
return map.isEmpty();
}
@Implementation
public Set<String> keySet() {
return map.keySet();
}
@Implementation
public int size() {
return map.size();
}
@Override
@Implementation
public boolean equals(Object o) {
if (o == null)
return false;
o = shadowOf_(o);
if (o == null)
return false;
if (this == o)
return true;
if (getClass() != o.getClass())
return false;
ShadowBundle that = (ShadowBundle) o;
if (map != null ? !map.equals(that.map) : that.map != null)
return false;
return true;
}
@Override
@Implementation
public int hashCode() {
return map != null ? map.hashCode() : 0;
}
}