1 Clazz.load(null,"java.lang.AbstractStringBuilder",["java.io.InvalidObjectException","java.lang.ArrayIndexOutOfBoundsException","$.IndexOutOfBoundsException","$.NegativeArraySizeException","$.NullPointerException","$.StringIndexOutOfBoundsException"],function(){
2 c$=Clazz.decorateAsClass(function(){
6 Clazz.instantialize(this,arguments);
7 },java.lang,"AbstractStringBuilder");
8 Clazz.defineMethod(c$,"getValue",
12 Clazz.defineMethod(c$,"shareValue",
17 Clazz.defineMethod(c$,"set",
19 if(val==null)val=Clazz.newArray(0,'\0');
20 if(val.length<len)throw new java.io.InvalidObjectException(("K0199"));
25 Clazz.makeConstructor(c$,
27 this.value=Clazz.newArray(16,'\0');
29 Clazz.makeConstructor(c$,
31 if(capacity<0)throw new NegativeArraySizeException();
32 this.value=Clazz.newArray(capacity,'\0');
34 Clazz.makeConstructor(c$,
36 this.count=string.length;
38 this.value=Clazz.newArray(this.count+16,'\0');
39 string.getChars(0,this.count,this.value,0);
41 Clazz.defineMethod(c$,"enlargeBuffer",
43 var twice=(this.value.length<<1)+2;
44 var newData=Clazz.newArray(min>twice?min:twice,'\0');
45 System.arraycopy(this.value,0,newData,0,this.count);
48 },$fz.isPrivate=true,$fz),"~N");
49 Clazz.defineMethod(c$,"appendNull",
51 var newSize=this.count+4;
52 if(newSize>this.value.length){
53 this.enlargeBuffer(newSize);
54 }else if(this.shared){
55 this.value=this.value.clone();
57 }this.value[this.count++]='n';
58 this.value[this.count++]='u';
59 this.value[this.count++]='l';
60 this.value[this.count++]='l';
62 Clazz.defineMethod(c$,"append0",
64 var newSize=this.count+chars.length;
65 if(newSize>this.value.length){
66 this.enlargeBuffer(newSize);
67 }else if(this.shared){
68 this.value=this.value.clone();
70 }System.arraycopy(chars,0,this.value,this.count,chars.length);
73 Clazz.defineMethod(c$,"append0",
74 function(chars,start,length){
76 throw new NullPointerException();
77 }if(start>=0&&0<=length&&length<=chars.length-start){
78 var newSize=this.count+length;
79 if(newSize>this.value.length){
80 this.enlargeBuffer(newSize);
81 }else if(this.shared){
82 this.value=this.value.clone();
84 }System.arraycopy(chars,start,this.value,this.count,length);
87 throw new ArrayIndexOutOfBoundsException();
89 Clazz.defineMethod(c$,"append0",
91 if(this.count==this.value.length){
92 this.enlargeBuffer(this.count+1);
94 this.value=this.value.clone();
96 }this.value[this.count++]=ch;
98 Clazz.defineMethod(c$,"append0",
103 }var adding=string.length;
104 var newSize=this.count+adding;
105 if(newSize>this.value.length){
106 this.enlargeBuffer(newSize);
107 }else if(this.shared){
108 this.value=this.value.clone();
110 }string.getChars(0,adding,this.value,this.count);
113 Clazz.defineMethod(c$,"append0",
114 function(s,start,end){
116 if(start<0||end<0||start>end||end>s.length())throw new IndexOutOfBoundsException();
117 this.append0(s.subSequence(start,end).toString());
118 },"CharSequence,~N,~N");
119 Clazz.defineMethod(c$,"capacity",
121 return this.value.length;
123 Clazz.defineMethod(c$,"charAt",
125 if(index<0||index>=this.count)throw new StringIndexOutOfBoundsException(index);
126 return this.value[index];
128 Clazz.defineMethod(c$,"delete0",
136 var length=this.count-end;
139 System.arraycopy(this.value,end,this.value,start,length);
141 var newData=Clazz.newArray(this.value.length,'\0');
142 System.arraycopy(this.value,0,newData,0,start);
143 System.arraycopy(this.value,end,newData,start,length);
146 }}this.count-=end-start;
148 }}throw new StringIndexOutOfBoundsException();
150 Clazz.defineMethod(c$,"deleteCharAt0",
152 if(0>location||location>=this.count)throw new StringIndexOutOfBoundsException(location);
153 var length=this.count-location-1;
156 System.arraycopy(this.value,location+1,this.value,location,length);
158 var newData=Clazz.newArray(this.value.length,'\0');
159 System.arraycopy(this.value,0,newData,0,location);
160 System.arraycopy(this.value,location+1,newData,location,length);
165 Clazz.defineMethod(c$,"ensureCapacity",
167 if(min>this.value.length){
168 this.enlargeBuffer(min);
170 Clazz.defineMethod(c$,"getChars",
171 function(start,end,dest,destStart){
172 if(start>this.count||end>this.count||start>end){
173 throw new StringIndexOutOfBoundsException();
174 }System.arraycopy(this.value,start,dest,destStart,end-start);
176 Clazz.defineMethod(c$,"insert0",
177 function(index,chars){
178 if(0>index||index>this.count){
179 throw new StringIndexOutOfBoundsException(index);
180 }if(chars.length!=0){
181 this.move(chars.length,index);
182 System.arraycopy(chars,0,this.value,index,chars.length);
183 this.count+=chars.length;
185 Clazz.defineMethod(c$,"insert0",
186 function(index,chars,start,length){
187 if(0<=index&&index<=this.count){
188 if(start>=0&&0<=length&&length<=chars.length-start){
190 this.move(length,index);
191 System.arraycopy(chars,start,this.value,index,length);
194 }throw new StringIndexOutOfBoundsException("offset "+start+", len "+length+", array.length "+chars.length);
195 }throw new StringIndexOutOfBoundsException(index);
197 Clazz.defineMethod(c$,"insert0",
199 if(0>index||index>this.count){
200 throw new ArrayIndexOutOfBoundsException(index);
202 this.value[index]=ch;
205 Clazz.defineMethod(c$,"insert0",
206 function(index,string){
207 if(0<=index&&index<=this.count){
208 if(string==null)string="null";
209 var min=string.length;
211 this.move(min,index);
212 string.getChars(0,min,this.value,index);
215 throw new StringIndexOutOfBoundsException(index);
217 Clazz.defineMethod(c$,"insert0",
218 function(index,s,start,end){
220 if(index<0||index>this.count||start<0||end<0||start>end||end>s.length())throw new IndexOutOfBoundsException();
221 this.insert0(index,s.subSequence(start,end).toString());
222 },"~N,CharSequence,~N,~N");
223 Clazz.defineMethod(c$,"length",
227 Clazz.defineMethod(c$,"move",
228 ($fz=function(size,index){
230 if(this.value.length-this.count>=size){
232 System.arraycopy(this.value,index,this.value,index+size,this.count-index);
234 }newSize=this.value.length;
236 var a=this.count+size;
237 var b=(this.value.length<<1)+2;
239 }var newData=Clazz.newArray(newSize,'\0');
240 System.arraycopy(this.value,0,newData,0,index);
241 System.arraycopy(this.value,index,newData,index+size,this.count-index);
244 },$fz.isPrivate=true,$fz),"~N,~N");
245 Clazz.defineMethod(c$,"replace0",
246 function(start,end,string){
248 if(end>this.count)end=this.count;
250 var stringLength=string.length;
251 var diff=end-start-stringLength;
254 System.arraycopy(this.value,end,this.value,start+stringLength,this.count-end);
256 var newData=Clazz.newArray(this.value.length,'\0');
257 System.arraycopy(this.value,0,newData,0,start);
258 System.arraycopy(this.value,end,newData,start+stringLength,this.count-end);
262 this.move(-diff,end);
263 }else if(this.shared){
264 this.value=this.value.clone();
266 }string.getChars(0,stringLength,this.value,start);
270 if(string==null)throw new NullPointerException();
271 this.insert0(start,string);
273 }}throw new StringIndexOutOfBoundsException();
275 Clazz.defineMethod(c$,"reverse0",
280 for(var i=0,end=this.count,mid=Math.floor(this.count/2);i<mid;i++){
281 var temp=this.value[--end];
282 this.value[end]=this.value[i];
286 var newData=Clazz.newArray(this.value.length,'\0');
287 for(var i=0,end=this.count;i<this.count;i++){
288 newData[--end]=this.value[i];
293 Clazz.defineMethod(c$,"setCharAt",
295 if(0>index||index>=this.count){
296 throw new StringIndexOutOfBoundsException(index);
298 this.value=this.value.clone();
300 }this.value[index]=ch;
302 Clazz.defineMethod(c$,"setLength",
304 if(length<0)throw new StringIndexOutOfBoundsException(length);
305 if(this.count<length){
306 if(length>this.value.length){
307 this.enlargeBuffer(length);
310 var newData=Clazz.newArray(this.value.length,'\0');
311 System.arraycopy(this.value,0,newData,0,this.count);
315 for(var i=this.count;i<length;i++){
316 this.value[i]=String.fromCharCode(0);
318 }}}this.count=length;
320 Clazz.defineMethod(c$,"substring",
322 if(0<=start&&start<=this.count){
323 if(start==this.count)return"";
325 return String.instantialize(start,this.count-start,this.value);
326 }throw new StringIndexOutOfBoundsException(start);
328 Clazz.defineMethod(c$,"substring",
330 if(0<=start&&start<=end&&end<=this.count){
331 if(start==end)return"";
333 return String.instantialize(this.value,start,end-start);
334 }throw new StringIndexOutOfBoundsException();
336 Clazz.overrideMethod(c$,"toString",
338 if(this.count==0)return"";
339 if(this.count>=256&&this.count<=(this.value.length>>1))return String.instantialize(this.value,0,this.count);
341 return String.instantialize(0,this.count,this.value);
343 Clazz.defineMethod(c$,"subSequence",
345 return this.substring(start,end);
347 Clazz.defineMethod(c$,"indexOf",
349 return this.indexOf(string,0);
351 Clazz.defineMethod(c$,"indexOf",
352 function(subString,start){
354 var subCount=subString.length;
356 if(subCount+start>this.count)return-1;
357 var firstChar=subString.charAt(0);
361 for(;i<this.count;i++)if((this.value[i]).charCodeAt(0)==(firstChar).charCodeAt(0)){
365 if(!found||subCount+i>this.count)return-1;
368 while(++o2<subCount&&(this.value[++o1]).charCodeAt(0)==(subString.charAt(o2)).charCodeAt(0)){
370 if(o2==subCount)return i;
373 }return(start<this.count||start==0)?start:this.count;
375 Clazz.defineMethod(c$,"lastIndexOf",
377 return this.lastIndexOf(string,this.count);
379 Clazz.defineMethod(c$,"lastIndexOf",
380 function(subString,start){
381 var subCount=subString.length;
382 if(subCount<=this.count&&start>=0){
384 if(start>this.count-subCount)start=this.count-subCount;
385 var firstChar=subString.charAt(0);
389 for(;i>=0;--i)if((this.value[i]).charCodeAt(0)==(firstChar).charCodeAt(0)){
396 while(++o2<subCount&&(this.value[++o1]).charCodeAt(0)==(subString.charAt(o2)).charCodeAt(0)){
398 if(o2==subCount)return i;
401 }return start<this.count?start:this.count;
404 Clazz.defineMethod(c$,"trimToSize",
406 if(this.count<this.value.length){
407 var newValue=Clazz.newArray(this.count,'\0');
408 System.arraycopy(this.value,0,newValue,0,this.count);
412 Clazz.defineStatics(c$,
413 "INITIAL_CAPACITY",16);