48739289adbe0ba131c9f5f395172e5ff3d30c94
[jalviewjs.git] / site / j2s / java / lang / StringBuilder.z.js
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
3 this.value=null;\r
4 this.count=0;\r
5 this.shared=false;\r
6 Clazz.instantialize(this,arguments);\r
7 },java.lang,"AbstractStringBuilder");\r
8 Clazz.defineMethod(c$,"getValue",\r
9 function(){\r
10 return this.value;\r
11 });\r
12 Clazz.defineMethod(c$,"shareValue",\r
13 function(){\r
14 this.shared=true;\r
15 return this.value;\r
16 });\r
17 Clazz.defineMethod(c$,"set",\r
18 function(val,len){\r
19 if(val==null)val=Clazz.newArray(0,'\0');\r
20 if(val.length<len)throw new java.io.InvalidObjectException(("K0199"));\r
21 this.shared=false;\r
22 this.value=val;\r
23 this.count=len;\r
24 },"~A,~N");\r
25 Clazz.makeConstructor(c$,\r
26 function(){\r
27 this.value=Clazz.newArray(16,'\0');\r
28 });\r
29 Clazz.makeConstructor(c$,\r
30 function(capacity){\r
31 if(capacity<0)throw new NegativeArraySizeException();\r
32 this.value=Clazz.newArray(capacity,'\0');\r
33 },"~N");\r
34 Clazz.makeConstructor(c$,\r
35 function(string){\r
36 this.count=string.length;\r
37 this.shared=false;\r
38 this.value=Clazz.newArray(this.count+16,'\0');\r
39 string.getChars(0,this.count,this.value,0);\r
40 },"~S");\r
41 Clazz.defineMethod(c$,"enlargeBuffer",\r
42 ($fz=function(min){\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
46 this.value=newData;\r
47 this.shared=false;\r
48 },$fz.isPrivate=true,$fz),"~N");\r
49 Clazz.defineMethod(c$,"appendNull",\r
50 function(){\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
56 this.shared=false;\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
61 });\r
62 Clazz.defineMethod(c$,"append0",\r
63 function(chars){\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
69 this.shared=false;\r
70 }System.arraycopy(chars,0,this.value,this.count,chars.length);\r
71 this.count=newSize;\r
72 },"~A");\r
73 Clazz.defineMethod(c$,"append0",\r
74 function(chars,start,length){\r
75 if(chars==null){\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
83 this.shared=false;\r
84 }System.arraycopy(chars,start,this.value,this.count,length);\r
85 this.count=newSize;\r
86 }else{\r
87 throw new ArrayIndexOutOfBoundsException();\r
88 }},"~A,~N,~N");\r
89 Clazz.defineMethod(c$,"append0",\r
90 function(ch){\r
91 if(this.count==this.value.length){\r
92 this.enlargeBuffer(this.count+1);\r
93 }if(this.shared){\r
94 this.value=this.value.clone();\r
95 this.shared=false;\r
96 }this.value[this.count++]=ch;\r
97 },"~N");\r
98 Clazz.defineMethod(c$,"append0",\r
99 function(string){\r
100 if(string==null){\r
101 this.appendNull();\r
102 return;\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
109 this.shared=false;\r
110 }string.getChars(0,adding,this.value,this.count);\r
111 this.count=newSize;\r
112 },"~S");\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
120 function(){\r
121 return this.value.length;\r
122 });\r
123 Clazz.defineMethod(c$,"charAt",\r
124 function(index){\r
125 if(index<0||index>=this.count)throw new StringIndexOutOfBoundsException(index);\r
126 return this.value[index];\r
127 },"~N");\r
128 Clazz.defineMethod(c$,"delete0",\r
129 function(start,end){\r
130 if(start>=0){\r
131 if(end>this.count){\r
132 end=this.count;\r
133 }if(end==start){\r
134 return;\r
135 }if(end>start){\r
136 var length=this.count-end;\r
137 if(length>0){\r
138 if(!this.shared){\r
139 System.arraycopy(this.value,end,this.value,start,length);\r
140 }else{\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
145 this.shared=false;\r
146 }}this.count-=end-start;\r
147 return;\r
148 }}throw new StringIndexOutOfBoundsException();\r
149 },"~N,~N");\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
154 if(length>0){\r
155 if(!this.shared){\r
156 System.arraycopy(this.value,location+1,this.value,location,length);\r
157 }else{\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
162 this.shared=false;\r
163 }}this.count--;\r
164 },"~N");\r
165 Clazz.defineMethod(c$,"ensureCapacity",\r
166 function(min){\r
167 if(min>this.value.length){\r
168 this.enlargeBuffer(min);\r
169 }},"~N");\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
175 },"~N,~N,~A,~N");\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
184 }},"~N,~A");\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
189 if(length!=0){\r
190 this.move(length,index);\r
191 System.arraycopy(chars,start,this.value,index,length);\r
192 this.count+=length;\r
193 }return;\r
194 }throw new StringIndexOutOfBoundsException("offset "+start+", len "+length+", array.length "+chars.length);\r
195 }throw new StringIndexOutOfBoundsException(index);\r
196 },"~N,~A,~N,~N");\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
203 this.count++;\r
204 },"~N,~N");\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
210 if(min!=0){\r
211 this.move(min,index);\r
212 string.getChars(0,min,this.value,index);\r
213 this.count+=min;\r
214 }}else{\r
215 throw new StringIndexOutOfBoundsException(index);\r
216 }},"~N,~S");\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
224 function(){\r
225 return this.count;\r
226 });\r
227 Clazz.defineMethod(c$,"move",\r
228 ($fz=function(size,index){\r
229 var newSize;\r
230 if(this.value.length-this.count>=size){\r
231 if(!this.shared){\r
232 System.arraycopy(this.value,index,this.value,index+size,this.count-index);\r
233 return;\r
234 }newSize=this.value.length;\r
235 }else{\r
236 var a=this.count+size;\r
237 var b=(this.value.length<<1)+2;\r
238 newSize=a>b?a:b;\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
243 this.shared=false;\r
244 },$fz.isPrivate=true,$fz),"~N,~N");\r
245 Clazz.defineMethod(c$,"replace0",\r
246 function(start,end,string){\r
247 if(start>=0){\r
248 if(end>this.count)end=this.count;\r
249 if(end>start){\r
250 var stringLength=string.length;\r
251 var diff=end-start-stringLength;\r
252 if(diff>0){\r
253 if(!this.shared){\r
254 System.arraycopy(this.value,end,this.value,start+stringLength,this.count-end);\r
255 }else{\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
260 this.shared=false;\r
261 }}else if(diff<0){\r
262 this.move(-diff,end);\r
263 }else if(this.shared){\r
264 this.value=this.value.clone();\r
265 this.shared=false;\r
266 }string.getChars(0,stringLength,this.value,start);\r
267 this.count-=diff;\r
268 return;\r
269 }if(start==end){\r
270 if(string==null)throw new NullPointerException();\r
271 this.insert0(start,string);\r
272 return;\r
273 }}throw new StringIndexOutOfBoundsException();\r
274 },"~N,~N,~S");\r
275 Clazz.defineMethod(c$,"reverse0",\r
276 function(){\r
277 if(this.count<2){\r
278 return;\r
279 }if(!this.shared){\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
284 }\r
285 }else{\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
289 }\r
290 this.value=newData;\r
291 this.shared=false;\r
292 }});\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
297 }if(this.shared){\r
298 this.value=this.value.clone();\r
299 this.shared=false;\r
300 }this.value[index]=ch;\r
301 },"~N,~N");\r
302 Clazz.defineMethod(c$,"setLength",\r
303 function(length){\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
308 }else{\r
309 if(this.shared){\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
313 this.shared=false;\r
314 }else{\r
315 for(var i=this.count;i<length;i++){\r
316 this.value[i]=String.fromCharCode(0);\r
317 }\r
318 }}}this.count=length;\r
319 },"~N");\r
320 Clazz.defineMethod(c$,"substring",\r
321 function(start){\r
322 if(0<=start&&start<=this.count){\r
323 if(start==this.count)return"";\r
324 this.shared=true;\r
325 return String.instantialize(start,this.count-start,this.value);\r
326 }throw new StringIndexOutOfBoundsException(start);\r
327 },"~N");\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
332 this.shared=true;\r
333 return String.instantialize(this.value,start,end-start);\r
334 }throw new StringIndexOutOfBoundsException();\r
335 },"~N,~N");\r
336 Clazz.overrideMethod(c$,"toString",\r
337 function(){\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
340 this.shared=true;\r
341 return String.instantialize(0,this.count,this.value);\r
342 });\r
343 Clazz.defineMethod(c$,"subSequence",\r
344 function(start,end){\r
345 return this.substring(start,end);\r
346 },"~N,~N");\r
347 Clazz.defineMethod(c$,"indexOf",\r
348 function(string){\r
349 return this.indexOf(string,0);\r
350 },"~S");\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
355 if(subCount>0){\r
356 if(subCount+start>this.count)return-1;\r
357 var firstChar=subString.charAt(0);\r
358 while(true){\r
359 var i=start;\r
360 var found=false;\r
361 for(;i<this.count;i++)if((this.value[i]).charCodeAt(0)==(firstChar).charCodeAt(0)){\r
362 found=true;\r
363 break;\r
364 }\r
365 if(!found||subCount+i>this.count)return-1;\r
366 var o1=i;\r
367 var o2=0;\r
368 while(++o2<subCount&&(this.value[++o1]).charCodeAt(0)==(subString.charAt(o2)).charCodeAt(0)){\r
369 }\r
370 if(o2==subCount)return i;\r
371 start=i+1;\r
372 }\r
373 }return(start<this.count||start==0)?start:this.count;\r
374 },"~S,~N");\r
375 Clazz.defineMethod(c$,"lastIndexOf",\r
376 function(string){\r
377 return this.lastIndexOf(string,this.count);\r
378 },"~S");\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
383 if(subCount>0){\r
384 if(start>this.count-subCount)start=this.count-subCount;\r
385 var firstChar=subString.charAt(0);\r
386 while(true){\r
387 var i=start;\r
388 var found=false;\r
389 for(;i>=0;--i)if((this.value[i]).charCodeAt(0)==(firstChar).charCodeAt(0)){\r
390 found=true;\r
391 break;\r
392 }\r
393 if(!found)return-1;\r
394 var o1=i;\r
395 var o2=0;\r
396 while(++o2<subCount&&(this.value[++o1]).charCodeAt(0)==(subString.charAt(o2)).charCodeAt(0)){\r
397 }\r
398 if(o2==subCount)return i;\r
399 start=i-1;\r
400 }\r
401 }return start<this.count?start:this.count;\r
402 }return-1;\r
403 },"~S,~N");\r
404 Clazz.defineMethod(c$,"trimToSize",\r
405 function(){\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
410 this.shared=false;\r
411 }});\r
412 Clazz.defineStatics(c$,\r
413 "INITIAL_CAPACITY",16);\r
414 });\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
418 function(seq){\r
419 Clazz.superConstructor(this,StringBuilder,[seq.toString()]);\r
420 },"CharSequence");\r
421 Clazz.defineMethod(c$,"append",\r
422 function(b){\r
423 this.append0(b?"true":"false");\r
424 return this;\r
425 },"~B");\r
426 Clazz.defineMethod(c$,"append",\r
427 function(c){\r
428 this.append0(c);\r
429 return this;\r
430 },"~N");\r
431 Clazz.defineMethod(c$,"append",\r
432 function(i){\r
433 this.append0(Integer.toString(i));\r
434 return this;\r
435 },"~N");\r
436 Clazz.defineMethod(c$,"append",\r
437 function(lng){\r
438 this.append0(Long.toString(lng));\r
439 return this;\r
440 },"~N");\r
441 Clazz.defineMethod(c$,"append",\r
442 function(f){\r
443 this.append0(Float.toString(f));\r
444 return this;\r
445 },"~N");\r
446 Clazz.defineMethod(c$,"append",\r
447 function(d){\r
448 this.append0(Double.toString(d));\r
449 return this;\r
450 },"~N");\r
451 Clazz.defineMethod(c$,"append",\r
452 function(obj){\r
453 if(obj==null){\r
454 this.appendNull();\r
455 }else{\r
456 this.append0(obj.toString());\r
457 }return this;\r
458 },"~O");\r
459 Clazz.defineMethod(c$,"append",\r
460 function(str){\r
461 this.append0(str);\r
462 return this;\r
463 },"~S");\r
464 Clazz.defineMethod(c$,"append",\r
465 function(sb){\r
466 if(sb==null){\r
467 this.appendNull();\r
468 }else{\r
469 this.append0(sb.getValue(),0,sb.length());\r
470 }return this;\r
471 },"StringBuffer");\r
472 Clazz.defineMethod(c$,"append",\r
473 function(ch){\r
474 this.append0(ch);\r
475 return this;\r
476 },"~A");\r
477 Clazz.defineMethod(c$,"append",\r
478 function(str,offset,len){\r
479 this.append0(str,offset,len);\r
480 return this;\r
481 },"~A,~N,~N");\r
482 Clazz.defineMethod(c$,"append",\r
483 function(csq){\r
484 if(csq==null){\r
485 this.appendNull();\r
486 }else{\r
487 this.append0(csq.toString());\r
488 }return this;\r
489 },"CharSequence");\r
490 Clazz.defineMethod(c$,"append",\r
491 function(csq,start,end){\r
492 this.append0(csq,start,end);\r
493 return this;\r
494 },"CharSequence,~N,~N");\r
495 Clazz.defineMethod(c$,"$delete",\r
496 function(start,end){\r
497 this.delete0(start,end);\r
498 return this;\r
499 },"~N,~N");\r
500 Clazz.defineMethod(c$,"deleteCharAt",\r
501 function(index){\r
502 this.deleteCharAt0(index);\r
503 return this;\r
504 },"~N");\r
505 Clazz.defineMethod(c$,"insert",\r
506 function(offset,b){\r
507 this.insert0(offset,b?"true":"false");\r
508 return this;\r
509 },"~N,~B");\r
510 Clazz.defineMethod(c$,"insert",\r
511 function(offset,c){\r
512 this.insert0(offset,c);\r
513 return this;\r
514 },"~N,~N");\r
515 Clazz.defineMethod(c$,"insert",\r
516 function(offset,i){\r
517 this.insert0(offset,Integer.toString(i));\r
518 return this;\r
519 },"~N,~N");\r
520 Clazz.defineMethod(c$,"insert",\r
521 function(offset,l){\r
522 this.insert0(offset,Long.toString(l));\r
523 return this;\r
524 },"~N,~N");\r
525 Clazz.defineMethod(c$,"insert",\r
526 function(offset,f){\r
527 this.insert0(offset,Float.toString(f));\r
528 return this;\r
529 },"~N,~N");\r
530 Clazz.defineMethod(c$,"insert",\r
531 function(offset,d){\r
532 this.insert0(offset,Double.toString(d));\r
533 return this;\r
534 },"~N,~N");\r
535 Clazz.defineMethod(c$,"insert",\r
536 function(offset,obj){\r
537 this.insert0(offset,obj==null?"null":obj.toString());\r
538 return this;\r
539 },"~N,~O");\r
540 Clazz.defineMethod(c$,"insert",\r
541 function(offset,str){\r
542 this.insert0(offset,str);\r
543 return this;\r
544 },"~N,~S");\r
545 Clazz.defineMethod(c$,"insert",\r
546 function(offset,ch){\r
547 this.insert0(offset,ch);\r
548 return this;\r
549 },"~N,~A");\r
550 Clazz.defineMethod(c$,"insert",\r
551 function(offset,str,strOffset,strLen){\r
552 this.insert0(offset,str,strOffset,strLen);\r
553 return this;\r
554 },"~N,~A,~N,~N");\r
555 Clazz.defineMethod(c$,"insert",\r
556 function(offset,s){\r
557 this.insert0(offset,s==null?"null":s.toString());\r
558 return this;\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
563 return this;\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
568 return this;\r
569 },"~N,~N,~S");\r
570 Clazz.defineMethod(c$,"reverse",\r
571 function(){\r
572 this.reverse0();\r
573 return this;\r
574 });\r
575 });\r