home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / Extras / OSpace / jgl.exe / jgl_2_0 / COM / objectspace / jgl / OrderedMapIterator.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-03-12  |  2.9 KB  |  200 lines

  1. package COM.objectspace.jgl;
  2.  
  3. public final class OrderedMapIterator implements BidirectionalIterator {
  4.    public static final int PAIR = 1;
  5.    public static final int KEY = 2;
  6.    public static final int VALUE = 3;
  7.    OrderedMap myOrderedMap;
  8.    Tree myTree;
  9.    Tree.TreeNode myNode;
  10.    int myMode = 1;
  11.  
  12.    public OrderedMapIterator() {
  13.    }
  14.  
  15.    public OrderedMapIterator(OrderedMapIterator var1) {
  16.       this.myOrderedMap = var1.myOrderedMap;
  17.       this.myTree = var1.myTree;
  18.       this.myNode = var1.myNode;
  19.       this.myMode = var1.myMode;
  20.    }
  21.  
  22.    OrderedMapIterator(Tree var1, Tree.TreeNode var2, OrderedMap var3, int var4) {
  23.       this.myOrderedMap = var3;
  24.       this.myTree = var1;
  25.       this.myNode = var2;
  26.       this.myMode = var4;
  27.    }
  28.  
  29.    public Object clone() {
  30.       return new OrderedMapIterator(this);
  31.    }
  32.  
  33.    public boolean equals(Object var1) {
  34.       if (var1 instanceof OrderedMapIterator) {
  35.          OrderedMapIterator var2 = (OrderedMapIterator)var1;
  36.          if (this.myNode == var2.myNode || false) {
  37.             return true;
  38.          }
  39.       }
  40.  
  41.       return false;
  42.    }
  43.  
  44.    public boolean equals(OrderedMapIterator var1) {
  45.       return this.myNode == var1.myNode;
  46.    }
  47.  
  48.    public boolean atBegin() {
  49.       return this.myNode == this.myTree.myHeader.left;
  50.    }
  51.  
  52.    public boolean atEnd() {
  53.       return this.myNode == this.myTree.myHeader;
  54.    }
  55.  
  56.    public boolean hasMoreElements() {
  57.       return this.myNode != this.myTree.myHeader;
  58.    }
  59.  
  60.    public void advance() {
  61.       this.myNode = Tree.increment(this.myNode, this.myTree.NIL);
  62.    }
  63.  
  64.    public void advance(int var1) {
  65.       if (var1 >= 0) {
  66.          while(var1-- > 0) {
  67.             this.myNode = Tree.increment(this.myNode, this.myTree.NIL);
  68.          }
  69.  
  70.       } else {
  71.          while(var1++ < 0) {
  72.             this.myNode = Tree.decrement(this.myNode, this.myTree.NIL);
  73.          }
  74.  
  75.       }
  76.    }
  77.  
  78.    public void retreat() {
  79.       this.myNode = Tree.decrement(this.myNode, this.myTree.NIL);
  80.    }
  81.  
  82.    public void retreat(int var1) {
  83.       int var2 = -var1;
  84.       if (var2 >= 0) {
  85.          while(var2-- > 0) {
  86.             this.myNode = Tree.increment(this.myNode, this.myTree.NIL);
  87.          }
  88.  
  89.       } else {
  90.          while(var2++ < 0) {
  91.             this.myNode = Tree.decrement(this.myNode, this.myTree.NIL);
  92.          }
  93.  
  94.       }
  95.    }
  96.  
  97.    public Object nextElement() {
  98.       Object var1 = this.myNode.object;
  99.       this.myNode = Tree.increment(this.myNode, this.myTree.NIL);
  100.       switch (this.myMode) {
  101.          case 1:
  102.             return var1;
  103.          case 2:
  104.             return ((Pair)var1).first;
  105.          case 3:
  106.             return ((Pair)var1).second;
  107.          default:
  108.             return null;
  109.       }
  110.    }
  111.  
  112.    public Object get() {
  113.       switch (this.myMode) {
  114.          case 1:
  115.             return this.myNode.object;
  116.          case 2:
  117.             return ((Pair)this.myNode.object).first;
  118.          case 3:
  119.             return ((Pair)this.myNode.object).second;
  120.          default:
  121.             return null;
  122.       }
  123.    }
  124.  
  125.    public void put(Object var1) {
  126.       this.myNode.object = var1;
  127.    }
  128.  
  129.    public Object key() {
  130.       return ((Pair)this.myNode.object).first;
  131.    }
  132.  
  133.    public Object value() {
  134.       return ((Pair)this.myNode.object).second;
  135.    }
  136.  
  137.    public void value(Object var1) {
  138.       ((Pair)this.myNode.object).second = var1;
  139.    }
  140.  
  141.    public Object get(int var1) {
  142.       Tree.TreeNode var2 = this.myNode;
  143.       int var3 = var1;
  144.       if (var1 >= 0) {
  145.          while(var3-- > 0) {
  146.             this.myNode = Tree.increment(this.myNode, this.myTree.NIL);
  147.          }
  148.       } else {
  149.          while(var3++ < 0) {
  150.             this.myNode = Tree.decrement(this.myNode, this.myTree.NIL);
  151.          }
  152.       }
  153.  
  154.       Object var4 = this.get();
  155.       this.myNode = var2;
  156.       switch (this.myMode) {
  157.          case 1:
  158.             return var4;
  159.          case 2:
  160.             return ((Pair)var4).first;
  161.          case 3:
  162.             return ((Pair)var4).second;
  163.          default:
  164.             return null;
  165.       }
  166.    }
  167.  
  168.    public void put(int var1, Object var2) {
  169.       Tree.TreeNode var3 = this.myNode;
  170.       int var4 = var1;
  171.       if (var1 >= 0) {
  172.          while(var4-- > 0) {
  173.             this.myNode = Tree.increment(this.myNode, this.myTree.NIL);
  174.          }
  175.       } else {
  176.          while(var4++ < 0) {
  177.             this.myNode = Tree.decrement(this.myNode, this.myTree.NIL);
  178.          }
  179.       }
  180.  
  181.       this.myNode.object = var2;
  182.       this.myNode = var3;
  183.    }
  184.  
  185.    public int distance(ForwardIterator var1) {
  186.       Tree.TreeNode var2 = ((OrderedMapIterator)var1).myNode;
  187.  
  188.       int var3;
  189.       for(var3 = 0; var2 != this.myNode; var2 = Tree.decrement(var2, this.myTree.NIL)) {
  190.          ++var3;
  191.       }
  192.  
  193.       return var3;
  194.    }
  195.  
  196.    public Container getContainer() {
  197.       return this.myOrderedMap;
  198.    }
  199. }
  200.