org.apache.bcel.classfile

Class Method

Implemented Interfaces:
Cloneable, Node, java.io.Serializable

public 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.
Version:
$Id: Method.java 386056 2006-03-15 11:31:56Z tcurdt $
Author:
M. Dahm
See Also:
Serialized Form

Field Summary

private static BCELComparator
_cmp

Fields inherited from class org.apache.bcel.classfile.FieldOrMethod

attributes, attributes_count, constant_pool, name_index, signature_index

Fields inherited from class org.apache.bcel.classfile.AccessFlags

access_flags

Constructor Summary

Method()
Empty constructor, all attributes have to be defined via `setXXX' methods.
Method(DataInputStream file, ConstantPool constant_pool)
Construct object from file stream.
Method(int access_flags, int name_index, int signature_index, Attribute[] attributes, ConstantPool constant_pool)
Method(Method c)
Initialize from another object.

Method Summary

void
accept(Visitor v)
Called by objects that are traversing the nodes of the tree implicitely defined by the contents of a Java class.
Method
copy(ConstantPool _constant_pool)
boolean
equals(Object obj)
Return value as defined by given BCELComparator strategy.
Type[]
getArgumentTypes()
Code
getCode()
static BCELComparator
getComparator()
ExceptionTable
getExceptionTable()
LineNumberTable
getLineNumberTable()
LocalVariableTable
getLocalVariableTable()
Type
getReturnType()
int
hashCode()
Return value as defined by given BCELComparator strategy.
static void
setComparator(BCELComparator comparator)
String
toString()
Return string representation close to declaration format, `public static void main(String[] args) throws IOException', e.g.

Methods inherited from class org.apache.bcel.classfile.FieldOrMethod

copy_, dump, getAttributes, getConstantPool, getName, getNameIndex, getSignature, getSignatureIndex, setAttributes, setConstantPool, setNameIndex, setSignatureIndex

Methods inherited from class org.apache.bcel.classfile.AccessFlags

getAccessFlags, getModifiers, isAbstract, isAbstract, isAnnotation, isAnnotation, isEnum, isEnum, isFinal, isFinal, isInterface, isInterface, isNative, isNative, isPrivate, isPrivate, isProtected, isProtected, isPublic, isPublic, isStatic, isStatic, isStrictfp, isStrictfp, isSynchronized, isSynchronized, isSynthetic, isSynthetic, isTransient, isTransient, isVolatile, isVolatile, setAccessFlags, setFlag, setModifiers

Field Details

_cmp

private static BCELComparator _cmp

Constructor Details

Method

public Method()
Empty constructor, all attributes have to be defined via `setXXX' methods. Use at your own risk.

Method

(package private)  Method(DataInputStream file,
                          ConstantPool constant_pool)
            throws IOException,
                   ClassFormatException
Construct object from file stream.
Parameters:
file - Input stream

Method

public Method(int access_flags,
              int name_index,
              int signature_index,
              Attribute[] attributes,
              ConstantPool constant_pool)
Parameters:
access_flags - Access rights of method
name_index - Points to field name in constant pool
signature_index - Points to encoded signature
attributes - Collection of attributes
constant_pool - Array of constants

Method

public Method(Method c)
Initialize from another object. Note that both objects use the same references (shallow copy). Use clone() for a physical copy.

Method Details

accept

public void accept(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.
Specified by:
accept in interface Node
Parameters:
v - Visitor object

copy

public final Method copy(ConstantPool _constant_pool)
Returns:
deep copy of this method

equals

public boolean equals(Object obj)
Return value as defined by given BCELComparator strategy. By default two method objects are said to be equal when their names and signatures are equal.
See Also:
java.lang.Object.equals(java.lang.Object)

getArgumentTypes

public Type[] getArgumentTypes()
Returns:
array of method argument types

getCode

public final Code getCode()
Returns:
Code attribute of method, if any

getComparator

public static BCELComparator getComparator()
Returns:
Comparison strategy object

getExceptionTable

public final ExceptionTable getExceptionTable()
Returns:
ExceptionTable attribute of method, if any, i.e., list all exceptions the method may throw not exception handlers!

getLineNumberTable

public final LineNumberTable getLineNumberTable()
Returns:
LineNumberTable of code attribute if any, i.e. the call is forwarded to the Code atribute.

getLocalVariableTable

public final LocalVariableTable getLocalVariableTable()
Returns:
LocalVariableTable of code attribute if any, i.e. the call is forwarded to the Code atribute.

getReturnType

public Type getReturnType()
Returns:
return type of method

hashCode

public int hashCode()
Return value as defined by given BCELComparator strategy. By default return the hashcode of the method's name XOR signature.
See Also:
java.lang.Object.hashCode()

setComparator

public static void setComparator(BCELComparator comparator)
Parameters:
comparator - Comparison strategy object

toString

public final String toString()
Return string representation close to declaration format, `public static void main(String[] args) throws IOException', e.g.
Returns:
String representation of the method.