Top Description Methods
org.apache.bcel.verifier.structurals

public Interface InstructionContext

Known Direct Implementers
org.apache.bcel.verifier.structurals.ControlFlowGraph.InstructionContextImpl
Imports
java.util.ArrayList, org.apache.bcel.generic.InstructionHandle

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

Method Summary

Modifier and TypeMethod and Description
public boolean

Returns:

true - if and only if the "outgoing" frame situation changed from the one before execute()ing.
execute
(Frame inFrame, ArrayList<InstructionContext> executionPredecessors, InstConstraintVisitor icv, ExecutionVisitor ev)

This method symbolically executes the Instruction held in the InstructionContext.

public ExceptionHandler[]
getExceptionHandlers()

Returns the exception handlers that protect this instruction.

public Frame
public InstructionHandle

Returns:

The InstructionHandle this InstructionContext is wrapped around.
getInstruction
()

Returns the InstructionHandle this InstructionContext is wrapped around.

public Frame
getOutFrame(ArrayList<InstructionContext> executionPredecessors)

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

public InstructionContext[]
getSuccessors()

Returns the usual control flow successors.

public int
getTag()

The getTag and setTag methods may be used for temporary flagging, such as graph coloring.

public void
setTag(int tag)

The getTag and setTag methods may be used for temporary flagging, such as graph coloring.

Method Detail

executeback to summary
public boolean execute(Frame inFrame, ArrayList<InstructionContext> 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.

Returns:boolean

true - if and only if the "outgoing" frame situation changed from the one before execute()ing.

See Also
ControlFlowGraph, ExecutionVisitor, getOutFrame(ArrayList)
getExceptionHandlersback to summary
public ExceptionHandler[] getExceptionHandlers()

Returns the exception handlers that protect this instruction. They are special control flow successors.

getInFrameback to summary
public Frame getInFrame()
getInstructionback to summary
public InstructionHandle getInstruction()

Returns the InstructionHandle this InstructionContext is wrapped around.

Returns:InstructionHandle

The InstructionHandle this InstructionContext is wrapped around.

getOutFrameback to summary
public Frame getOutFrame(ArrayList<InstructionContext> executionPredecessors)

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

See Also
execute(Frame, ArrayList, InstConstraintVisitor, ExecutionVisitor)
getSuccessorsback to summary
public InstructionContext[] getSuccessors()

Returns the usual control flow successors.

See Also
getExceptionHandlers()
getTagback to summary
public int getTag()

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

See Also
setTag(int tag)
setTagback to summary
public void setTag(int tag)

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

See Also
getTag()