home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / io / ObjectStreamField.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  2.8 KB  |  155 lines

  1. package java.io;
  2.  
  3. import java.lang.reflect.Field;
  4.  
  5. public class ObjectStreamField implements Comparable<Object> {
  6.    private final String name;
  7.    private final String signature;
  8.    private final Class type;
  9.    private final boolean unshared;
  10.    private final Field field;
  11.    private int offset;
  12.  
  13.    public ObjectStreamField(String var1, Class<?> var2) {
  14.       this(var1, var2, false);
  15.    }
  16.  
  17.    public ObjectStreamField(String var1, Class<?> var2, boolean var3) {
  18.       this.offset = 0;
  19.       if (var1 == null) {
  20.          throw new NullPointerException();
  21.       } else {
  22.          this.name = var1;
  23.          this.type = var2;
  24.          this.unshared = var3;
  25.          this.signature = ObjectStreamClass.getClassSignature(var2).intern();
  26.          this.field = null;
  27.       }
  28.    }
  29.  
  30.    ObjectStreamField(String var1, String var2, boolean var3) {
  31.       this.offset = 0;
  32.       if (var1 == null) {
  33.          throw new NullPointerException();
  34.       } else {
  35.          this.name = var1;
  36.          this.signature = var2.intern();
  37.          this.unshared = var3;
  38.          this.field = null;
  39.          switch (var2.charAt(0)) {
  40.             case 'B':
  41.                this.type = Byte.TYPE;
  42.                break;
  43.             case 'C':
  44.                this.type = Character.TYPE;
  45.                break;
  46.             case 'D':
  47.                this.type = Double.TYPE;
  48.                break;
  49.             case 'E':
  50.             case 'G':
  51.             case 'H':
  52.             case 'K':
  53.             case 'M':
  54.             case 'N':
  55.             case 'O':
  56.             case 'P':
  57.             case 'Q':
  58.             case 'R':
  59.             case 'T':
  60.             case 'U':
  61.             case 'V':
  62.             case 'W':
  63.             case 'X':
  64.             case 'Y':
  65.             default:
  66.                throw new IllegalArgumentException("illegal signature");
  67.             case 'F':
  68.                this.type = Float.TYPE;
  69.                break;
  70.             case 'I':
  71.                this.type = Integer.TYPE;
  72.                break;
  73.             case 'J':
  74.                this.type = Long.TYPE;
  75.                break;
  76.             case 'L':
  77.             case '[':
  78.                this.type = Object.class;
  79.                break;
  80.             case 'S':
  81.                this.type = Short.TYPE;
  82.                break;
  83.             case 'Z':
  84.                this.type = Boolean.TYPE;
  85.          }
  86.  
  87.       }
  88.    }
  89.  
  90.    ObjectStreamField(Field var1, boolean var2, boolean var3) {
  91.       this.offset = 0;
  92.       this.field = var1;
  93.       this.unshared = var2;
  94.       this.name = var1.getName();
  95.       Class var4 = var1.getType();
  96.       this.type = !var3 && !var4.isPrimitive() ? Object.class : var4;
  97.       this.signature = ObjectStreamClass.getClassSignature(var4).intern();
  98.    }
  99.  
  100.    public String getName() {
  101.       return this.name;
  102.    }
  103.  
  104.    public Class<?> getType() {
  105.       return this.type;
  106.    }
  107.  
  108.    public char getTypeCode() {
  109.       return this.signature.charAt(0);
  110.    }
  111.  
  112.    public String getTypeString() {
  113.       return this.isPrimitive() ? null : this.signature;
  114.    }
  115.  
  116.    public int getOffset() {
  117.       return this.offset;
  118.    }
  119.  
  120.    protected void setOffset(int var1) {
  121.       this.offset = var1;
  122.    }
  123.  
  124.    public boolean isPrimitive() {
  125.       char var1 = this.signature.charAt(0);
  126.       return var1 != 'L' && var1 != '[';
  127.    }
  128.  
  129.    public boolean isUnshared() {
  130.       return this.unshared;
  131.    }
  132.  
  133.    public int compareTo(Object var1) {
  134.       ObjectStreamField var2 = (ObjectStreamField)var1;
  135.       boolean var3 = this.isPrimitive();
  136.       if (var3 != var2.isPrimitive()) {
  137.          return var3 ? -1 : 1;
  138.       } else {
  139.          return this.name.compareTo(var2.name);
  140.       }
  141.    }
  142.  
  143.    public String toString() {
  144.       return this.signature + ' ' + this.name;
  145.    }
  146.  
  147.    Field getField() {
  148.       return this.field;
  149.    }
  150.  
  151.    String getSignature() {
  152.       return this.signature;
  153.    }
  154. }
  155.