home *** CD-ROM | disk | FTP | other *** search
- package COM.objectspace.jgl;
-
- public final class OrderedMapIterator implements BidirectionalIterator {
- public static final int PAIR = 1;
- public static final int KEY = 2;
- public static final int VALUE = 3;
- OrderedMap myOrderedMap;
- Tree myTree;
- Tree.TreeNode myNode;
- int myMode = 1;
-
- public OrderedMapIterator() {
- }
-
- public OrderedMapIterator(OrderedMapIterator var1) {
- this.myOrderedMap = var1.myOrderedMap;
- this.myTree = var1.myTree;
- this.myNode = var1.myNode;
- this.myMode = var1.myMode;
- }
-
- OrderedMapIterator(Tree var1, Tree.TreeNode var2, OrderedMap var3, int var4) {
- this.myOrderedMap = var3;
- this.myTree = var1;
- this.myNode = var2;
- this.myMode = var4;
- }
-
- public Object clone() {
- return new OrderedMapIterator(this);
- }
-
- public boolean equals(Object var1) {
- if (var1 instanceof OrderedMapIterator) {
- OrderedMapIterator var2 = (OrderedMapIterator)var1;
- if (this.myNode == var2.myNode || false) {
- return true;
- }
- }
-
- return false;
- }
-
- public boolean equals(OrderedMapIterator var1) {
- return this.myNode == var1.myNode;
- }
-
- public boolean atBegin() {
- return this.myNode == this.myTree.myHeader.left;
- }
-
- public boolean atEnd() {
- return this.myNode == this.myTree.myHeader;
- }
-
- public boolean hasMoreElements() {
- return this.myNode != this.myTree.myHeader;
- }
-
- public void advance() {
- this.myNode = Tree.increment(this.myNode, this.myTree.NIL);
- }
-
- public void advance(int var1) {
- if (var1 >= 0) {
- while(var1-- > 0) {
- this.myNode = Tree.increment(this.myNode, this.myTree.NIL);
- }
-
- } else {
- while(var1++ < 0) {
- this.myNode = Tree.decrement(this.myNode, this.myTree.NIL);
- }
-
- }
- }
-
- public void retreat() {
- this.myNode = Tree.decrement(this.myNode, this.myTree.NIL);
- }
-
- public void retreat(int var1) {
- int var2 = -var1;
- if (var2 >= 0) {
- while(var2-- > 0) {
- this.myNode = Tree.increment(this.myNode, this.myTree.NIL);
- }
-
- } else {
- while(var2++ < 0) {
- this.myNode = Tree.decrement(this.myNode, this.myTree.NIL);
- }
-
- }
- }
-
- public Object nextElement() {
- Object var1 = this.myNode.object;
- this.myNode = Tree.increment(this.myNode, this.myTree.NIL);
- switch (this.myMode) {
- case 1:
- return var1;
- case 2:
- return ((Pair)var1).first;
- case 3:
- return ((Pair)var1).second;
- default:
- return null;
- }
- }
-
- public Object get() {
- switch (this.myMode) {
- case 1:
- return this.myNode.object;
- case 2:
- return ((Pair)this.myNode.object).first;
- case 3:
- return ((Pair)this.myNode.object).second;
- default:
- return null;
- }
- }
-
- public void put(Object var1) {
- this.myNode.object = var1;
- }
-
- public Object key() {
- return ((Pair)this.myNode.object).first;
- }
-
- public Object value() {
- return ((Pair)this.myNode.object).second;
- }
-
- public void value(Object var1) {
- ((Pair)this.myNode.object).second = var1;
- }
-
- public Object get(int var1) {
- Tree.TreeNode var2 = this.myNode;
- int var3 = var1;
- if (var1 >= 0) {
- while(var3-- > 0) {
- this.myNode = Tree.increment(this.myNode, this.myTree.NIL);
- }
- } else {
- while(var3++ < 0) {
- this.myNode = Tree.decrement(this.myNode, this.myTree.NIL);
- }
- }
-
- Object var4 = this.get();
- this.myNode = var2;
- switch (this.myMode) {
- case 1:
- return var4;
- case 2:
- return ((Pair)var4).first;
- case 3:
- return ((Pair)var4).second;
- default:
- return null;
- }
- }
-
- public void put(int var1, Object var2) {
- Tree.TreeNode var3 = this.myNode;
- int var4 = var1;
- if (var1 >= 0) {
- while(var4-- > 0) {
- this.myNode = Tree.increment(this.myNode, this.myTree.NIL);
- }
- } else {
- while(var4++ < 0) {
- this.myNode = Tree.decrement(this.myNode, this.myTree.NIL);
- }
- }
-
- this.myNode.object = var2;
- this.myNode = var3;
- }
-
- public int distance(ForwardIterator var1) {
- Tree.TreeNode var2 = ((OrderedMapIterator)var1).myNode;
-
- int var3;
- for(var3 = 0; var2 != this.myNode; var2 = Tree.decrement(var2, this.myTree.NIL)) {
- ++var3;
- }
-
- return var3;
- }
-
- public Container getContainer() {
- return this.myOrderedMap;
- }
- }
-