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


public interface InstructionContext

An InstructionContext offers convenient access to information like control flow successors and such.

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

Method Summary
 boolean execute(Frame inFrame, ExecutionPath executionPredecessors, ExecutionVisitor ev)
          This method symbolically executes the Instruction held in the InstructionContext.
 ExceptionHandler[] getExceptionHandlers()
          Returns the exception handlers that protect this instruction.
 Frame getInFrame()
           
 org.apache.bcel.generic.InstructionHandle getInstruction()
          Returns the InstructionHandle this InstructionContext is wrapped around.
 Frame getOutFrame(ExecutionPath executionPredecessors)
          This method returns the outgoing execution frame situation; therefore it has to be calculated by execute(Frame, ArrayList) first.
 InstructionContext[] getSuccessors()
          Returns the usual control flow successors.
 

Method Detail

execute

boolean execute(Frame inFrame,
                ExecutionPath executionPredecessors,
                ExecutionVisitor ev)
This method symbolically executes the Instruction held in the InstructionContext. It "merges in" the incoming execution frame situation (see The Java Virtual Machine Specification, 2nd edition, page 146). By so doing, the outgoing execution frame situation is calculated. This method is JustIce-specific and is usually of no sense for users of the ControlFlowGraph class. They should use getInstruction().accept(Visitor), possibly in conjunction with the ExecutionVisitor. WARNING! These classes are a fork of the bcel verifier.

Returns:
true - if and only if the "outgoing" frame situation changed from the one before execute()ing.
See Also:
ControlFlowGraph, ExecutionVisitor, #getOutFrame(ArrayList)

getInFrame

Frame getInFrame()

getOutFrame

Frame getOutFrame(ExecutionPath executionPredecessors)
This method returns the outgoing execution frame situation; therefore it has to be calculated by execute(Frame, ArrayList) first.

See Also:
execute(Frame, ExecutionPath, ExecutionVisitor)

getInstruction

org.apache.bcel.generic.InstructionHandle getInstruction()
Returns the InstructionHandle this InstructionContext is wrapped around.

Returns:
The InstructionHandle this InstructionContext is wrapped around.

getSuccessors

InstructionContext[] getSuccessors()
Returns the usual control flow successors.

See Also:
getExceptionHandlers()

getExceptionHandlers

ExceptionHandler[] getExceptionHandlers()
Returns the exception handlers that protect this instruction. They are special control flow successors.



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