Class BootstrapMethodsUtil

java.lang.Object
edu.umd.cs.findbugs.util.BootstrapMethodsUtil

public class BootstrapMethodsUtil extends Object
Utility methods for working with bootstrap methods
  • Field Details

  • Constructor Details

    • BootstrapMethodsUtil

      public BootstrapMethodsUtil()
  • Method Details

    • getInvokedMethodTargets

      public static List<MethodDescriptor> getInvokedMethodTargets(org.apache.bcel.classfile.JavaClass cls, int bootstrapIndex, org.apache.bcel.classfile.ConstantPool cp)
      Returns the methods invoked by handle arguments of a bootstrap method from a Java class.
      Parameters:
      cls - the java class whose bootstrap method attribute is consulted
      bootstrapIndex - the index of the bootstrap method
      cp - the constant pool of the java class
      Returns:
      the invoked methods if found, an empty list otherwise
    • findBootstrapMethod

      private static org.apache.bcel.classfile.BootstrapMethod findBootstrapMethod(org.apache.bcel.classfile.JavaClass cls, int index)
    • getMethodFromBootstrap

      public static Optional<org.apache.bcel.classfile.Method> getMethodFromBootstrap(org.apache.bcel.classfile.BootstrapMethods bms, int index, org.apache.bcel.classfile.ConstantPool cp, org.apache.bcel.classfile.JavaClass cls)
      Returns the method representation of a bootstrap method from a Java class.
      Parameters:
      bms - the BootstrapMethods attribute of a java class
      index - the index of the bootstrap method
      cp - the constant pool of the java class
      cls - the java class itself
      Returns:
      the bootstrap method represented as Method if found, Optional.empty() otherwise
    • getLambdasOwnedBy

      public static Set<MethodAnnotation> getLambdasOwnedBy(org.apache.bcel.classfile.JavaClass cls, org.apache.bcel.classfile.Method method)
      Returns the lambda methods belonging to the given method (including nested ones).
      Parameters:
      cls - the java class containing the method
      method - the method whose lambdas to find
      Returns:
      the lambda methods if found, an empty set otherwise
    • getDirectlyReferencedLambdas

      private static List<MethodAnnotation> getDirectlyReferencedLambdas(org.apache.bcel.classfile.JavaClass cls, org.apache.bcel.classfile.Method method)