1 /* http://j2s.sf.net/ */Clazz.load(null,"java.lang.AbstractStringBuilder",["java.io.InvalidObjectException","java.lang.ArrayIndexOutOfBoundsException","$.IndexOutOfBoundsException","$.NegativeArraySizeException","$.NullPointerException","$.StringIndexOutOfBoundsException"],function(){
\r
2 c$=Clazz.decorateAsClass(function(){
\r
6 Clazz.instantialize(this,arguments);
\r
7 },java.lang,"AbstractStringBuilder");
\r
8 Clazz.defineMethod(c$,"getValue",
\r
12 Clazz.defineMethod(c$,"shareValue",
\r
17 Clazz.defineMethod(c$,"set",
\r
19 if(val==null)val=Clazz.newArray(0,'\0');
\r
20 if(val.length<len)throw new java.io.InvalidObjectException(("K0199"));
\r
25 Clazz.makeConstructor(c$,
\r
27 this.value=Clazz.newArray(16,'\0');
\r
29 Clazz.makeConstructor(c$,
\r
31 if(capacity<0)throw new NegativeArraySizeException();
\r
32 this.value=Clazz.newArray(capacity,'\0');
\r
34 Clazz.makeConstructor(c$,
\r
36 this.count=string.length;
\r
38 this.value=Clazz.newArray(this.count+16,'\0');
\r
39 string.getChars(0,this.count,this.value,0);
\r
41 Clazz.defineMethod(c$,"enlargeBuffer",
\r
43 var twice=(this.value.length<<1)+2;
\r
44 var newData=Clazz.newArray(min>twice?min:twice,'\0');
\r
45 System.arraycopy(this.value,0,newData,0,this.count);
\r
48 },$fz.isPrivate=true,$fz),"~N");
\r
49 Clazz.defineMethod(c$,"appendNull",
\r
51 var newSize=this.count+4;
\r
52 if(newSize>this.value.length){
\r
53 this.enlargeBuffer(newSize);
\r
54 }else if(this.shared){
\r
55 this.value=this.value.clone();
\r
57 }this.value[this.count++]='n';
\r
58 this.value[this.count++]='u';
\r
59 this.value[this.count++]='l';
\r
60 this.value[this.count++]='l';
\r
62 Clazz.defineMethod(c$,"append0",
\r
64 var newSize=this.count+chars.length;
\r
65 if(newSize>this.value.length){
\r
66 this.enlargeBuffer(newSize);
\r
67 }else if(this.shared){
\r
68 this.value=this.value.clone();
\r
70 }System.arraycopy(chars,0,this.value,this.count,chars.length);
\r
73 Clazz.defineMethod(c$,"append0",
\r
74 function(chars,start,length){
\r
76 throw new NullPointerException();
\r
77 }if(start>=0&&0<=length&&length<=chars.length-start){
\r
78 var newSize=this.count+length;
\r
79 if(newSize>this.value.length){
\r
80 this.enlargeBuffer(newSize);
\r
81 }else if(this.shared){
\r
82 this.value=this.value.clone();
\r
84 }System.arraycopy(chars,start,this.value,this.count,length);
\r
87 throw new ArrayIndexOutOfBoundsException();
\r
89 Clazz.defineMethod(c$,"append0",
\r
91 if(this.count==this.value.length){
\r
92 this.enlargeBuffer(this.count+1);
\r
94 this.value=this.value.clone();
\r
96 }this.value[this.count++]=ch;
\r
98 Clazz.defineMethod(c$,"append0",
\r
103 }var adding=string.length;
\r
104 var newSize=this.count+adding;
\r
105 if(newSize>this.value.length){
\r
106 this.enlargeBuffer(newSize);
\r
107 }else if(this.shared){
\r
108 this.value=this.value.clone();
\r
110 }string.getChars(0,adding,this.value,this.count);
\r
111 this.count=newSize;
\r
113 Clazz.defineMethod(c$,"append0",
\r
114 function(s,start,end){
\r
115 if(s==null)s="null";
\r
116 if(start<0||end<0||start>end||end>s.length())throw new IndexOutOfBoundsException();
\r
117 this.append0(s.subSequence(start,end).toString());
\r
118 },"CharSequence,~N,~N");
\r
119 Clazz.defineMethod(c$,"capacity",
\r
121 return this.value.length;
\r
123 Clazz.defineMethod(c$,"charAt",
\r
125 if(index<0||index>=this.count)throw new StringIndexOutOfBoundsException(index);
\r
126 return this.value[index];
\r
128 Clazz.defineMethod(c$,"delete0",
\r
129 function(start,end){
\r
131 if(end>this.count){
\r
136 var length=this.count-end;
\r
139 System.arraycopy(this.value,end,this.value,start,length);
\r
141 var newData=Clazz.newArray(this.value.length,'\0');
\r
142 System.arraycopy(this.value,0,newData,0,start);
\r
143 System.arraycopy(this.value,end,newData,start,length);
\r
144 this.value=newData;
\r
146 }}this.count-=end-start;
\r
148 }}throw new StringIndexOutOfBoundsException();
\r
150 Clazz.defineMethod(c$,"deleteCharAt0",
\r
151 function(location){
\r
152 if(0>location||location>=this.count)throw new StringIndexOutOfBoundsException(location);
\r
153 var length=this.count-location-1;
\r
156 System.arraycopy(this.value,location+1,this.value,location,length);
\r
158 var newData=Clazz.newArray(this.value.length,'\0');
\r
159 System.arraycopy(this.value,0,newData,0,location);
\r
160 System.arraycopy(this.value,location+1,newData,location,length);
\r
161 this.value=newData;
\r
165 Clazz.defineMethod(c$,"ensureCapacity",
\r
167 if(min>this.value.length){
\r
168 this.enlargeBuffer(min);
\r
170 Clazz.defineMethod(c$,"getChars",
\r
171 function(start,end,dest,destStart){
\r
172 if(start>this.count||end>this.count||start>end){
\r
173 throw new StringIndexOutOfBoundsException();
\r
174 }System.arraycopy(this.value,start,dest,destStart,end-start);
\r
176 Clazz.defineMethod(c$,"insert0",
\r
177 function(index,chars){
\r
178 if(0>index||index>this.count){
\r
179 throw new StringIndexOutOfBoundsException(index);
\r
180 }if(chars.length!=0){
\r
181 this.move(chars.length,index);
\r
182 System.arraycopy(chars,0,this.value,index,chars.length);
\r
183 this.count+=chars.length;
\r
185 Clazz.defineMethod(c$,"insert0",
\r
186 function(index,chars,start,length){
\r
187 if(0<=index&&index<=this.count){
\r
188 if(start>=0&&0<=length&&length<=chars.length-start){
\r
190 this.move(length,index);
\r
191 System.arraycopy(chars,start,this.value,index,length);
\r
192 this.count+=length;
\r
194 }throw new StringIndexOutOfBoundsException("offset "+start+", len "+length+", array.length "+chars.length);
\r
195 }throw new StringIndexOutOfBoundsException(index);
\r
197 Clazz.defineMethod(c$,"insert0",
\r
198 function(index,ch){
\r
199 if(0>index||index>this.count){
\r
200 throw new ArrayIndexOutOfBoundsException(index);
\r
201 }this.move(1,index);
\r
202 this.value[index]=ch;
\r
205 Clazz.defineMethod(c$,"insert0",
\r
206 function(index,string){
\r
207 if(0<=index&&index<=this.count){
\r
208 if(string==null)string="null";
\r
209 var min=string.length;
\r
211 this.move(min,index);
\r
212 string.getChars(0,min,this.value,index);
\r
215 throw new StringIndexOutOfBoundsException(index);
\r
217 Clazz.defineMethod(c$,"insert0",
\r
218 function(index,s,start,end){
\r
219 if(s==null)s="null";
\r
220 if(index<0||index>this.count||start<0||end<0||start>end||end>s.length())throw new IndexOutOfBoundsException();
\r
221 this.insert0(index,s.subSequence(start,end).toString());
\r
222 },"~N,CharSequence,~N,~N");
\r
223 Clazz.defineMethod(c$,"length",
\r
227 Clazz.defineMethod(c$,"move",
\r
228 ($fz=function(size,index){
\r
230 if(this.value.length-this.count>=size){
\r
232 System.arraycopy(this.value,index,this.value,index+size,this.count-index);
\r
234 }newSize=this.value.length;
\r
236 var a=this.count+size;
\r
237 var b=(this.value.length<<1)+2;
\r
239 }var newData=Clazz.newArray(newSize,'\0');
\r
240 System.arraycopy(this.value,0,newData,0,index);
\r
241 System.arraycopy(this.value,index,newData,index+size,this.count-index);
\r
242 this.value=newData;
\r
244 },$fz.isPrivate=true,$fz),"~N,~N");
\r
245 Clazz.defineMethod(c$,"replace0",
\r
246 function(start,end,string){
\r
248 if(end>this.count)end=this.count;
\r
250 var stringLength=string.length;
\r
251 var diff=end-start-stringLength;
\r
254 System.arraycopy(this.value,end,this.value,start+stringLength,this.count-end);
\r
256 var newData=Clazz.newArray(this.value.length,'\0');
\r
257 System.arraycopy(this.value,0,newData,0,start);
\r
258 System.arraycopy(this.value,end,newData,start+stringLength,this.count-end);
\r
259 this.value=newData;
\r
262 this.move(-diff,end);
\r
263 }else if(this.shared){
\r
264 this.value=this.value.clone();
\r
266 }string.getChars(0,stringLength,this.value,start);
\r
270 if(string==null)throw new NullPointerException();
\r
271 this.insert0(start,string);
\r
273 }}throw new StringIndexOutOfBoundsException();
\r
275 Clazz.defineMethod(c$,"reverse0",
\r
280 for(var i=0,end=this.count,mid=Math.floor(this.count/2);i<mid;i++){
\r
281 var temp=this.value[--end];
\r
282 this.value[end]=this.value[i];
\r
283 this.value[i]=temp;
\r
286 var newData=Clazz.newArray(this.value.length,'\0');
\r
287 for(var i=0,end=this.count;i<this.count;i++){
\r
288 newData[--end]=this.value[i];
\r
290 this.value=newData;
\r
293 Clazz.defineMethod(c$,"setCharAt",
\r
294 function(index,ch){
\r
295 if(0>index||index>=this.count){
\r
296 throw new StringIndexOutOfBoundsException(index);
\r
298 this.value=this.value.clone();
\r
300 }this.value[index]=ch;
\r
302 Clazz.defineMethod(c$,"setLength",
\r
304 if(length<0)throw new StringIndexOutOfBoundsException(length);
\r
305 if(this.count<length){
\r
306 if(length>this.value.length){
\r
307 this.enlargeBuffer(length);
\r
310 var newData=Clazz.newArray(this.value.length,'\0');
\r
311 System.arraycopy(this.value,0,newData,0,this.count);
\r
312 this.value=newData;
\r
315 for(var i=this.count;i<length;i++){
\r
316 this.value[i]=String.fromCharCode(0);
\r
318 }}}this.count=length;
\r
320 Clazz.defineMethod(c$,"substring",
\r
322 if(0<=start&&start<=this.count){
\r
323 if(start==this.count)return"";
\r
325 return String.instantialize(start,this.count-start,this.value);
\r
326 }throw new StringIndexOutOfBoundsException(start);
\r
328 Clazz.defineMethod(c$,"substring",
\r
329 function(start,end){
\r
330 if(0<=start&&start<=end&&end<=this.count){
\r
331 if(start==end)return"";
\r
333 return String.instantialize(this.value,start,end-start);
\r
334 }throw new StringIndexOutOfBoundsException();
\r
336 Clazz.overrideMethod(c$,"toString",
\r
338 if(this.count==0)return"";
\r
339 if(this.count>=256&&this.count<=(this.value.length>>1))return String.instantialize(this.value,0,this.count);
\r
341 return String.instantialize(0,this.count,this.value);
\r
343 Clazz.defineMethod(c$,"subSequence",
\r
344 function(start,end){
\r
345 return this.substring(start,end);
\r
347 Clazz.defineMethod(c$,"indexOf",
\r
349 return this.indexOf(string,0);
\r
351 Clazz.defineMethod(c$,"indexOf",
\r
352 function(subString,start){
\r
353 if(start<0)start=0;
\r
354 var subCount=subString.length;
\r
356 if(subCount+start>this.count)return-1;
\r
357 var firstChar=subString.charAt(0);
\r
361 for(;i<this.count;i++)if((this.value[i]).charCodeAt(0)==(firstChar).charCodeAt(0)){
\r
365 if(!found||subCount+i>this.count)return-1;
\r
368 while(++o2<subCount&&(this.value[++o1]).charCodeAt(0)==(subString.charAt(o2)).charCodeAt(0)){
\r
370 if(o2==subCount)return i;
\r
373 }return(start<this.count||start==0)?start:this.count;
\r
375 Clazz.defineMethod(c$,"lastIndexOf",
\r
377 return this.lastIndexOf(string,this.count);
\r
379 Clazz.defineMethod(c$,"lastIndexOf",
\r
380 function(subString,start){
\r
381 var subCount=subString.length;
\r
382 if(subCount<=this.count&&start>=0){
\r
384 if(start>this.count-subCount)start=this.count-subCount;
\r
385 var firstChar=subString.charAt(0);
\r
389 for(;i>=0;--i)if((this.value[i]).charCodeAt(0)==(firstChar).charCodeAt(0)){
\r
393 if(!found)return-1;
\r
396 while(++o2<subCount&&(this.value[++o1]).charCodeAt(0)==(subString.charAt(o2)).charCodeAt(0)){
\r
398 if(o2==subCount)return i;
\r
401 }return start<this.count?start:this.count;
\r
404 Clazz.defineMethod(c$,"trimToSize",
\r
406 if(this.count<this.value.length){
\r
407 var newValue=Clazz.newArray(this.count,'\0');
\r
408 System.arraycopy(this.value,0,newValue,0,this.count);
\r
409 this.value=newValue;
\r
412 Clazz.defineStatics(c$,
\r
413 "INITIAL_CAPACITY",16);
\r
415 Clazz.load(["java.lang.AbstractStringBuilder","$.Appendable"],"java.lang.StringBuilder",["java.lang.Double","$.Float","$.Long"],function(){
\r
416 c$=Clazz.declareType(java.lang,"StringBuilder",AbstractStringBuilder,[Appendable,CharSequence,java.io.Serializable]);
\r
417 Clazz.makeConstructor(c$,
\r
419 Clazz.superConstructor(this,StringBuilder,[seq.toString()]);
\r
421 Clazz.defineMethod(c$,"append",
\r
423 this.append0(b?"true":"false");
\r
426 Clazz.defineMethod(c$,"append",
\r
431 Clazz.defineMethod(c$,"append",
\r
433 this.append0(Integer.toString(i));
\r
436 Clazz.defineMethod(c$,"append",
\r
438 this.append0(Long.toString(lng));
\r
441 Clazz.defineMethod(c$,"append",
\r
443 this.append0(Float.toString(f));
\r
446 Clazz.defineMethod(c$,"append",
\r
448 this.append0(Double.toString(d));
\r
451 Clazz.defineMethod(c$,"append",
\r
456 this.append0(obj.toString());
\r
459 Clazz.defineMethod(c$,"append",
\r
464 Clazz.defineMethod(c$,"append",
\r
469 this.append0(sb.getValue(),0,sb.length());
\r
472 Clazz.defineMethod(c$,"append",
\r
477 Clazz.defineMethod(c$,"append",
\r
478 function(str,offset,len){
\r
479 this.append0(str,offset,len);
\r
482 Clazz.defineMethod(c$,"append",
\r
487 this.append0(csq.toString());
\r
490 Clazz.defineMethod(c$,"append",
\r
491 function(csq,start,end){
\r
492 this.append0(csq,start,end);
\r
494 },"CharSequence,~N,~N");
\r
495 Clazz.defineMethod(c$,"$delete",
\r
496 function(start,end){
\r
497 this.delete0(start,end);
\r
500 Clazz.defineMethod(c$,"deleteCharAt",
\r
502 this.deleteCharAt0(index);
\r
505 Clazz.defineMethod(c$,"insert",
\r
506 function(offset,b){
\r
507 this.insert0(offset,b?"true":"false");
\r
510 Clazz.defineMethod(c$,"insert",
\r
511 function(offset,c){
\r
512 this.insert0(offset,c);
\r
515 Clazz.defineMethod(c$,"insert",
\r
516 function(offset,i){
\r
517 this.insert0(offset,Integer.toString(i));
\r
520 Clazz.defineMethod(c$,"insert",
\r
521 function(offset,l){
\r
522 this.insert0(offset,Long.toString(l));
\r
525 Clazz.defineMethod(c$,"insert",
\r
526 function(offset,f){
\r
527 this.insert0(offset,Float.toString(f));
\r
530 Clazz.defineMethod(c$,"insert",
\r
531 function(offset,d){
\r
532 this.insert0(offset,Double.toString(d));
\r
535 Clazz.defineMethod(c$,"insert",
\r
536 function(offset,obj){
\r
537 this.insert0(offset,obj==null?"null":obj.toString());
\r
540 Clazz.defineMethod(c$,"insert",
\r
541 function(offset,str){
\r
542 this.insert0(offset,str);
\r
545 Clazz.defineMethod(c$,"insert",
\r
546 function(offset,ch){
\r
547 this.insert0(offset,ch);
\r
550 Clazz.defineMethod(c$,"insert",
\r
551 function(offset,str,strOffset,strLen){
\r
552 this.insert0(offset,str,strOffset,strLen);
\r
555 Clazz.defineMethod(c$,"insert",
\r
556 function(offset,s){
\r
557 this.insert0(offset,s==null?"null":s.toString());
\r
559 },"~N,CharSequence");
\r
560 Clazz.defineMethod(c$,"insert",
\r
561 function(offset,s,start,end){
\r
562 this.insert0(offset,s,start,end);
\r
564 },"~N,CharSequence,~N,~N");
\r
565 Clazz.defineMethod(c$,"replace",
\r
566 function(start,end,str){
\r
567 this.replace0(start,end,str);
\r
570 Clazz.defineMethod(c$,"reverse",
\r