org.apache.commons.javaflow.bytecode.transformation.bcel.analyser
Interface Subroutine


public interface Subroutine

This interface defines properties of JVM bytecode subroutines. Note that it is 'abused' to maintain the top-level code in a consistent fashion, too. WARNING! These classes are a fork of the bcel verifier.

Version:
$Id: Subroutine.java 480487 2006-11-29 08:54:42Z bayard $
Author:
Enver Haase

Method Summary
 boolean contains(org.apache.bcel.generic.InstructionHandle inst)
          Returns if the given InstructionHandle refers to an instruction that is part of this subroutine.
 int[] getAccessedLocalsIndices()
          Returns an int[] containing the indices of the local variable slots accessed by this Subroutine (read-accessed, write-accessed or both); local variables referenced by subroutines of this subroutine are not included.
 org.apache.bcel.generic.InstructionHandle[] getEnteringJsrInstructions()
          Returns all the JsrInstructions that have the first instruction of this subroutine as their target.
 org.apache.bcel.generic.InstructionHandle[] getInstructions()
          Returns all instructions that together form this subroutine.
 org.apache.bcel.generic.InstructionHandle getLeavingRET()
          Returns the one and only RET that leaves the subroutine.
 int[] getRecursivelyAccessedLocalsIndices()
          Returns an int[] containing the indices of the local variable slots accessed by this Subroutine (read-accessed, write-accessed or both); local variables referenced by subroutines of this subroutine are included.
 Subroutine[] subSubs()
          Returns the subroutines that are directly called from this subroutine.
 

Method Detail

getEnteringJsrInstructions

org.apache.bcel.generic.InstructionHandle[] getEnteringJsrInstructions()
Returns all the JsrInstructions that have the first instruction of this subroutine as their target. Must not be invoked on the 'top-level subroutine'.


getLeavingRET

org.apache.bcel.generic.InstructionHandle getLeavingRET()
Returns the one and only RET that leaves the subroutine. Note that JustIce has a pretty rigid notion of a subroutine. Must not be invoked on the 'top-level subroutine'.

See Also:
org.apache.bcel.verifier.structurals.Subroutines

getInstructions

org.apache.bcel.generic.InstructionHandle[] getInstructions()
Returns all instructions that together form this subroutine. Note that an instruction is part of exactly one subroutine (the top-level code is considered to be a special subroutine) - else it is not reachable at all (dead code).


contains

boolean contains(org.apache.bcel.generic.InstructionHandle inst)
Returns if the given InstructionHandle refers to an instruction that is part of this subroutine. This is a convenience method that saves iteration over the InstructionHandle objects returned by getInstructions().

See Also:
getInstructions()

getAccessedLocalsIndices

int[] getAccessedLocalsIndices()
Returns an int[] containing the indices of the local variable slots accessed by this Subroutine (read-accessed, write-accessed or both); local variables referenced by subroutines of this subroutine are not included.

See Also:
getRecursivelyAccessedLocalsIndices()

getRecursivelyAccessedLocalsIndices

int[] getRecursivelyAccessedLocalsIndices()
Returns an int[] containing the indices of the local variable slots accessed by this Subroutine (read-accessed, write-accessed or both); local variables referenced by subroutines of this subroutine are included.

See Also:
getAccessedLocalsIndices()

subSubs

Subroutine[] subSubs()
Returns the subroutines that are directly called from this subroutine.



Copyright 2004-2008 The Apache Software Foundation. All Rights Reserved.