Class InstanceOfScanner

All Implemented Interfaces:
TreeVisitor<Void,Void>

public class InstanceOfScanner extends CommonScanner
InstanceOfScanner stores information about the names and offsets of instanceof checks inside a method, and can also be used to scan the source tree and determine the index of a given instanceof check, where the i^th index corresponds to the i^th instanceof check, using 0-based indexing.
  • Method Details

    • indexOfInstanceOfTree

      public static int indexOfInstanceOfTree(TreePath origpath, Tree tree)
      Computes the index of the given instanceof tree amongst all instanceof tree inside its method, using 0-based indexing.
      Parameters:
      origpath - the path ending in the given instanceof tree
      tree - the instanceof tree to search for
      Returns:
      the index of the given instanceof tree
    • visitInstanceOf

      public Void visitInstanceOf(InstanceOfTree node, Void p)
      Specified by:
      visitInstanceOf in interface TreeVisitor<Void,Void>
      Overrides:
      visitInstanceOf in class TreeScanner<Void,Void>
    • addInstanceOfToMethod

      public static void addInstanceOfToMethod(String methodName, Integer offset)
      Adds an instanceof bytecode offset to the current list of offsets for methodName. This method must be called with monotonically increasing offsets for any one method.
      Parameters:
      methodName - the name of the method
      offset - the offset to add
    • getMethodInstanceOfIndex

      public static Integer getMethodInstanceOfIndex(String methodName, Integer offset)
      Returns the index of the given offset within the list of offsets for the given method, using 0-based indexing, or returns a negative number if the offset is not one of the offsets in the method.
      Parameters:
      methodName - the name of the method
      offset - the offset of the instanceof check
      Returns:
      the index of the given offset, or a negative number if the offset does not exist inside the method