JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / unused / com / stevesoft / pat / wrap / CharArrayBufferWrap.java
1 package //
2 // This software is now distributed according to
3 // the Lesser Gnu Public License.  Please see
4 // http://www.gnu.org/copyleft/lesser.txt for
5 // the details.
6 //    -- Happy Computing!
7 //
8 com.stevesoft.pat.wrap;
9
10 import com.stevesoft.pat.BasicStringBufferLike;
11 import com.stevesoft.pat.StringLike;
12
13 /**
14  * Allows the outcome of a replaceAll() or replaceFirst() to be an array of
15  * characters rather than a String.
16  */
17 public class CharArrayBufferWrap implements BasicStringBufferLike
18 {
19   javajs.util.SB sb = new javajs.util.SB();
20
21   public void appendChar(char c)
22   {
23     sb.appendC(c);
24   }
25
26   public void appendStr(String s)
27   {
28     sb.append(s);
29   }
30
31   public StringLike toStringLike()
32   {
33     char[] ca = new char[sb.length()];
34     for (int i = 0; i < ca.length; i++)
35     {
36       ca[i] = sb.charAt(i);
37     }
38     try {
39         return (StringLike) Class.forName("com.stevesoft.pat.wrap.CharArrayWrap").getConstructor(char[].class).newInstance(ca);
40     } catch (Exception e) {
41         return  null;
42     }
43   }
44
45   public int length()
46   {
47     return sb.length();
48   }
49
50   public String toString()
51   {
52     return sb.toString();
53   }
54
55   public Object unwrap()
56   {
57     return sb;
58   }
59 }