home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 March / pcp161a.iso / handson / files / copyjava.exe / com / sun / java / swing / tree / TreePath.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-02-26  |  2.8 KB  |  151 lines

  1. package com.sun.java.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.    protected transient Object[] path;
  11.  
  12.    public TreePath(Object[] var1) {
  13.       if (var1 == null) {
  14.          throw new IllegalArgumentException("path in TreePath must be non null.");
  15.       } else {
  16.          this.path = var1;
  17.       }
  18.    }
  19.  
  20.    public TreePath(Object var1) {
  21.       if (var1 == null) {
  22.          throw new IllegalArgumentException("path in TreePath must be non null.");
  23.       } else {
  24.          this.path = new Object[1];
  25.          this.path[0] = var1;
  26.       }
  27.    }
  28.  
  29.    public Object[] getPath() {
  30.       int var1 = this.path.length;
  31.       Object[] var2 = new Object[var1];
  32.       System.arraycopy(this.path, 0, var2, 0, var1);
  33.       return var2;
  34.    }
  35.  
  36.    public Object getLastPathComponent() {
  37.       return this.path.length > 0 ? this.path[this.path.length - 1] : null;
  38.    }
  39.  
  40.    public int getPathCount() {
  41.       return this.path.length;
  42.    }
  43.  
  44.    public Object getPathComponent(int var1) {
  45.       if (var1 >= 0 && var1 < this.getPathCount()) {
  46.          return this.path[var1];
  47.       } else {
  48.          throw new IllegalArgumentException("Index " + var1 + " is greater than path length");
  49.       }
  50.    }
  51.  
  52.    public boolean equals(Object var1) {
  53.       if (!(var1 instanceof TreePath)) {
  54.          return false;
  55.       } else {
  56.          TreePath var2 = (TreePath)var1;
  57.          Object[] var3 = var2.path;
  58.          if ((var3 == null || this.path != null) && (var3 != null || this.path == null)) {
  59.             if (this.path != null) {
  60.                int var4 = this.path.length;
  61.                if (var4 != var3.length) {
  62.                   return false;
  63.                }
  64.  
  65.                for(int var5 = 0; var5 < var4; ++var5) {
  66.                   if (!this.path[var5].equals(var3[var5])) {
  67.                      return false;
  68.                   }
  69.                }
  70.             }
  71.  
  72.             return true;
  73.          } else {
  74.             return false;
  75.          }
  76.       }
  77.    }
  78.  
  79.    public int hashCode() {
  80.       return super.hashCode();
  81.    }
  82.  
  83.    public boolean isDescendant(TreePath var1) {
  84.       if (this.path != null) {
  85.          Object[] var2 = var1.getPath();
  86.          int var3 = this.path.length;
  87.          if (var2.length >= var3 && var3 > 0) {
  88.             for(int var4 = 0; var4 < var3; ++var4) {
  89.                if (!this.path[var4].equals(var2[var4])) {
  90.                   return false;
  91.                }
  92.             }
  93.  
  94.             return true;
  95.          }
  96.       }
  97.  
  98.       return false;
  99.    }
  100.  
  101.    public String toString() {
  102.       StringBuffer var1 = new StringBuffer("[");
  103.  
  104.       for(int var2 = 0; var2 < this.path.length; ++var2) {
  105.          if (var2 > 0) {
  106.             var1.append(", ");
  107.          }
  108.  
  109.          var1.append(this.path[var2]);
  110.       }
  111.  
  112.       var1.append("]");
  113.       return var1.toString();
  114.    }
  115.  
  116.    private void writeObject(ObjectOutputStream var1) throws IOException {
  117.       var1.defaultWriteObject();
  118.       Vector var2 = new Vector();
  119.       boolean var3 = true;
  120.       int var4 = 0;
  121.  
  122.       for(int var5 = this.path.length; var4 < var5; ++var4) {
  123.          if (!(this.path[var4] instanceof Serializable)) {
  124.             var3 = false;
  125.             break;
  126.          }
  127.       }
  128.  
  129.       if (var3) {
  130.          var2.addElement("path");
  131.          var2.addElement(this.path);
  132.       }
  133.  
  134.       var1.writeObject(var2);
  135.    }
  136.  
  137.    private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
  138.       var1.defaultReadObject();
  139.       Vector var2 = (Vector)var1.readObject();
  140.       int var3 = 0;
  141.       int var4 = var2.size();
  142.       if (var3 < var4 && var2.elementAt(var3).equals("path")) {
  143.          ++var3;
  144.          this.path = var2.elementAt(var3);
  145.          ++var3;
  146.       } else {
  147.          this.path = new Object[0];
  148.       }
  149.    }
  150. }
  151.