de.fub.bytecode.classfile
Class Method

java.lang.Object
  |
  +--de.fub.bytecode.classfile.AccessFlags
        |
        +--de.fub.bytecode.classfile.FieldOrMethod
              |
              +--de.fub.bytecode.classfile.Method
All Implemented Interfaces:
java.lang.Cloneable, Node

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,v 1.5 2001/07/25 10:24:34 dahm Exp $
Author:
M. Dahm

Fields inherited from class de.fub.bytecode.classfile.FieldOrMethod
attributes, attributes_count, constant_pool, name_index, signature_index
 
Fields inherited from class de.fub.bytecode.classfile.AccessFlags
access_flags
 
Constructor Summary
Method()
          Empty constructor, all attributes have to be defined via `setXXX' methods.
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)
           
 Code getCode()
           
 ExceptionTable getExceptionTable()
           
 LineNumberTable getLineNumberTable()
           
 LocalVariableTable getLocalVariableTable()
           
 java.lang.String toString()
          Return string representation close to declaration format, `public static void main(String[] args) throws IOException', e.g.
 
Methods inherited from class de.fub.bytecode.classfile.FieldOrMethod
copy_, dump, getAttributes, getConstantPool, getName, getNameIndex, getSignature, getSignatureIndex, setAttributes, setConstantPool, setNameIndex, setSignatureIndex
 
Methods inherited from class de.fub.bytecode.classfile.AccessFlags
getAccessFlags, isAbstract, isAbstract, isFinal, isFinal, isInterface, isInterface, isNative, isNative, isPrivate, isPrivate, isProtected, isProtected, isPublic, isPublic, isStatic, isStatic, isStrictfp, isStrictfp, isSynchronized, isSynchronized, isTransient, isTransient, isVolatile, isVolatile, setAccessFlags
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Method

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

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

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 Detail

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.
Parameters:
v - Visitor object

getCode

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

getExceptionTable

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

getLocalVariableTable

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

getLineNumberTable

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

toString

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

copy

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