Class PatternElementMatch

java.lang.Object
edu.umd.cs.findbugs.ba.bcp.PatternElementMatch

public class PatternElementMatch extends Object
PatternElementMatch represents matching a PatternElement against a single instruction. The "prev" field points to the previous PatternElementMatch. By building up sequences of PatternElementMatch objects in this way, we can implement nondeterministic matching without having to copy anything.
  • Constructor Details

    • PatternElementMatch

      public PatternElementMatch(PatternElement patternElement, org.apache.bcel.generic.InstructionHandle matchedInstruction, BasicBlock basicBlock, int matchCount, PatternElementMatch prev)
      Constructor.
      Parameters:
      patternElement - the PatternElement being matched
      matchedInstruction - the instruction which matched the PatternElement
      basicBlock - the basic block containing the matched instruction
      matchCount - the index (starting at zero) of the instructions matching the PatternElement; multiple instructions can match the same PatternElement
      prev - the previous PatternElementMatch
  • Method Details

    • getPatternElement

      public PatternElement getPatternElement()
      Get the PatternElement.
    • getMatchedInstructionInstructionHandle

      public org.apache.bcel.generic.InstructionHandle getMatchedInstructionInstructionHandle()
      Get the matched instruction.
    • getBasicBlock

      public BasicBlock getBasicBlock()
      Get the basic block containing the matched instruction.
    • getMatchCount

      public int getMatchCount()
    • getPrev

      public PatternElementMatch getPrev()
      Get the previous PatternMatchElement.
    • getLabeledInstruction

      public org.apache.bcel.generic.InstructionHandle getLabeledInstruction(String label)
      Get the first instruction matched by the PatternElement with given label.
    • getFirstLabeledMatch

      public PatternElementMatch getFirstLabeledMatch(String label)
      Get first match element with given label, if any.
    • getLastLabeledMatch

      public PatternElementMatch getLastLabeledMatch(String label)
      Get last match element with given label, if any.
    • allowTrailingEdges

      public boolean allowTrailingEdges()
      Return whether or not the most recently matched instruction allows trailing edges.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object