Class Wild


public class Wild extends PatternElement
A wildcard PatternElement, which matches any kind of instruction indiscriminately.
Author:
David Hovemeyer
See Also:
  • Constructor Details

    • Wild

      public Wild()
      Default constructor. Creates a wildcard that matches from 0 to Integer.MAX_VALUE instructions.
    • Wild

      public Wild(int max)
      Constructor. Matches any number of instructions from 0 to the maximum specified.
      Parameters:
      max - the maximum number of instructions the wildcard may match
    • Wild

      public Wild(int min, int max)
      Constructor.
      Parameters:
      min - minimum number of times the wildcard must match
      max - maximum number of times the wildcard may match
  • Method Details

    • setMinAndMax

      public void setMinAndMax(int min, int max)
      Set min and max values.
      Parameters:
      min - minimum number of times the wildcard must match
      max - maximum number of times the wildcard may match
    • minOccur

      public int minOccur()
      Description copied from class: PatternElement
      Return the minimum number of instructions this PatternElement must match in the ByteCodePattern.
      Specified by:
      minOccur in class PatternElement
    • maxOccur

      public int maxOccur()
      Description copied from class: PatternElement
      Return the maximum number of instructions this PatternElement must match in the ByteCodePattern.
      Specified by:
      maxOccur in class PatternElement
    • acceptBranch

      public boolean acceptBranch(Edge edge, org.apache.bcel.generic.InstructionHandle source)
      Description copied from class: PatternElement
      Return whether or not it is acceptable to take the given branch.
      Specified by:
      acceptBranch in class PatternElement
      Parameters:
      edge - the Edge representing the branch
      source - the source instruction of the branch
      Returns:
      true if the Edge is acceptable, false if not
    • match

      public MatchResult match(org.apache.bcel.generic.InstructionHandle handle, org.apache.bcel.generic.ConstantPoolGen cpg, ValueNumberFrame before, ValueNumberFrame after, BindingSet bindingSet) throws DataflowAnalysisException
      Description copied from class: PatternElement
      Return whether or not this element matches the given instruction with the given Bindings in effect.
      Specified by:
      match in class PatternElement
      Parameters:
      handle - the instruction
      cpg - the ConstantPoolGen from the method
      before - the ValueNumberFrame representing values in the Java stack frame just before the execution of the instruction
      after - the ValueNumberFrame representing values in the Java stack frame just after the execution of the instruction
      bindingSet - the set of Bindings
      Returns:
      if the match is successful, returns a MatchResult with the PatternElement and BindingSet; if the match is not successful, returns null
      Throws:
      DataflowAnalysisException