4919686013649c1ef25f549dbf50318e9570af55
[jalviewjs.git] / site / j2s / java / util / LinkedList.js
1 Clazz.load(["java.util.AbstractSequentialList","$.List","$.ListIterator","$.Queue"],"java.util.LinkedList",["java.lang.IllegalStateException","$.IndexOutOfBoundsException","java.lang.reflect.Array","java.util.ConcurrentModificationException","$.NoSuchElementException"],function(){
2 c$=Clazz.decorateAsClass(function(){
3 this.$size=0;
4 this.voidLink=null;
5 Clazz.instantialize(this,arguments);
6 },java.util,"LinkedList",java.util.AbstractSequentialList,[java.util.List,java.util.Queue,Cloneable,java.io.Serializable]);
7 Clazz.makeConstructor(c$,
8 function(){
9 Clazz.superConstructor(this,java.util.LinkedList,[]);
10 this.voidLink=new java.util.LinkedList.Link(null,null,null);
11 this.voidLink.previous=this.voidLink;
12 this.voidLink.next=this.voidLink;
13 });
14 Clazz.makeConstructor(c$,
15 function(collection){
16 this.construct();
17 this.addAll(collection);
18 },"java.util.Collection");
19 Clazz.defineMethod(c$,"add",
20 function(location,object){
21 if(0<=location&&location<=this.$size){
22 var link=this.voidLink;
23 if(location<(Math.floor(this.$size/2))){
24 for(var i=0;i<=location;i++){
25 link=link.next;
26 }
27 }else{
28 for(var i=this.$size;i>location;i--){
29 link=link.previous;
30 }
31 }var previous=link.previous;
32 var newLink=new java.util.LinkedList.Link(object,previous,link);
33 previous.next=newLink;
34 link.previous=newLink;
35 this.$size++;
36 this.modCount++;
37 }else{
38 throw new IndexOutOfBoundsException();
39 }},"~N,~O");
40 Clazz.defineMethod(c$,"add",
41 function(object){
42 var oldLast=this.voidLink.previous;
43 var newLink=new java.util.LinkedList.Link(object,oldLast,this.voidLink);
44 this.voidLink.previous=newLink;
45 oldLast.next=newLink;
46 this.$size++;
47 this.modCount++;
48 return true;
49 },"~O");
50 Clazz.defineMethod(c$,"addAll",
51 function(location,collection){
52 if(location<0||location>this.$size){
53 throw new IndexOutOfBoundsException();
54 }var adding=collection.size();
55 if(adding==0){
56 return false;
57 }var previous=this.voidLink;
58 if(location<(Math.floor(this.$size/2))){
59 for(var i=0;i<location;i++){
60 previous=previous.next;
61 }
62 }else{
63 for(var i=this.$size;i>=location;i--){
64 previous=previous.previous;
65 }
66 }var next=previous.next;
67 for(var e,$e=collection.iterator();$e.hasNext()&&((e=$e.next())||true);){
68 var newLink=new java.util.LinkedList.Link(e,previous,null);
69 previous.next=newLink;
70 previous=newLink;
71 }
72 previous.next=next;
73 next.previous=previous;
74 this.$size+=adding;
75 this.modCount++;
76 return true;
77 },"~N,java.util.Collection");
78 Clazz.defineMethod(c$,"addAll",
79 function(collection){
80 var adding=collection.size();
81 if(adding==0){
82 return false;
83 }var previous=this.voidLink.previous;
84 for(var e,$e=collection.iterator();$e.hasNext()&&((e=$e.next())||true);){
85 var newLink=new java.util.LinkedList.Link(e,previous,null);
86 previous.next=newLink;
87 previous=newLink;
88 }
89 previous.next=this.voidLink;
90 this.voidLink.previous=previous;
91 this.$size+=adding;
92 this.modCount++;
93 return true;
94 },"java.util.Collection");
95 Clazz.defineMethod(c$,"addFirst",
96 function(object){
97 var oldFirst=this.voidLink.next;
98 var newLink=new java.util.LinkedList.Link(object,this.voidLink,oldFirst);
99 this.voidLink.next=newLink;
100 oldFirst.previous=newLink;
101 this.$size++;
102 this.modCount++;
103 },"~O");
104 Clazz.defineMethod(c$,"addLast",
105 function(object){
106 var oldLast=this.voidLink.previous;
107 var newLink=new java.util.LinkedList.Link(object,oldLast,this.voidLink);
108 this.voidLink.previous=newLink;
109 oldLast.next=newLink;
110 this.$size++;
111 this.modCount++;
112 },"~O");
113 Clazz.overrideMethod(c$,"clear",
114 function(){
115 if(this.$size>0){
116 this.$size=0;
117 this.voidLink.next=this.voidLink;
118 this.voidLink.previous=this.voidLink;
119 this.modCount++;
120 }});
121 Clazz.overrideMethod(c$,"clone",
122 function(){
123 return new java.util.LinkedList(this);
124 });
125 Clazz.overrideMethod(c$,"contains",
126 function(object){
127 var link=this.voidLink.next;
128 if(object!=null){
129 while(link!==this.voidLink){
130 if(object.equals(link.data)){
131 return true;
132 }link=link.next;
133 }
134 }else{
135 while(link!==this.voidLink){
136 if(link.data==null){
137 return true;
138 }link=link.next;
139 }
140 }return false;
141 },"~O");
142 Clazz.overrideMethod(c$,"get",
143 function(location){
144 if(0<=location&&location<this.$size){
145 var link=this.voidLink;
146 if(location<(Math.floor(this.$size/2))){
147 for(var i=0;i<=location;i++){
148 link=link.next;
149 }
150 }else{
151 for(var i=this.$size;i>location;i--){
152 link=link.previous;
153 }
154 }return link.data;
155 }throw new IndexOutOfBoundsException();
156 },"~N");
157 Clazz.defineMethod(c$,"getFirst",
158 function(){
159 var first=this.voidLink.next;
160 if(first!==this.voidLink){
161 return first.data;
162 }throw new java.util.NoSuchElementException();
163 });
164 Clazz.defineMethod(c$,"getLast",
165 function(){
166 var last=this.voidLink.previous;
167 if(last!==this.voidLink){
168 return last.data;
169 }throw new java.util.NoSuchElementException();
170 });
171 Clazz.overrideMethod(c$,"indexOf",
172 function(object){
173 var pos=0;
174 var link=this.voidLink.next;
175 if(object!=null){
176 while(link!==this.voidLink){
177 if(object.equals(link.data)){
178 return pos;
179 }link=link.next;
180 pos++;
181 }
182 }else{
183 while(link!==this.voidLink){
184 if(link.data==null){
185 return pos;
186 }link=link.next;
187 pos++;
188 }
189 }return-1;
190 },"~O");
191 Clazz.overrideMethod(c$,"lastIndexOf",
192 function(object){
193 var pos=this.$size;
194 var link=this.voidLink.previous;
195 if(object!=null){
196 while(link!==this.voidLink){
197 pos--;
198 if(object.equals(link.data)){
199 return pos;
200 }link=link.previous;
201 }
202 }else{
203 while(link!==this.voidLink){
204 pos--;
205 if(link.data==null){
206 return pos;
207 }link=link.previous;
208 }
209 }return-1;
210 },"~O");
211 Clazz.defineMethod(c$,"listIterator",
212 function(location){
213 return new java.util.LinkedList.LinkIterator(this,location);
214 },"~N");
215 Clazz.defineMethod(c$,"remove",
216 function(location){
217 if(0<=location&&location<this.$size){
218 var link=this.voidLink;
219 if(location<(Math.floor(this.$size/2))){
220 for(var i=0;i<=location;i++){
221 link=link.next;
222 }
223 }else{
224 for(var i=this.$size;i>location;i--){
225 link=link.previous;
226 }
227 }var previous=link.previous;
228 var next=link.next;
229 previous.next=next;
230 next.previous=previous;
231 this.$size--;
232 this.modCount++;
233 return link.data;
234 }throw new IndexOutOfBoundsException();
235 },"~N");
236 Clazz.defineMethod(c$,"remove",
237 function(object){
238 var link=this.voidLink.next;
239 if(object!=null){
240 while(link!==this.voidLink&&!object.equals(link.data)){
241 link=link.next;
242 }
243 }else{
244 while(link!==this.voidLink&&link.data!=null){
245 link=link.next;
246 }
247 }if(link===this.voidLink){
248 return false;
249 }var next=link.next;
250 var previous=link.previous;
251 previous.next=next;
252 next.previous=previous;
253 this.$size--;
254 this.modCount++;
255 return true;
256 },"~O");
257 Clazz.defineMethod(c$,"removeFirst",
258 function(){
259 var first=this.voidLink.next;
260 if(first!==this.voidLink){
261 var next=first.next;
262 this.voidLink.next=next;
263 next.previous=this.voidLink;
264 this.$size--;
265 this.modCount++;
266 return first.data;
267 }throw new java.util.NoSuchElementException();
268 });
269 Clazz.defineMethod(c$,"removeLast",
270 function(){
271 var last=this.voidLink.previous;
272 if(last!==this.voidLink){
273 var previous=last.previous;
274 this.voidLink.previous=previous;
275 previous.next=this.voidLink;
276 this.$size--;
277 this.modCount++;
278 return last.data;
279 }throw new java.util.NoSuchElementException();
280 });
281 Clazz.overrideMethod(c$,"set",
282 function(location,object){
283 if(0<=location&&location<this.$size){
284 var link=this.voidLink;
285 if(location<(Math.floor(this.$size/2))){
286 for(var i=0;i<=location;i++){
287 link=link.next;
288 }
289 }else{
290 for(var i=this.$size;i>location;i--){
291 link=link.previous;
292 }
293 }var result=link.data;
294 link.data=object;
295 return result;
296 }throw new IndexOutOfBoundsException();
297 },"~N,~O");
298 Clazz.overrideMethod(c$,"size",
299 function(){
300 return this.$size;
301 });
302 Clazz.overrideMethod(c$,"offer",
303 function(o){
304 this.add(o);
305 return true;
306 },"~O");
307 Clazz.overrideMethod(c$,"poll",
308 function(){
309 return this.$size==0?null:this.removeFirst();
310 });
311 Clazz.defineMethod(c$,"remove",
312 function(){
313 return this.removeFirst();
314 });
315 Clazz.overrideMethod(c$,"peek",
316 function(){
317 var first=this.voidLink.next;
318 return first===this.voidLink?null:first.data;
319 });
320 Clazz.overrideMethod(c$,"element",
321 function(){
322 return this.getFirst();
323 });
324 Clazz.defineMethod(c$,"toArray",
325 function(){
326 var index=0;
327 var contents=new Array(this.$size);
328 var link=this.voidLink.next;
329 while(link!==this.voidLink){
330 contents[index++]=link.data;
331 link=link.next;
332 }
333 return contents;
334 });
335 Clazz.defineMethod(c$,"toArray",
336 function(contents){
337 var index=0;
338 if(this.$size>contents.length){
339 var ct=contents.getClass().getComponentType();
340 contents=java.lang.reflect.Array.newInstance(ct,this.$size);
341 }var link=this.voidLink.next;
342 while(link!==this.voidLink){
343 contents[index++]=link.data;
344 link=link.next;
345 }
346 if(index<contents.length){
347 contents[index]=null;
348 }return contents;
349 },"~A");
350 Clazz.pu$h(self.c$);
351 c$=Clazz.decorateAsClass(function(){
352 this.data=null;
353 this.previous=null;
354 this.next=null;
355 Clazz.instantialize(this,arguments);
356 },java.util.LinkedList,"Link");
357 Clazz.makeConstructor(c$,
358 function(a,b,c){
359 this.data=a;
360 this.previous=b;
361 this.next=c;
362 },"~O,java.util.LinkedList.Link,java.util.LinkedList.Link");
363 c$=Clazz.p0p();
364 Clazz.pu$h(self.c$);
365 c$=Clazz.decorateAsClass(function(){
366 this.pos=0;
367 this.expectedModCount=0;
368 this.list=null;
369 this.link=null;
370 this.lastLink=null;
371 Clazz.instantialize(this,arguments);
372 },java.util.LinkedList,"LinkIterator",null,java.util.ListIterator);
373 Clazz.makeConstructor(c$,
374 function(a,b){
375 this.list=a;
376 this.expectedModCount=this.list.modCount;
377 if(0<=b&&b<=this.list.$size){
378 this.link=this.list.voidLink;
379 if(b<Math.floor(this.list.$size/2)){
380 for(this.pos=-1;this.pos+1<b;this.pos++){
381 this.link=this.link.next;
382 }
383 }else{
384 for(this.pos=this.list.$size;this.pos>=b;this.pos--){
385 this.link=this.link.previous;
386 }
387 }}else{
388 throw new IndexOutOfBoundsException();
389 }},"java.util.LinkedList,~N");
390 Clazz.overrideMethod(c$,"add",
391 function(a){
392 if(this.expectedModCount==this.list.modCount){
393 var b=this.link.next;
394 var c=new java.util.LinkedList.Link(a,this.link,b);
395 this.link.next=c;
396 b.previous=c;
397 this.link=c;
398 this.lastLink=null;
399 this.pos++;
400 this.expectedModCount++;
401 this.list.$size++;
402 this.list.modCount++;
403 }else{
404 throw new java.util.ConcurrentModificationException();
405 }},"~O");
406 Clazz.overrideMethod(c$,"hasNext",
407 function(){
408 return this.link.next!==this.list.voidLink;
409 });
410 Clazz.overrideMethod(c$,"hasPrevious",
411 function(){
412 return this.link!==this.list.voidLink;
413 });
414 Clazz.overrideMethod(c$,"next",
415 function(){
416 if(this.expectedModCount==this.list.modCount){
417 var a=this.link.next;
418 if(a!==this.list.voidLink){
419 this.lastLink=this.link=a;
420 this.pos++;
421 return this.link.data;
422 }throw new java.util.NoSuchElementException();
423 }throw new java.util.ConcurrentModificationException();
424 });
425 Clazz.overrideMethod(c$,"nextIndex",
426 function(){
427 return this.pos+1;
428 });
429 Clazz.overrideMethod(c$,"previous",
430 function(){
431 if(this.expectedModCount==this.list.modCount){
432 if(this.link!==this.list.voidLink){
433 this.lastLink=this.link;
434 this.link=this.link.previous;
435 this.pos--;
436 return this.lastLink.data;
437 }throw new java.util.NoSuchElementException();
438 }throw new java.util.ConcurrentModificationException();
439 });
440 Clazz.overrideMethod(c$,"previousIndex",
441 function(){
442 return this.pos;
443 });
444 Clazz.overrideMethod(c$,"remove",
445 function(){
446 if(this.expectedModCount==this.list.modCount){
447 if(this.lastLink!=null){
448 var a=this.lastLink.next;
449 var b=this.lastLink.previous;
450 a.previous=b;
451 b.next=a;
452 if(this.lastLink===this.link){
453 this.pos--;
454 }this.link=b;
455 this.lastLink=null;
456 this.expectedModCount++;
457 this.list.$size--;
458 this.list.modCount++;
459 }else{
460 throw new IllegalStateException();
461 }}else{
462 throw new java.util.ConcurrentModificationException();
463 }});
464 Clazz.overrideMethod(c$,"set",
465 function(a){
466 if(this.expectedModCount==this.list.modCount){
467 if(this.lastLink!=null){
468 this.lastLink.data=a;
469 }else{
470 throw new IllegalStateException();
471 }}else{
472 throw new java.util.ConcurrentModificationException();
473 }},"~O");
474 c$=Clazz.p0p();
475 });