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