FindBugs™ 1.3.9

edu.umd.cs.findbugs.ba
Class BasicBlock

java.lang.Object
  extended by edu.umd.cs.findbugs.graph.AbstractVertex<Edge,BasicBlock>
      extended by edu.umd.cs.findbugs.ba.BasicBlock
All Implemented Interfaces:
Debug, GraphVertex<BasicBlock>, java.lang.Comparable<BasicBlock>

public class BasicBlock
extends AbstractVertex<Edge,BasicBlock>
implements Debug

Simple basic block abstraction for BCEL.

Author:
David Hovemeyer
See Also:
CFG

Nested Class Summary
 class BasicBlock.InstructionIterator
          A forward Iterator over the instructions of a basic block.
 
Field Summary
 
Fields inherited from interface edu.umd.cs.findbugs.ba.Debug
VERIFY_INTEGRITY
 
Constructor Summary
BasicBlock()
          Constructor.
 
Method Summary
 void addInstruction(org.apache.bcel.generic.InstructionHandle handle)
          Add an InstructionHandle to the basic block.
 boolean containsInstruction(org.apache.bcel.generic.InstructionHandle handle)
          Return whether or not the basic block contains the given instruction.
 boolean containsInstructionWithOffset(int offset)
          Return whether or not the basic block contains the instruction with the given bytecode offset.
 org.apache.bcel.generic.CodeExceptionGen getExceptionGen()
          Get CodeExceptionGen object; returns null if this basic block is not the entry point of an exception handler.
 org.apache.bcel.generic.InstructionHandle getExceptionThrower()
          Get the instruction for which this block is an exception thrower.
 org.apache.bcel.generic.InstructionHandle getFirstInstruction()
          Get the first instruction in the basic block.
 int getId()
          Deprecated. call getLabel() instead
 org.apache.bcel.generic.InstructionHandle getLastInstruction()
          Get the last instruction in the basic block.
 org.apache.bcel.generic.InstructionHandle getPredecessorOf(org.apache.bcel.generic.InstructionHandle handle)
          Get the predecessor of given instruction within the basic block.
 org.apache.bcel.generic.InstructionHandle getSuccessorOf(org.apache.bcel.generic.InstructionHandle handle)
          Get the successor of given instruction within the basic block.
 BasicBlock.InstructionIterator instructionIterator()
          Get an Iterator over the instructions in the basic block.
 java.util.Iterator<org.apache.bcel.generic.InstructionHandle> instructionReverseIterator()
          Get an Iterator over the instructions in the basic block in reverse order.
 boolean isEmpty()
          Return true if there are no Instructions in this basic block.
 boolean isExceptionHandler()
          Is this block an exception handler?
 boolean isExceptionThrower()
          Return whether or not this block is an exception thrower.
 boolean isInJSRSubroutine()
           
 boolean isNullCheck()
          Return whether or not this block is a null check.
 int pos()
           
 void setExceptionGen(org.apache.bcel.generic.CodeExceptionGen exceptionGen)
          Set the CodeExceptionGen object.
 void setExceptionThrower(org.apache.bcel.generic.InstructionHandle exceptionThrower)
          Set the instruction for which this block is the ETB.
 java.lang.String toString()
           
 
Methods inherited from class edu.umd.cs.findbugs.graph.AbstractVertex
compareTo, equals, getLabel, hashCode, setLabel
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

BasicBlock

public BasicBlock()
Constructor.

Method Detail

isInJSRSubroutine

public boolean isInJSRSubroutine()

getId

@Deprecated
public int getId()
Deprecated. call getLabel() instead

Get the basic block's integer label.

Returns:
the BasicBlock's integer label

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

setExceptionThrower

public void setExceptionThrower(org.apache.bcel.generic.InstructionHandle exceptionThrower)
Set the instruction for which this block is the ETB.

Parameters:
exceptionThrower - the instruction

isExceptionThrower

public boolean isExceptionThrower()
Return whether or not this block is an exception thrower.


getExceptionThrower

public org.apache.bcel.generic.InstructionHandle getExceptionThrower()
Get the instruction for which this block is an exception thrower.

Returns:
the instruction, or null if this block is not an exception thrower

isNullCheck

public boolean isNullCheck()
Return whether or not this block is a null check.


getFirstInstruction

public org.apache.bcel.generic.InstructionHandle getFirstInstruction()
Get the first instruction in the basic block.


getLastInstruction

public org.apache.bcel.generic.InstructionHandle getLastInstruction()
Get the last instruction in the basic block.


getSuccessorOf

public org.apache.bcel.generic.InstructionHandle getSuccessorOf(org.apache.bcel.generic.InstructionHandle handle)
Get the successor of given instruction within the basic block.

Parameters:
handle - the instruction
Returns:
the instruction's successor, or null if the instruction is the last in the basic block

getPredecessorOf

public org.apache.bcel.generic.InstructionHandle getPredecessorOf(org.apache.bcel.generic.InstructionHandle handle)
Get the predecessor of given instruction within the basic block.

Parameters:
handle - the instruction
Returns:
the instruction's predecessor, or null if the instruction is the first in the basic block

addInstruction

public void addInstruction(org.apache.bcel.generic.InstructionHandle handle)
Add an InstructionHandle to the basic block.

Parameters:
handle - the InstructionHandle

instructionIterator

public BasicBlock.InstructionIterator instructionIterator()
Get an Iterator over the instructions in the basic block.


instructionReverseIterator

public java.util.Iterator<org.apache.bcel.generic.InstructionHandle> instructionReverseIterator()
Get an Iterator over the instructions in the basic block in reverse order. This is useful for backwards dataflow analyses.


isEmpty

public boolean isEmpty()
Return true if there are no Instructions in this basic block.


pos

public int pos()

isExceptionHandler

public boolean isExceptionHandler()
Is this block an exception handler?


getExceptionGen

public org.apache.bcel.generic.CodeExceptionGen getExceptionGen()
Get CodeExceptionGen object; returns null if this basic block is not the entry point of an exception handler.

Returns:
the CodeExceptionGen object, or null

setExceptionGen

public void setExceptionGen(org.apache.bcel.generic.CodeExceptionGen exceptionGen)
Set the CodeExceptionGen object. Marks this basic block as the entry point of an exception handler.

Parameters:
exceptionGen - the CodeExceptionGen object for the block

containsInstruction

public boolean containsInstruction(org.apache.bcel.generic.InstructionHandle handle)
Return whether or not the basic block contains the given instruction.

Parameters:
handle - the instruction
Returns:
true if the block contains the instruction, false otherwise

containsInstructionWithOffset

public boolean containsInstructionWithOffset(int offset)
Return whether or not the basic block contains the instruction with the given bytecode offset.

Parameters:
offset - the bytecode offset
Returns:
true if the block contains an instruction with the given offset, false if it does not

FindBugs™ 1.3.9

FindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.