Class BasicBranchUnit

  • All Implemented Interfaces:
    BranchUnit

    public class BasicBranchUnit
    extends java.lang.Object
    implements BranchUnit
    This BranchUnit remembers the branch unit commands that are invoked on it. It doesn't consider conditions when branching.
    • Constructor Summary

      Constructors 
      Constructor Description
      BasicBranchUnit()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void branch​(Clazz clazz, CodeAttribute codeAttribute, int offset, int branchTarget)
      Sets the new instruction offset.
      void branchConditionally​(Clazz clazz, CodeAttribute codeAttribute, int offset, int branchTarget, int conditional)
      Sets the new instruction offset, depending on the certainty of the conditional branch.
      InstructionOffsetValue getTraceBranchTargets()
      Returns the accumulated branch targets that were passed to the branch unit methods.
      void reset()
      Resets the accumulated branch targets and the flag that tells whether any of the branch unit methods was called.
      void returnFromMethod()
      Returns from the method with the given value.
      void throwException()
      Handles the throwing of an exception.
      boolean wasCalled()
      Returns whether any of the branch unit methods was called.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • wasCalled

        protected boolean wasCalled
    • Constructor Detail

      • BasicBranchUnit

        public BasicBranchUnit()
    • Method Detail

      • reset

        public void reset()
        Resets the accumulated branch targets and the flag that tells whether any of the branch unit methods was called.
      • wasCalled

        public boolean wasCalled()
        Returns whether any of the branch unit methods was called.
      • getTraceBranchTargets

        public InstructionOffsetValue getTraceBranchTargets()
        Returns the accumulated branch targets that were passed to the branch unit methods.
      • branch

        public void branch​(Clazz clazz,
                           CodeAttribute codeAttribute,
                           int offset,
                           int branchTarget)
        Description copied from interface: BranchUnit
        Sets the new instruction offset.
        Specified by:
        branch in interface BranchUnit
      • branchConditionally

        public void branchConditionally​(Clazz clazz,
                                        CodeAttribute codeAttribute,
                                        int offset,
                                        int branchTarget,
                                        int conditional)
        Description copied from interface: BranchUnit
        Sets the new instruction offset, depending on the certainty of the conditional branch.
        Specified by:
        branchConditionally in interface BranchUnit
      • returnFromMethod

        public void returnFromMethod()
        Description copied from interface: BranchUnit
        Returns from the method with the given value.
        Specified by:
        returnFromMethod in interface BranchUnit
      • throwException

        public void throwException()
        Description copied from interface: BranchUnit
        Handles the throwing of an exception.
        Specified by:
        throwException in interface BranchUnit