Methodpublic final class Method extends FieldOrMethod This class represents the method info structure, i.e., the representation
for a method in the class. See JVM specification for details.
A method has access flags, a name, a signature and a number of attributes. |
Constructors Summary |
---|
public Method()Empty constructor, all attributes have to be defined via `setXXX'
methods. Use at your own risk.
| public Method(Method c)Initialize from another object. Note that both objects use the same
references (shallow copy). Use clone() for a physical copy.
super(c);
| Method(DataInputStream file, ConstantPool constant_pool)Construct object from file stream.
super(file, constant_pool);
| public Method(int access_flags, int name_index, int signature_index, Attribute[] attributes, ConstantPool constant_pool)
super(access_flags, name_index, signature_index, attributes, constant_pool);
|
Methods Summary |
---|
public void | accept(com.sun.org.apache.bcel.internal.classfile.Visitor v)Called by objects that are traversing the nodes of the tree implicitely
defined by the contents of a Java class. I.e., the hierarchy of methods,
fields, attributes, etc. spawns a tree of objects.
v.visitMethod(this);
| public final com.sun.org.apache.bcel.internal.classfile.Method | copy(com.sun.org.apache.bcel.internal.classfile.ConstantPool constant_pool)
return (Method)copy_(constant_pool);
| public final com.sun.org.apache.bcel.internal.classfile.Code | getCode()
for(int i=0; i < attributes_count; i++)
if(attributes[i] instanceof Code)
return (Code)attributes[i];
return null;
| public final com.sun.org.apache.bcel.internal.classfile.ExceptionTable | getExceptionTable()
for(int i=0; i < attributes_count; i++)
if(attributes[i] instanceof ExceptionTable)
return (ExceptionTable)attributes[i];
return null;
| public final com.sun.org.apache.bcel.internal.classfile.LineNumberTable | getLineNumberTable()
Code code = getCode();
if(code != null)
return code.getLineNumberTable();
else
return null;
| public final com.sun.org.apache.bcel.internal.classfile.LocalVariableTable | getLocalVariableTable()
Code code = getCode();
if(code != null)
return code.getLocalVariableTable();
else
return null;
| public final java.lang.String | toString()Return string representation close to declaration format,
`public static void main(String[] args) throws IOException', e.g.
ConstantUtf8 c;
ConstantValue cv;
String name, signature, access; // Short cuts to constant pool
String exceptions;
StringBuffer buf;
Attribute[] attr;
access = Utility.accessToString(access_flags);
// Get name and signature from constant pool
c = (ConstantUtf8)constant_pool.getConstant(signature_index,
Constants.CONSTANT_Utf8);
signature = c.getBytes();
c = (ConstantUtf8)constant_pool.getConstant(name_index, Constants.CONSTANT_Utf8);
name = c.getBytes();
signature = Utility.methodSignatureToString(signature, name, access, true,
getLocalVariableTable());
buf = new StringBuffer(signature);
for(int i=0; i < attributes_count; i++) {
Attribute a = attributes[i];
if(!((a instanceof Code) || (a instanceof ExceptionTable)))
buf.append(" [" + a.toString() + "]");
}
ExceptionTable e = getExceptionTable();
if(e != null) {
String str = e.toString();
if(!str.equals(""))
buf.append("\n\t\tthrows " + str);
}
return buf.toString();
|
|