home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &… the Search for Life CD 3 / 0_CD-ROM.iso / install / jre1_3 / lib / rt.jar / javax / swing / tree / TreePath.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  2.8 KB  |  194 lines

  1. package javax.swing.tree;
  2.  
  3. import java.io.IOException;
  4. import java.io.ObjectInputStream;
  5. import java.io.ObjectOutputStream;
  6. import java.io.Serializable;
  7. import java.util.Vector;
  8.  
  9. public class TreePath implements Serializable {
  10.    private TreePath parentPath;
  11.    private transient Object lastPathComponent;
  12.  
  13.    public TreePath(Object[] var1) {
  14.       if (var1 != null && var1.length != 0) {
  15.          this.lastPathComponent = var1[var1.length - 1];
  16.          if (var1.length > 1) {
  17.             this.parentPath = new TreePath(var1, var1.length - 1);
  18.          }
  19.  
  20.       } else {
  21.          throw new IllegalArgumentException("path in TreePath must be non null and not empty.");
  22.       }
  23.    }
  24.  
  25.    public TreePath(Object var1) {
  26.       if (var1 == null) {
  27.          throw new IllegalArgumentException("path in TreePath must be non null.");
  28.       } else {
  29.          this.lastPathComponent = var1;
  30.          this.parentPath = null;
  31.       }
  32.    }
  33.  
  34.    protected TreePath(TreePath var1, Object var2) {
  35.       if (var2 == null) {
  36.          throw new IllegalArgumentException("path in TreePath must be non null.");
  37.       } else {
  38.          this.parentPath = var1;
  39.          this.lastPathComponent = var2;
  40.       }
  41.    }
  42.  
  43.    protected TreePath(Object[] var1, int var2) {
  44.       this.lastPathComponent = var1[var2 - 1];
  45.       if (var2 > 1) {
  46.          this.parentPath = new TreePath(var1, var2 - 1);
  47.       }
  48.  
  49.    }
  50.  
  51.    protected TreePath() {
  52.    }
  53.  
  54.    public Object[] getPath() {
  55.       int var1 = this.getPathCount();
  56.       Object[] var2 = new Object[var1--];
  57.  
  58.       for(TreePath var3 = this; var3 != null; var3 = var3.parentPath) {
  59.          var2[var1--] = var3.lastPathComponent;
  60.       }
  61.  
  62.       return var2;
  63.    }
  64.  
  65.    public Object getLastPathComponent() {
  66.       return this.lastPathComponent;
  67.    }
  68.  
  69.    public int getPathCount() {
  70.       int var1 = 0;
  71.  
  72.       for(TreePath var2 = this; var2 != null; var2 = var2.parentPath) {
  73.          ++var1;
  74.       }
  75.  
  76.       return var1;
  77.    }
  78.  
  79.    public Object getPathComponent(int var1) {
  80.       int var2 = this.getPathCount();
  81.       if (var1 >= 0 && var1 < var2) {
  82.          TreePath var3 = this;
  83.  
  84.          for(int var4 = var2 - 1; var4 != var1; --var4) {
  85.             var3 = var3.parentPath;
  86.          }
  87.  
  88.          return var3.lastPathComponent;
  89.       } else {
  90.          throw new IllegalArgumentException("Index " + var1 + " is out of the specified range");
  91.       }
  92.    }
  93.  
  94.    public boolean equals(Object var1) {
  95.       if (var1 == this) {
  96.          return true;
  97.       } else if (!(var1 instanceof TreePath)) {
  98.          return false;
  99.       } else {
  100.          TreePath var2 = (TreePath)var1;
  101.          if (this.getPathCount() != var2.getPathCount()) {
  102.             return false;
  103.          } else {
  104.             for(TreePath var3 = this; var3 != null; var3 = var3.parentPath) {
  105.                if (!var3.lastPathComponent.equals(var2.lastPathComponent)) {
  106.                   return false;
  107.                }
  108.  
  109.                var2 = var2.parentPath;
  110.             }
  111.  
  112.             return true;
  113.          }
  114.       }
  115.    }
  116.  
  117.    public int hashCode() {
  118.       return this.lastPathComponent.hashCode();
  119.    }
  120.  
  121.    public boolean isDescendant(TreePath var1) {
  122.       if (var1 == this) {
  123.          return true;
  124.       } else if (var1 == null) {
  125.          return false;
  126.       } else {
  127.          int var2 = this.getPathCount();
  128.          int var3 = var1.getPathCount();
  129.          if (var3 < var2) {
  130.             return false;
  131.          } else {
  132.             while(var3-- > var2) {
  133.                var1 = var1.getParentPath();
  134.             }
  135.  
  136.             return this.equals(var1);
  137.          }
  138.       }
  139.    }
  140.  
  141.    public TreePath pathByAddingChild(Object var1) {
  142.       if (var1 == null) {
  143.          throw new NullPointerException("Null child not allowed");
  144.       } else {
  145.          return new TreePath(this, var1);
  146.       }
  147.    }
  148.  
  149.    public TreePath getParentPath() {
  150.       return this.parentPath;
  151.    }
  152.  
  153.    public String toString() {
  154.       StringBuffer var1 = new StringBuffer("[");
  155.       int var2 = 0;
  156.  
  157.       for(int var3 = this.getPathCount(); var2 < var3; ++var2) {
  158.          if (var2 > 0) {
  159.             var1.append(", ");
  160.          }
  161.  
  162.          var1.append(this.getPathComponent(var2));
  163.       }
  164.  
  165.       var1.append("]");
  166.       return var1.toString();
  167.    }
  168.  
  169.    private void writeObject(ObjectOutputStream var1) throws IOException {
  170.       var1.defaultWriteObject();
  171.       Vector var2 = new Vector();
  172.       boolean var3 = true;
  173.       if (this.lastPathComponent != null && this.lastPathComponent instanceof Serializable) {
  174.          var2.addElement("lastPathComponent");
  175.          var2.addElement(this.lastPathComponent);
  176.       }
  177.  
  178.       var1.writeObject(var2);
  179.    }
  180.  
  181.    private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
  182.       var1.defaultReadObject();
  183.       Vector var2 = (Vector)var1.readObject();
  184.       int var3 = 0;
  185.       int var4 = var2.size();
  186.       if (var3 < var4 && var2.elementAt(var3).equals("lastPathComponent")) {
  187.          ++var3;
  188.          this.lastPathComponent = var2.elementAt(var3);
  189.          ++var3;
  190.       }
  191.  
  192.    }
  193. }
  194.