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(){
\r
2 c$=Clazz.decorateAsClass(function(){
\r
5 Clazz.instantialize(this,arguments);
\r
6 },java.util,"LinkedList",java.util.AbstractSequentialList,[java.util.List,java.util.Queue,Cloneable,java.io.Serializable]);
\r
7 Clazz.makeConstructor(c$,
\r
9 Clazz.superConstructor(this,java.util.LinkedList,[]);
\r
10 this.voidLink=new java.util.LinkedList.Link(null,null,null);
\r
11 this.voidLink.previous=this.voidLink;
\r
12 this.voidLink.next=this.voidLink;
\r
14 Clazz.makeConstructor(c$,
\r
15 function(collection){
\r
17 this.addAll(collection);
\r
18 },"java.util.Collection");
\r
19 Clazz.defineMethod(c$,"add",
\r
20 function(location,object){
\r
21 if(0<=location&&location<=this.$size){
\r
22 var link=this.voidLink;
\r
23 if(location<(Math.floor(this.$size/2))){
\r
24 for(var i=0;i<=location;i++){
\r
28 for(var i=this.$size;i>location;i--){
\r
31 }var previous=link.previous;
\r
32 var newLink=new java.util.LinkedList.Link(object,previous,link);
\r
33 previous.next=newLink;
\r
34 link.previous=newLink;
\r
38 throw new IndexOutOfBoundsException();
\r
40 Clazz.defineMethod(c$,"add",
\r
42 var oldLast=this.voidLink.previous;
\r
43 var newLink=new java.util.LinkedList.Link(object,oldLast,this.voidLink);
\r
44 this.voidLink.previous=newLink;
\r
45 oldLast.next=newLink;
\r
50 Clazz.defineMethod(c$,"addAll",
\r
51 function(location,collection){
\r
52 if(location<0||location>this.$size){
\r
53 throw new IndexOutOfBoundsException();
\r
54 }var adding=collection.size();
\r
57 }var previous=this.voidLink;
\r
58 if(location<(Math.floor(this.$size/2))){
\r
59 for(var i=0;i<location;i++){
\r
60 previous=previous.next;
\r
63 for(var i=this.$size;i>=location;i--){
\r
64 previous=previous.previous;
\r
66 }var next=previous.next;
\r
67 for(var e,$e=collection.iterator();$e.hasNext()&&((e=$e.next())||true);){
\r
68 var newLink=new java.util.LinkedList.Link(e,previous,null);
\r
69 previous.next=newLink;
\r
73 next.previous=previous;
\r
77 },"~N,java.util.Collection");
\r
78 Clazz.defineMethod(c$,"addAll",
\r
79 function(collection){
\r
80 var adding=collection.size();
\r
83 }var previous=this.voidLink.previous;
\r
84 for(var e,$e=collection.iterator();$e.hasNext()&&((e=$e.next())||true);){
\r
85 var newLink=new java.util.LinkedList.Link(e,previous,null);
\r
86 previous.next=newLink;
\r
89 previous.next=this.voidLink;
\r
90 this.voidLink.previous=previous;
\r
94 },"java.util.Collection");
\r
95 Clazz.defineMethod(c$,"addFirst",
\r
97 var oldFirst=this.voidLink.next;
\r
98 var newLink=new java.util.LinkedList.Link(object,this.voidLink,oldFirst);
\r
99 this.voidLink.next=newLink;
\r
100 oldFirst.previous=newLink;
\r
104 Clazz.defineMethod(c$,"addLast",
\r
106 var oldLast=this.voidLink.previous;
\r
107 var newLink=new java.util.LinkedList.Link(object,oldLast,this.voidLink);
\r
108 this.voidLink.previous=newLink;
\r
109 oldLast.next=newLink;
\r
113 Clazz.overrideMethod(c$,"clear",
\r
117 this.voidLink.next=this.voidLink;
\r
118 this.voidLink.previous=this.voidLink;
\r
121 Clazz.overrideMethod(c$,"clone",
\r
123 return new java.util.LinkedList(this);
\r
125 Clazz.overrideMethod(c$,"contains",
\r
127 var link=this.voidLink.next;
\r
129 while(link!==this.voidLink){
\r
130 if(object.equals(link.data)){
\r
135 while(link!==this.voidLink){
\r
136 if(link.data==null){
\r
142 Clazz.overrideMethod(c$,"get",
\r
143 function(location){
\r
144 if(0<=location&&location<this.$size){
\r
145 var link=this.voidLink;
\r
146 if(location<(Math.floor(this.$size/2))){
\r
147 for(var i=0;i<=location;i++){
\r
151 for(var i=this.$size;i>location;i--){
\r
152 link=link.previous;
\r
155 }throw new IndexOutOfBoundsException();
\r
157 Clazz.defineMethod(c$,"getFirst",
\r
159 var first=this.voidLink.next;
\r
160 if(first!==this.voidLink){
\r
162 }throw new java.util.NoSuchElementException();
\r
164 Clazz.defineMethod(c$,"getLast",
\r
166 var last=this.voidLink.previous;
\r
167 if(last!==this.voidLink){
\r
169 }throw new java.util.NoSuchElementException();
\r
171 Clazz.overrideMethod(c$,"indexOf",
\r
174 var link=this.voidLink.next;
\r
176 while(link!==this.voidLink){
\r
177 if(object.equals(link.data)){
\r
183 while(link!==this.voidLink){
\r
184 if(link.data==null){
\r
191 Clazz.overrideMethod(c$,"lastIndexOf",
\r
193 var pos=this.$size;
\r
194 var link=this.voidLink.previous;
\r
196 while(link!==this.voidLink){
\r
198 if(object.equals(link.data)){
\r
200 }link=link.previous;
\r
203 while(link!==this.voidLink){
\r
205 if(link.data==null){
\r
207 }link=link.previous;
\r
211 Clazz.defineMethod(c$,"listIterator",
\r
212 function(location){
\r
213 return new java.util.LinkedList.LinkIterator(this,location);
\r
215 Clazz.defineMethod(c$,"remove",
\r
216 function(location){
\r
217 if(0<=location&&location<this.$size){
\r
218 var link=this.voidLink;
\r
219 if(location<(Math.floor(this.$size/2))){
\r
220 for(var i=0;i<=location;i++){
\r
224 for(var i=this.$size;i>location;i--){
\r
225 link=link.previous;
\r
227 }var previous=link.previous;
\r
228 var next=link.next;
\r
229 previous.next=next;
\r
230 next.previous=previous;
\r
234 }throw new IndexOutOfBoundsException();
\r
236 Clazz.defineMethod(c$,"remove",
\r
238 var link=this.voidLink.next;
\r
240 while(link!==this.voidLink&&!object.equals(link.data)){
\r
244 while(link!==this.voidLink&&link.data!=null){
\r
247 }if(link===this.voidLink){
\r
249 }var next=link.next;
\r
250 var previous=link.previous;
\r
251 previous.next=next;
\r
252 next.previous=previous;
\r
257 Clazz.defineMethod(c$,"removeFirst",
\r
259 var first=this.voidLink.next;
\r
260 if(first!==this.voidLink){
\r
261 var next=first.next;
\r
262 this.voidLink.next=next;
\r
263 next.previous=this.voidLink;
\r
267 }throw new java.util.NoSuchElementException();
\r
269 Clazz.defineMethod(c$,"removeLast",
\r
271 var last=this.voidLink.previous;
\r
272 if(last!==this.voidLink){
\r
273 var previous=last.previous;
\r
274 this.voidLink.previous=previous;
\r
275 previous.next=this.voidLink;
\r
279 }throw new java.util.NoSuchElementException();
\r
281 Clazz.overrideMethod(c$,"set",
\r
282 function(location,object){
\r
283 if(0<=location&&location<this.$size){
\r
284 var link=this.voidLink;
\r
285 if(location<(Math.floor(this.$size/2))){
\r
286 for(var i=0;i<=location;i++){
\r
290 for(var i=this.$size;i>location;i--){
\r
291 link=link.previous;
\r
293 }var result=link.data;
\r
296 }throw new IndexOutOfBoundsException();
\r
298 Clazz.overrideMethod(c$,"size",
\r
302 Clazz.overrideMethod(c$,"offer",
\r
307 Clazz.overrideMethod(c$,"poll",
\r
309 return this.$size==0?null:this.removeFirst();
\r
311 Clazz.defineMethod(c$,"remove",
\r
313 return this.removeFirst();
\r
315 Clazz.overrideMethod(c$,"peek",
\r
317 var first=this.voidLink.next;
\r
318 return first===this.voidLink?null:first.data;
\r
320 Clazz.overrideMethod(c$,"element",
\r
322 return this.getFirst();
\r
324 Clazz.defineMethod(c$,"toArray",
\r
327 var contents=new Array(this.$size);
\r
328 var link=this.voidLink.next;
\r
329 while(link!==this.voidLink){
\r
330 contents[index++]=link.data;
\r
335 Clazz.defineMethod(c$,"toArray",
\r
336 function(contents){
\r
338 if(this.$size>contents.length){
\r
339 var ct=contents.getClass().getComponentType();
\r
340 contents=java.lang.reflect.Array.newInstance(ct,this.$size);
\r
341 }var link=this.voidLink.next;
\r
342 while(link!==this.voidLink){
\r
343 contents[index++]=link.data;
\r
346 if(index<contents.length){
\r
347 contents[index]=null;
\r
350 Clazz.pu$h(self.c$);
\r
351 c$=Clazz.decorateAsClass(function(){
\r
353 this.previous=null;
\r
355 Clazz.instantialize(this,arguments);
\r
356 },java.util.LinkedList,"Link");
\r
357 Clazz.makeConstructor(c$,
\r
362 },"~O,java.util.LinkedList.Link,java.util.LinkedList.Link");
\r
364 Clazz.pu$h(self.c$);
\r
365 c$=Clazz.decorateAsClass(function(){
\r
367 this.expectedModCount=0;
\r
370 this.lastLink=null;
\r
371 Clazz.instantialize(this,arguments);
\r
372 },java.util.LinkedList,"LinkIterator",null,java.util.ListIterator);
\r
373 Clazz.makeConstructor(c$,
\r
376 this.expectedModCount=this.list.modCount;
\r
377 if(0<=b&&b<=this.list.$size){
\r
378 this.link=this.list.voidLink;
\r
379 if(b<Math.floor(this.list.$size/2)){
\r
380 for(this.pos=-1;this.pos+1<b;this.pos++){
\r
381 this.link=this.link.next;
\r
384 for(this.pos=this.list.$size;this.pos>=b;this.pos--){
\r
385 this.link=this.link.previous;
\r
388 throw new IndexOutOfBoundsException();
\r
389 }},"java.util.LinkedList,~N");
\r
390 Clazz.overrideMethod(c$,"add",
\r
392 if(this.expectedModCount==this.list.modCount){
\r
393 var b=this.link.next;
\r
394 var c=new java.util.LinkedList.Link(a,this.link,b);
\r
398 this.lastLink=null;
\r
400 this.expectedModCount++;
\r
402 this.list.modCount++;
\r
404 throw new java.util.ConcurrentModificationException();
\r
406 Clazz.overrideMethod(c$,"hasNext",
\r
408 return this.link.next!==this.list.voidLink;
\r
410 Clazz.overrideMethod(c$,"hasPrevious",
\r
412 return this.link!==this.list.voidLink;
\r
414 Clazz.overrideMethod(c$,"next",
\r
416 if(this.expectedModCount==this.list.modCount){
\r
417 var a=this.link.next;
\r
418 if(a!==this.list.voidLink){
\r
419 this.lastLink=this.link=a;
\r
421 return this.link.data;
\r
422 }throw new java.util.NoSuchElementException();
\r
423 }throw new java.util.ConcurrentModificationException();
\r
425 Clazz.overrideMethod(c$,"nextIndex",
\r
429 Clazz.overrideMethod(c$,"previous",
\r
431 if(this.expectedModCount==this.list.modCount){
\r
432 if(this.link!==this.list.voidLink){
\r
433 this.lastLink=this.link;
\r
434 this.link=this.link.previous;
\r
436 return this.lastLink.data;
\r
437 }throw new java.util.NoSuchElementException();
\r
438 }throw new java.util.ConcurrentModificationException();
\r
440 Clazz.overrideMethod(c$,"previousIndex",
\r
444 Clazz.overrideMethod(c$,"remove",
\r
446 if(this.expectedModCount==this.list.modCount){
\r
447 if(this.lastLink!=null){
\r
448 var a=this.lastLink.next;
\r
449 var b=this.lastLink.previous;
\r
452 if(this.lastLink===this.link){
\r
455 this.lastLink=null;
\r
456 this.expectedModCount++;
\r
458 this.list.modCount++;
\r
460 throw new IllegalStateException();
\r
462 throw new java.util.ConcurrentModificationException();
\r
464 Clazz.overrideMethod(c$,"set",
\r
466 if(this.expectedModCount==this.list.modCount){
\r
467 if(this.lastLink!=null){
\r
468 this.lastLink.data=a;
\r
470 throw new IllegalStateException();
\r
472 throw new java.util.ConcurrentModificationException();
\r