Home | History | Annotate | Download | only in shadows
      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.toString());
     38         return realSpannableStringBuilder;
     39     }
     40 
     41     @Implementation
     42     public SpannableStringBuilder append(CharSequence text) {
     43         builder.append(text.toString());
     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