ShadowParcel.java revision cb6dcc93e483e0537f8c93595bb6687b392a0d2e
1cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowhampackage com.xtremelabs.robolectric.shadows;
2cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham
3cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowhamimport java.util.ArrayList;
4cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowhamimport java.util.List;
5cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham
6cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowhamimport android.os.Parcel;
7cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham
8cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowhamimport com.xtremelabs.robolectric.Robolectric;
9cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowhamimport com.xtremelabs.robolectric.internal.Implementation;
10cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowhamimport com.xtremelabs.robolectric.internal.Implements;
11cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham
12cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham@Implements(Parcel.class)
13cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham@SuppressWarnings("rawtypes")
14cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowhampublic class ShadowParcel {
15cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham
16cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham	private ArrayList parcelData = new ArrayList();
17cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham	private int index = 0;
18cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham
19cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham	@Implementation
20cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham	public static Parcel obtain() {
21cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham		return Robolectric.newInstanceOf( Parcel.class );
22cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham	}
23cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham
24cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham	@Implementation
25cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham	@SuppressWarnings("unchecked")
26cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham	public void writeString( String str ) {
27cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham		if( str == null ) { return ; }
28cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham
29cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham		parcelData.add( str );
30cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham	}
31cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham
32cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham	@Implementation
33cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham	@SuppressWarnings("unchecked")
34cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham	public void writeInt( int i ) {
35cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham		parcelData.add( i );
36cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham	}
37cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham
38cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham	@Implementation
39cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham	public String readString() {
40cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham		return index < parcelData.size() ? (String)parcelData.get( index++ ) : null;
41cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham	}
42cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham
43cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham	@Implementation
44cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham	public int readInt() {
45cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham		return index < parcelData.size() ? (Integer)parcelData.get( index++ ) : 0;
46cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham	}
47cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham
48cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham	public int getIndex() {
49cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham		return index;
50cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham	}
51cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham
52cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham	public List getParcelData() {
53cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham		return parcelData;
54cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham	}
55cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham}
56