FileDocCategorySizeDatePackage
InstructionContext.javaAPI DocJava SE 5 API5364Fri Aug 26 14:55:26 BST 2005com.sun.org.apache.bcel.internal.verifier.structurals

InstructionContext

public interface InstructionContext
An InstructionContext offers convenient access to information like control flow successors and such.
version
$Id: InstructionContext.java,v 1.1.1.1 2001/10/29 20:00:41 jvanzyl Exp $
author
Enver Haase

Fields Summary
Constructors Summary
Methods Summary
public booleanexecute(Frame inFrame, java.util.ArrayList executionPredecessors, InstConstraintVisitor icv, 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.

see
ControlFlowGraph
see
ExecutionVisitor
see
#getOutFrame(ArrayList)
return
true - if and only if the "outgoing" frame situation changed from the one before execute()ing.

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

public com.sun.org.apache.bcel.internal.generic.InstructionHandlegetInstruction()
Returns the InstructionHandle this InstructionContext is wrapped around.

return
The InstructionHandle this InstructionContext is wrapped around.

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

see
#execute(Frame, ArrayList, InstConstraintVisitor, ExecutionVisitor)

public com.sun.org.apache.bcel.internal.verifier.structurals.InstructionContext[]getSuccessors()
Returns the usual control flow successors.

see
#getExceptionHandlers()

public intgetTag()
The getTag and setTag methods may be used for temporary flagging, such as graph colouring. Nothing in the InstructionContext object depends on the value of the tag. JustIce does not use it.

see
#setTag(int tag)

public voidsetTag(int tag)
The getTag and setTag methods may be used for temporary flagging, such as graph colouring. Nothing in the InstructionContext object depends on the value of the tag. JustIce does not use it.

see
#getTag()