home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / java / rmi / MarshalledObject.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  1.5 KB  |  77 lines

  1. package java.rmi;
  2.  
  3. import java.io.ByteArrayInputStream;
  4. import java.io.ByteArrayOutputStream;
  5. import java.io.IOException;
  6. import java.io.ObjectInputStream;
  7. import java.io.ObjectOutputStream;
  8. import java.io.Serializable;
  9.  
  10. public final class MarshalledObject implements Serializable {
  11.    private byte[] objBytes = null;
  12.    private byte[] locBytes = null;
  13.    private int hash;
  14.    private static final long serialVersionUID = 8988374069173025854L;
  15.  
  16.    public MarshalledObject(Object var1) throws IOException {
  17.       if (var1 == null) {
  18.          this.hash = 13;
  19.       } else {
  20.          ByteArrayOutputStream var2 = new ByteArrayOutputStream();
  21.          ByteArrayOutputStream var3 = new ByteArrayOutputStream();
  22.          MarshalledObjectOutputStream var4 = new MarshalledObjectOutputStream(var2, var3);
  23.          ((ObjectOutputStream)var4).writeObject(var1);
  24.          var4.flush();
  25.          this.objBytes = var2.toByteArray();
  26.          this.locBytes = var4.hadAnnotations() ? var3.toByteArray() : null;
  27.          int var5 = 0;
  28.  
  29.          for(int var6 = 0; var6 < this.objBytes.length; ++var6) {
  30.             var5 = 31 * var5 + this.objBytes[var6];
  31.          }
  32.  
  33.          this.hash = var5;
  34.       }
  35.    }
  36.  
  37.    public Object get() throws IOException, ClassNotFoundException {
  38.       if (this.objBytes == null) {
  39.          return null;
  40.       } else {
  41.          ByteArrayInputStream var1 = new ByteArrayInputStream(this.objBytes);
  42.          ByteArrayInputStream var2 = this.locBytes == null ? null : new ByteArrayInputStream(this.locBytes);
  43.          MarshalledObjectInputStream var3 = new MarshalledObjectInputStream(var1, var2);
  44.          return ((ObjectInputStream)var3).readObject();
  45.       }
  46.    }
  47.  
  48.    public int hashCode() {
  49.       return this.hash;
  50.    }
  51.  
  52.    public boolean equals(Object var1) {
  53.       if (var1 == this) {
  54.          return true;
  55.       } else if (var1 != null && var1 instanceof MarshalledObject) {
  56.          MarshalledObject var2 = (MarshalledObject)var1;
  57.          if (this.objBytes != null && var2.objBytes != null) {
  58.             if (this.objBytes.length != var2.objBytes.length) {
  59.                return false;
  60.             } else {
  61.                for(int var3 = 0; var3 < this.objBytes.length; ++var3) {
  62.                   if (this.objBytes[var3] != var2.objBytes[var3]) {
  63.                      return false;
  64.                   }
  65.                }
  66.  
  67.                return true;
  68.             }
  69.          } else {
  70.             return this.objBytes == var2.objBytes;
  71.          }
  72.       } else {
  73.          return false;
  74.       }
  75.    }
  76. }
  77.