home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 October / PCO1097.ISO / FilesBBS / WIN95 / IAVAZIP.EXE / DATA.Z / FieldInfo.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-08-18  |  1.9 KB  |  75 lines

  1. package com.sfs.hardcore;
  2.  
  3. import java.io.DataInputStream;
  4. import java.io.DataOutputStream;
  5. import java.io.IOException;
  6.  
  7. public class FieldInfo {
  8.    short accessFlags;
  9.    ConstantPoolInfo name;
  10.    ConstantPoolInfo signature;
  11.    AttributeInfo[] attributes;
  12.  
  13.    public String toString() {
  14.       StringBuffer var1 = new StringBuffer();
  15.       var1.append(ClassFile.accessString(this.accessFlags));
  16.       var1.append(ClassFile.typeString(this.signature.toString(), this.name.toString()));
  17.       if (this.attributes != null) {
  18.          var1.append(" = " + this.attributes[0].toString());
  19.       }
  20.  
  21.       return var1.toString();
  22.    }
  23.  
  24.    public String toString(ConstantPoolInfo[] var1) {
  25.       StringBuffer var2 = new StringBuffer();
  26.       var2.append(ClassFile.accessString(this.accessFlags));
  27.       String var3 = ClassFile.typeString(this.signature.toString(), this.name.toString());
  28.       var2.append(var3);
  29.       if (this.attributes != null) {
  30.          if (var3.startsWith("boolean")) {
  31.             var2.append(" " + this.attributes[0].toBoolean(var1));
  32.          } else {
  33.             var2.append(" " + this.attributes[0].toString(var1));
  34.          }
  35.       }
  36.  
  37.       return var2.toString();
  38.    }
  39.  
  40.    public boolean read(DataInputStream var1, ConstantPoolInfo[] var2) throws IOException {
  41.       this.accessFlags = var1.readShort();
  42.       this.name = var2[var1.readShort()];
  43.       this.signature = var2[var1.readShort()];
  44.       short var3 = var1.readShort();
  45.       if (var3 != 0) {
  46.          this.attributes = new AttributeInfo[var3];
  47.  
  48.          for(int var4 = 0; var4 < var3; ++var4) {
  49.             this.attributes[var4] = new AttributeInfo();
  50.             if (!this.attributes[var4].read(var1, var2)) {
  51.                return false;
  52.             }
  53.          }
  54.       }
  55.  
  56.       return true;
  57.    }
  58.  
  59.    public void write(DataOutputStream var1, ConstantPoolInfo[] var2) throws IOException, Exception {
  60.       var1.writeShort(this.accessFlags);
  61.       var1.writeShort(ConstantPoolInfo.indexOf(this.name, var2));
  62.       var1.writeShort(ConstantPoolInfo.indexOf(this.signature, var2));
  63.       if (this.attributes == null) {
  64.          var1.writeShort(0);
  65.       } else {
  66.          var1.writeShort(this.attributes.length);
  67.  
  68.          for(int var3 = 0; var3 < this.attributes.length; ++var3) {
  69.             this.attributes[var3].write(var1, var2);
  70.          }
  71.  
  72.       }
  73.    }
  74. }
  75.