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