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