1 Clazz.declarePackage ("jssun.misc");
\r
2 Clazz.load (["java.util.Enumeration"], ["jssun.misc.Queue", "$.LIFOQueueEnumerator", "$.FIFOQueueEnumerator", "$.QueueElement"], ["java.util.NoSuchElementException", "swingjs.JSToolkit"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
7 Clazz.instantialize (this, arguments);
\r
8 }, jssun.misc, "Queue");
\r
9 Clazz.makeConstructor (c$,
\r
12 Clazz.defineMethod (c$, "enqueue",
\r
14 var newElt = new jssun.misc.QueueElement (obj);
\r
15 if (this.head == null) {
\r
20 newElt.next = this.head;
\r
21 this.head.prev = newElt;
\r
26 Clazz.defineMethod (c$, "dequeue",
\r
28 return this.dequeue (0);
\r
30 Clazz.defineMethod (c$, "dequeue",
\r
31 function (timeOut) {
\r
32 while (this.tail == null) {
\r
33 swingjs.JSToolkit.warn ("Cannot wait in Queue.java");
\r
34 this.wait (timeOut);
\r
36 var elt = this.tail;
\r
37 this.tail = elt.prev;
\r
38 if (this.tail == null) {
\r
41 this.tail.next = null;
\r
45 Clazz.defineMethod (c$, "isEmpty",
\r
47 return (this.tail == null);
\r
49 Clazz.defineMethod (c$, "elements",
\r
51 return new jssun.misc.LIFOQueueEnumerator (this);
\r
53 Clazz.defineMethod (c$, "reverseElements",
\r
55 return new jssun.misc.FIFOQueueEnumerator (this);
\r
57 Clazz.defineMethod (c$, "dump",
\r
59 System.err.println (">> " + msg);
\r
60 System.err.println ("[" + this.length + " elt(s); head = " + (this.head == null ? "null" : (this.head.obj) + "") + " tail = " + (this.tail == null ? "null" : (this.tail.obj) + ""));
\r
61 var cursor = this.head;
\r
63 while (cursor != null) {
\r
64 System.err.println (" " + cursor);
\r
66 cursor = cursor.next;
\r
68 if (last !== this.tail) {
\r
69 System.err.println (" tail != last: " + this.tail + ", " + last);
\r
70 }System.err.println ("]");
\r
72 c$ = Clazz.decorateAsClass (function () {
\r
75 Clazz.instantialize (this, arguments);
\r
76 }, jssun.misc, "FIFOQueueEnumerator", null, java.util.Enumeration);
\r
77 Clazz.makeConstructor (c$,
\r
80 this.cursor = q.tail;
\r
81 }, "jssun.misc.Queue");
\r
82 Clazz.overrideMethod (c$, "hasMoreElements",
\r
84 return (this.cursor != null);
\r
86 Clazz.overrideMethod (c$, "nextElement",
\r
89 if (this.cursor != null) {
\r
90 var result = this.cursor;
\r
91 this.cursor = this.cursor.prev;
\r
93 }}throw new java.util.NoSuchElementException ("FIFOQueueEnumerator");
\r
95 c$ = Clazz.decorateAsClass (function () {
\r
98 Clazz.instantialize (this, arguments);
\r
99 }, jssun.misc, "LIFOQueueEnumerator", null, java.util.Enumeration);
\r
100 Clazz.makeConstructor (c$,
\r
103 this.cursor = q.head;
\r
104 }, "jssun.misc.Queue");
\r
105 Clazz.overrideMethod (c$, "hasMoreElements",
\r
107 return (this.cursor != null);
\r
109 Clazz.overrideMethod (c$, "nextElement",
\r
112 if (this.cursor != null) {
\r
113 var result = this.cursor;
\r
114 this.cursor = this.cursor.next;
\r
116 }}throw new java.util.NoSuchElementException ("LIFOQueueEnumerator");
\r
118 c$ = Clazz.decorateAsClass (function () {
\r
122 Clazz.instantialize (this, arguments);
\r
123 }, jssun.misc, "QueueElement");
\r
124 Clazz.makeConstructor (c$,
\r
128 Clazz.overrideMethod (c$, "toString",
\r
130 return "QueueElement[obj=" + this.obj + (this.prev == null ? " null" : " prev") + (this.next == null ? " null" : " next") + "]";
\r