Class BasicBlock

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      class  BasicBlock.InstructionIterator
      A forward Iterator over the instructions of a basic block.
    • Constructor Summary

      Constructors 
      Constructor Description
      BasicBlock()
      Constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      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​(TypeMerger m, 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 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

        @CheckForNull
        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
      • 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​(@Nullable
                                    TypeMerger m,
                                    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