1 package com.xtremelabs.robolectric.shadows; 2 3 import android.text.Editable; 4 import android.text.SpannableStringBuilder; 5 import com.xtremelabs.robolectric.internal.Implementation; 6 import com.xtremelabs.robolectric.internal.Implements; 7 import com.xtremelabs.robolectric.internal.RealObject; 8 9 /** 10 * Shadow of {@code SpannableStringBuilder} implemented using a regular {@code StringBuilder} 11 */ 12 @SuppressWarnings({"UnusedDeclaration"}) 13 @Implements(SpannableStringBuilder.class) 14 public class ShadowSpannableStringBuilder implements CharSequence { 15 @RealObject private SpannableStringBuilder realSpannableStringBuilder; 16 17 private StringBuilder builder = new StringBuilder(); 18 19 public void __constructor__(CharSequence text) { 20 builder.append(text); 21 } 22 23 @Implementation 24 public SpannableStringBuilder append(char text) { 25 builder.append(text); 26 return realSpannableStringBuilder; 27 } 28 29 @Implementation 30 public Editable replace(int st, int en, CharSequence text) { 31 builder.replace(st, en, text.toString()); 32 return realSpannableStringBuilder; 33 } 34 35 @Implementation 36 public Editable insert(int where, CharSequence text) { 37 builder.insert(where, text); 38 return realSpannableStringBuilder; 39 } 40 41 @Implementation 42 public SpannableStringBuilder append(CharSequence text) { 43 builder.append(text); 44 return realSpannableStringBuilder; 45 } 46 47 @Implementation 48 @Override public int length() { 49 return builder.length(); 50 } 51 52 @Implementation 53 @Override public char charAt(int index) { 54 return builder.charAt(index); 55 } 56 57 @Implementation 58 @Override public CharSequence subSequence(int start, int end) { 59 return builder.subSequence(start, end); 60 } 61 62 @Implementation 63 public String toString() { 64 return builder.toString(); 65 } 66 67 @Implementation 68 public SpannableStringBuilder delete( int start, int end ) { 69 builder.delete( start, end ); 70 return realSpannableStringBuilder; 71 } 72 } 73