Class Method

  • All Implemented Interfaces:
    java.io.Serializable, 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 386056 2006-03-15 11:31:56Z tcurdt $
    Author:
    M. Dahm
    See Also:
    Serialized Form
    • 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
      • getReturnType

        public Type getReturnType()
        Returns:
        return type of method
      • getArgumentTypes

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

        public static BCELComparator getComparator()
        Returns:
        Comparison strategy object
      • setComparator

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

        public boolean equals​(java.lang.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.
        Overrides:
        equals in class java.lang.Object
        See Also:
        Object.equals(java.lang.Object)
      • hashCode

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