home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 October / PCO1097.ISO / FilesBBS / WIN95 / IAVAZIP.EXE / DATA.Z / MethodInfo.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-08-18  |  2.2 KB  |  87 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 MethodInfo {
  8.    short accessFlags;
  9.    ConstantPoolInfo name;
  10.    ConstantPoolInfo signature;
  11.    AttributeInfo[] attributes;
  12.  
  13.    public String toString(String var1) {
  14.       StringBuffer var2 = new StringBuffer();
  15.       StringBuffer var5 = new StringBuffer();
  16.       char var6 = 'a';
  17.       StringBuffer var7 = new StringBuffer();
  18.       String var8 = this.signature.strValue;
  19.       String var3 = var8.substring(var8.indexOf(40) + 1, var8.indexOf(41));
  20.       String var4 = var8.substring(var8.indexOf(41) + 1);
  21.       var2.append(ClassFile.accessString(this.accessFlags));
  22.       if (var1 != null && this.name.toString().startsWith("<init>")) {
  23.          var5.append(var1);
  24.       } else {
  25.          var5.append(this.name.toString());
  26.       }
  27.  
  28.       var5.append("(");
  29.       if (var3.length() > 0 && var3.charAt(0) != 'V') {
  30.          while(var3.length() > 0) {
  31.             var7.setLength(0);
  32.             var7.append(var6);
  33.             ++var6;
  34.             var5.append(ClassFile.typeString(var3, var7.toString()));
  35.             var3 = ClassFile.nextSig(var3);
  36.             if (var3.length() > 0) {
  37.                var5.append(", ");
  38.             }
  39.          }
  40.       }
  41.  
  42.       var5.append(")");
  43.       var2.append(ClassFile.typeString(var4, var5.toString()));
  44.       var2.append(";");
  45.       return var2.toString();
  46.    }
  47.  
  48.    public String toString() {
  49.       return this.toString((String)null);
  50.    }
  51.  
  52.    public boolean read(DataInputStream var1, ConstantPoolInfo[] var2) throws IOException {
  53.       this.accessFlags = var1.readShort();
  54.       this.name = var2[var1.readShort()];
  55.       this.signature = var2[var1.readShort()];
  56.       short var3 = var1.readShort();
  57.       if (var3 != 0) {
  58.          this.attributes = new AttributeInfo[var3];
  59.  
  60.          for(int var4 = 0; var4 < var3; ++var4) {
  61.             this.attributes[var4] = new AttributeInfo();
  62.             if (!this.attributes[var4].read(var1, var2)) {
  63.                return false;
  64.             }
  65.          }
  66.       }
  67.  
  68.       return true;
  69.    }
  70.  
  71.    public void write(DataOutputStream var1, ConstantPoolInfo[] var2) throws IOException, Exception {
  72.       var1.writeShort(this.accessFlags);
  73.       var1.writeShort(ConstantPoolInfo.indexOf(this.name, var2));
  74.       var1.writeShort(ConstantPoolInfo.indexOf(this.signature, var2));
  75.       if (this.attributes == null) {
  76.          var1.writeShort(0);
  77.       } else {
  78.          var1.writeShort(this.attributes.length);
  79.  
  80.          for(int var3 = 0; var3 < this.attributes.length; ++var3) {
  81.             this.attributes[var3].write(var1, var2);
  82.          }
  83.  
  84.       }
  85.    }
  86. }
  87.