home *** CD-ROM | disk | FTP | other *** search
- package com.sfs.hardcore;
-
- import java.io.DataInputStream;
- import java.io.DataOutputStream;
- import java.io.IOException;
-
- public class MethodInfo {
- short accessFlags;
- ConstantPoolInfo name;
- ConstantPoolInfo signature;
- AttributeInfo[] attributes;
-
- public String toString(String var1) {
- StringBuffer var2 = new StringBuffer();
- StringBuffer var5 = new StringBuffer();
- char var6 = 'a';
- StringBuffer var7 = new StringBuffer();
- String var8 = this.signature.strValue;
- String var3 = var8.substring(var8.indexOf(40) + 1, var8.indexOf(41));
- String var4 = var8.substring(var8.indexOf(41) + 1);
- var2.append(ClassFile.accessString(this.accessFlags));
- if (var1 != null && this.name.toString().startsWith("<init>")) {
- var5.append(var1);
- } else {
- var5.append(this.name.toString());
- }
-
- var5.append("(");
- if (var3.length() > 0 && var3.charAt(0) != 'V') {
- while(var3.length() > 0) {
- var7.setLength(0);
- var7.append(var6);
- ++var6;
- var5.append(ClassFile.typeString(var3, var7.toString()));
- var3 = ClassFile.nextSig(var3);
- if (var3.length() > 0) {
- var5.append(", ");
- }
- }
- }
-
- var5.append(")");
- var2.append(ClassFile.typeString(var4, var5.toString()));
- var2.append(";");
- return var2.toString();
- }
-
- public String toString() {
- return this.toString((String)null);
- }
-
- public boolean read(DataInputStream var1, ConstantPoolInfo[] var2) throws IOException {
- this.accessFlags = var1.readShort();
- this.name = var2[var1.readShort()];
- this.signature = var2[var1.readShort()];
- short var3 = var1.readShort();
- if (var3 != 0) {
- this.attributes = new AttributeInfo[var3];
-
- for(int var4 = 0; var4 < var3; ++var4) {
- this.attributes[var4] = new AttributeInfo();
- if (!this.attributes[var4].read(var1, var2)) {
- return false;
- }
- }
- }
-
- return true;
- }
-
- public void write(DataOutputStream var1, ConstantPoolInfo[] var2) throws IOException, Exception {
- var1.writeShort(this.accessFlags);
- var1.writeShort(ConstantPoolInfo.indexOf(this.name, var2));
- var1.writeShort(ConstantPoolInfo.indexOf(this.signature, var2));
- if (this.attributes == null) {
- var1.writeShort(0);
- } else {
- var1.writeShort(this.attributes.length);
-
- for(int var3 = 0; var3 < this.attributes.length; ++var3) {
- this.attributes[var3].write(var1, var2);
- }
-
- }
- }
- }
-