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 / io / ObjectInputStream$GetFieldImpl.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  3.7 KB  |  164 lines

  1. package java.io;
  2.  
  3. final class ObjectInputStream$GetFieldImpl extends ObjectInputStream.GetField {
  4.    private byte[] data;
  5.    private Object[] objects;
  6.    private ObjectStreamClass desc;
  7.    // $FF: synthetic field
  8.    static Class class$java$lang$Object;
  9.  
  10.    public ObjectStreamClass getObjectStreamClass() {
  11.       return this.desc;
  12.    }
  13.  
  14.    public boolean defaulted(String var1) throws IOException, IllegalArgumentException {
  15.       ObjectStreamField var2 = this.checkField(var1, (Class)null);
  16.       return var2 == null;
  17.    }
  18.  
  19.    public boolean get(String var1, boolean var2) throws IOException, IllegalArgumentException {
  20.       ObjectStreamField var3 = this.checkField(var1, Boolean.TYPE);
  21.       if (var3 == null) {
  22.          return var2;
  23.       } else {
  24.          return this.data[var3.getOffset()] != 0;
  25.       }
  26.    }
  27.  
  28.    public char get(String var1, char var2) throws IOException, IllegalArgumentException {
  29.       ObjectStreamField var3 = this.checkField(var1, Character.TYPE);
  30.       if (var3 == null) {
  31.          return var2;
  32.       } else {
  33.          int var4 = var3.getOffset();
  34.          return (char)(((this.data[var4] & 255) << 8) + (this.data[var4 + 1] & 255));
  35.       }
  36.    }
  37.  
  38.    public byte get(String var1, byte var2) throws IOException, IllegalArgumentException {
  39.       ObjectStreamField var3 = this.checkField(var1, Byte.TYPE);
  40.       return var3 == null ? var2 : this.data[var3.getOffset()];
  41.    }
  42.  
  43.    public short get(String var1, short var2) throws IOException, IllegalArgumentException {
  44.       ObjectStreamField var3 = this.checkField(var1, Short.TYPE);
  45.       if (var3 == null) {
  46.          return var2;
  47.       } else {
  48.          int var4 = var3.getOffset();
  49.          return (short)(((this.data[var4] & 255) << 8) + (this.data[var4 + 1] & 255));
  50.       }
  51.    }
  52.  
  53.    public int get(String var1, int var2) throws IOException, IllegalArgumentException {
  54.       ObjectStreamField var3 = this.checkField(var1, Integer.TYPE);
  55.       if (var3 == null) {
  56.          return var2;
  57.       } else {
  58.          int var4 = var3.getOffset();
  59.          return ((this.data[var4] & 255) << 24) + ((this.data[var4 + 1] & 255) << 16) + ((this.data[var4 + 2] & 255) << 8) + (this.data[var4 + 3] & 255);
  60.       }
  61.    }
  62.  
  63.    public long get(String var1, long var2) throws IOException, IllegalArgumentException {
  64.       ObjectStreamField var4 = this.checkField(var1, Long.TYPE);
  65.       if (var4 == null) {
  66.          return var2;
  67.       } else {
  68.          int var5 = var4.getOffset();
  69.          int var6 = ((this.data[var5] & 255) << 24) + ((this.data[var5 + 1] & 255) << 16) + ((this.data[var5 + 2] & 255) << 8) + (this.data[var5 + 3] & 255);
  70.          int var7 = ((this.data[var5 + 4] & 255) << 24) + ((this.data[var5 + 5] & 255) << 16) + ((this.data[var5 + 6] & 255) << 8) + (this.data[var5 + 7] & 255);
  71.          long var8 = ((long)var6 << 32) + ((long)var7 & 4294967295L);
  72.          return var8;
  73.       }
  74.    }
  75.  
  76.    public float get(String var1, float var2) throws IOException, IllegalArgumentException {
  77.       ObjectStreamField var3 = this.checkField(var1, Float.TYPE);
  78.       if (var3 == null) {
  79.          return var2;
  80.       } else {
  81.          int var4 = var3.getOffset();
  82.          int var5 = ((this.data[var4] & 255) << 24) + ((this.data[var4 + 1] & 255) << 16) + ((this.data[var4 + 2] & 255) << 8) + (this.data[var4 + 3] & 255);
  83.          return Float.intBitsToFloat(var5);
  84.       }
  85.    }
  86.  
  87.    public double get(String var1, double var2) throws IOException, IllegalArgumentException {
  88.       ObjectStreamField var4 = this.checkField(var1, Double.TYPE);
  89.       if (var4 == null) {
  90.          return var2;
  91.       } else {
  92.          int var5 = var4.getOffset();
  93.          int var6 = ((this.data[var5] & 255) << 24) + ((this.data[var5 + 1] & 255) << 16) + ((this.data[var5 + 2] & 255) << 8) + (this.data[var5 + 3] & 255);
  94.          int var7 = ((this.data[var5 + 4] & 255) << 24) + ((this.data[var5 + 5] & 255) << 16) + ((this.data[var5 + 6] & 255) << 8) + (this.data[var5 + 7] & 255);
  95.          long var8 = ((long)var6 << 32) + ((long)var7 & 4294967295L);
  96.          return Double.longBitsToDouble(var8);
  97.       }
  98.    }
  99.  
  100.    public Object get(String var1, Object var2) throws IOException, IllegalArgumentException {
  101.       ObjectStreamField var3 = this.checkField(var1, class$java$lang$Object == null ? (class$java$lang$Object = class$("java.lang.Object")) : class$java$lang$Object);
  102.       return var3 == null ? var2 : this.objects[var3.getOffset()];
  103.    }
  104.  
  105.    private ObjectStreamField checkField(String var1, Class var2) throws IllegalArgumentException {
  106.       ObjectStreamField var3 = var2 == null ? this.desc.getField(var1) : this.desc.getField(var1, var2);
  107.       if (var3 != null) {
  108.          if (var2 != null && var2 != var3.getType()) {
  109.             throw new IllegalArgumentException("field type incorrect");
  110.          } else {
  111.             return var3;
  112.          }
  113.       } else {
  114.          ObjectStreamClass var4 = this.desc.localClassDescriptor();
  115.          if (var4 == null) {
  116.             throw new IllegalArgumentException("No local class descriptor");
  117.          } else {
  118.             ObjectStreamField var5 = var2 == null ? var4.getField(var1) : var4.getField(var1, var2);
  119.             if (var5 == null) {
  120.                throw new IllegalArgumentException("no such field");
  121.             } else if (var2 == null || var2 == var5.getType() || !var2.isPrimitive() && !var5.getType().isPrimitive()) {
  122.                return null;
  123.             } else {
  124.                throw new IllegalArgumentException("field type incorrect");
  125.             }
  126.          }
  127.       }
  128.    }
  129.  
  130.    void read(ObjectInputStream var1) throws IOException, ClassNotFoundException {
  131.       if (this.data != null) {
  132.          var1.readFully(this.data, 0, this.data.length);
  133.       }
  134.  
  135.       if (this.objects != null) {
  136.          for(int var2 = 0; var2 < this.objects.length; ++var2) {
  137.             this.objects[var2] = ObjectInputStream.access$000(var1, false);
  138.          }
  139.       }
  140.  
  141.    }
  142.  
  143.    ObjectInputStream$GetFieldImpl(ObjectStreamClass var1) {
  144.       this.desc = var1;
  145.       if (this.desc.numPrimBytes > 0) {
  146.          this.data = new byte[this.desc.numPrimBytes];
  147.       }
  148.  
  149.       if (this.desc.numObjFields > 0) {
  150.          this.objects = new Object[this.desc.numObjFields];
  151.       }
  152.  
  153.    }
  154.  
  155.    // $FF: synthetic method
  156.    static Class class$(String var0) {
  157.       try {
  158.          return Class.forName(var0);
  159.       } catch (ClassNotFoundException var2) {
  160.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  161.       }
  162.    }
  163. }
  164.