public class org.reflections.scanners.MemberUsageScanner extends org.reflections.scanners.AbstractScanner
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.reflections.scanners.MemberUsageScanner
  super_class: org.reflections.scanners.AbstractScanner
{
  private javassist.ClassPool classPool;
    descriptor: Ljavassist/ClassPool;
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.reflections.scanners.MemberUsageScanner this
         0: .line 24
            aload 0 /* this */
            invokespecial org.reflections.scanners.AbstractScanner.<init>:()V
            return
        end local 0 // org.reflections.scanners.MemberUsageScanner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/reflections/scanners/MemberUsageScanner;

  public void scan(java.lang.Object, org.reflections.Store);
    descriptor: (Ljava/lang/Object;Lorg/reflections/Store;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // org.reflections.scanners.MemberUsageScanner this
        start local 1 // java.lang.Object cls
        start local 2 // org.reflections.Store store
         0: .line 30
            aload 0 /* this */
            invokevirtual org.reflections.scanners.MemberUsageScanner.getClassPool:()Ljavassist/ClassPool;
            aload 0 /* this */
            invokevirtual org.reflections.scanners.MemberUsageScanner.getMetadataAdapter:()Lorg/reflections/adapters/MetadataAdapter;
            aload 1 /* cls */
            invokeinterface org.reflections.adapters.MetadataAdapter.getClassName:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual javassist.ClassPool.get:(Ljava/lang/String;)Ljavassist/CtClass;
            astore 3 /* ctClass */
        start local 3 // javassist.CtClass ctClass
         1: .line 31
            aload 3 /* ctClass */
            invokevirtual javassist.CtClass.getDeclaredConstructors:()[Ljavassist/CtConstructor;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 5
      StackMap locals: org.reflections.scanners.MemberUsageScanner java.lang.Object org.reflections.Store javassist.CtClass top int int javassist.CtBehavior[]
      StackMap stack:
         2: aload 7
            iload 5
            aaload
            astore 4 /* member */
        start local 4 // javassist.CtBehavior member
         3: .line 32
            aload 0 /* this */
            aload 4 /* member */
            aload 2 /* store */
            invokevirtual org.reflections.scanners.MemberUsageScanner.scanMember:(Ljavassist/CtBehavior;Lorg/reflections/Store;)V
        end local 4 // javassist.CtBehavior member
         4: .line 31
            iinc 5 1
      StackMap locals:
      StackMap stack:
         5: iload 5
            iload 6
            if_icmplt 2
         6: .line 34
            aload 3 /* ctClass */
            invokevirtual javassist.CtClass.getDeclaredMethods:()[Ljavassist/CtMethod;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 10
      StackMap locals:
      StackMap stack:
         7: aload 7
            iload 5
            aaload
            astore 4 /* member */
        start local 4 // javassist.CtBehavior member
         8: .line 35
            aload 0 /* this */
            aload 4 /* member */
            aload 2 /* store */
            invokevirtual org.reflections.scanners.MemberUsageScanner.scanMember:(Ljavassist/CtBehavior;Lorg/reflections/Store;)V
        end local 4 // javassist.CtBehavior member
         9: .line 34
            iinc 5 1
      StackMap locals:
      StackMap stack:
        10: iload 5
            iload 6
            if_icmplt 7
        11: .line 37
            aload 3 /* ctClass */
            invokevirtual javassist.CtClass.detach:()V
        end local 3 // javassist.CtClass ctClass
        12: .line 38
            goto 15
      StackMap locals: org.reflections.scanners.MemberUsageScanner java.lang.Object org.reflections.Store
      StackMap stack: java.lang.Exception
        13: astore 3 /* e */
        start local 3 // java.lang.Exception e
        14: .line 39
            new org.reflections.ReflectionsException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not scan method usage for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.reflections.scanners.MemberUsageScanner.getMetadataAdapter:()Lorg/reflections/adapters/MetadataAdapter;
            aload 1 /* cls */
            invokeinterface org.reflections.adapters.MetadataAdapter.getClassName:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* e */
            invokespecial org.reflections.ReflectionsException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.Exception e
        15: .line 41
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.reflections.Store store
        end local 1 // java.lang.Object cls
        end local 0 // org.reflections.scanners.MemberUsageScanner this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0     this  Lorg/reflections/scanners/MemberUsageScanner;
            0   16     1      cls  Ljava/lang/Object;
            0   16     2    store  Lorg/reflections/Store;
            1   12     3  ctClass  Ljavassist/CtClass;
            3    4     4   member  Ljavassist/CtBehavior;
            8    9     4   member  Ljavassist/CtBehavior;
           14   15     3        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0    12      13  Class java.lang.Exception
    MethodParameters:
       Name  Flags
      cls    
      store  

  void scanMember(javassist.CtBehavior, org.reflections.Store);
    descriptor: (Ljavassist/CtBehavior;Lorg/reflections/Store;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // org.reflections.scanners.MemberUsageScanner this
        start local 1 // javassist.CtBehavior member
        start local 2 // org.reflections.Store store
         0: .line 45
            new java.lang.StringBuilder
            dup
            aload 1 /* member */
            invokevirtual javassist.CtBehavior.getDeclaringClass:()Ljavassist/CtClass;
            invokevirtual javassist.CtClass.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* member */
            invokevirtual javassist.CtBehavior.getMethodInfo:()Ljavassist/bytecode/MethodInfo;
            invokevirtual javassist.bytecode.MethodInfo.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 46
            ldc "("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            aload 1 /* member */
            invokevirtual javassist.CtBehavior.getMethodInfo:()Ljavassist/bytecode/MethodInfo;
            invokevirtual org.reflections.scanners.MemberUsageScanner.parameterNames:(Ljavassist/bytecode/MethodInfo;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 45
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* key */
        start local 3 // java.lang.String key
         3: .line 47
            aload 1 /* member */
            new org.reflections.scanners.MemberUsageScanner$1
            dup
            aload 0 /* this */
            aload 2 /* store */
            aload 3 /* key */
            invokespecial org.reflections.scanners.MemberUsageScanner$1.<init>:(Lorg/reflections/scanners/MemberUsageScanner;Lorg/reflections/Store;Ljava/lang/String;)V
            invokevirtual javassist.CtBehavior.instrument:(Ljavassist/expr/ExprEditor;)V
         4: .line 87
            return
        end local 3 // java.lang.String key
        end local 2 // org.reflections.Store store
        end local 1 // javassist.CtBehavior member
        end local 0 // org.reflections.scanners.MemberUsageScanner this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/reflections/scanners/MemberUsageScanner;
            0    5     1  member  Ljavassist/CtBehavior;
            0    5     2   store  Lorg/reflections/Store;
            3    5     3     key  Ljava/lang/String;
    Exceptions:
      throws javassist.CannotCompileException
    MethodParameters:
        Name  Flags
      member  
      store   

  private void put(org.reflections.Store, java.lang.String, int, java.lang.String);
    descriptor: (Lorg/reflections/Store;Ljava/lang/String;ILjava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // org.reflections.scanners.MemberUsageScanner this
        start local 1 // org.reflections.Store store
        start local 2 // java.lang.String key
        start local 3 // int lineNumber
        start local 4 // java.lang.String value
         0: .line 90
            aload 0 /* this */
            aload 2 /* key */
            invokevirtual org.reflections.scanners.MemberUsageScanner.acceptResult:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 91
            aload 0 /* this */
            aload 1 /* store */
            aload 2 /* key */
            new java.lang.StringBuilder
            dup
            aload 4 /* value */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " #"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* lineNumber */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.reflections.scanners.MemberUsageScanner.put:(Lorg/reflections/Store;Ljava/lang/String;Ljava/lang/String;)V
         2: .line 93
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.String value
        end local 3 // int lineNumber
        end local 2 // java.lang.String key
        end local 1 // org.reflections.Store store
        end local 0 // org.reflections.scanners.MemberUsageScanner this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/reflections/scanners/MemberUsageScanner;
            0    3     1       store  Lorg/reflections/Store;
            0    3     2         key  Ljava/lang/String;
            0    3     3  lineNumber  I
            0    3     4       value  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      store       
      key         
      lineNumber  
      value       

  java.lang.String parameterNames(javassist.bytecode.MethodInfo);
    descriptor: (Ljavassist/bytecode/MethodInfo;)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.reflections.scanners.MemberUsageScanner this
        start local 1 // javassist.bytecode.MethodInfo info
         0: .line 96
            aload 0 /* this */
            invokevirtual org.reflections.scanners.MemberUsageScanner.getMetadataAdapter:()Lorg/reflections/adapters/MetadataAdapter;
            aload 1 /* info */
            invokeinterface org.reflections.adapters.MetadataAdapter.getParameterNames:(Ljava/lang/Object;)Ljava/util/List;
            ldc ", "
            invokestatic org.reflections.util.Utils.join:(Ljava/util/Collection;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // javassist.bytecode.MethodInfo info
        end local 0 // org.reflections.scanners.MemberUsageScanner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/reflections/scanners/MemberUsageScanner;
            0    1     1  info  Ljavassist/bytecode/MethodInfo;
    MethodParameters:
      Name  Flags
      info  

  private javassist.ClassPool getClassPool();
    descriptor: ()Ljavassist/ClassPool;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // org.reflections.scanners.MemberUsageScanner this
         0: .line 100
            aload 0 /* this */
            getfield org.reflections.scanners.MemberUsageScanner.classPool:Ljavassist/ClassPool;
            ifnonnull 15
         1: .line 101
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         2: .line 102
            aload 0 /* this */
            new javassist.ClassPool
            dup
            invokespecial javassist.ClassPool.<init>:()V
            putfield org.reflections.scanners.MemberUsageScanner.classPool:Ljavassist/ClassPool;
         3: .line 103
            aload 0 /* this */
            invokevirtual org.reflections.scanners.MemberUsageScanner.getConfiguration:()Lorg/reflections/Configuration;
            invokeinterface org.reflections.Configuration.getClassLoaders:()[Ljava/lang/ClassLoader;
            astore 2 /* classLoaders */
        start local 2 // java.lang.ClassLoader[] classLoaders
         4: .line 104
            aload 2 /* classLoaders */
            ifnonnull 6
         5: .line 105
            iconst_0
            anewarray java.lang.ClassLoader
            invokestatic org.reflections.util.ClasspathHelper.classLoaders:([Ljava/lang/ClassLoader;)[Ljava/lang/ClassLoader;
            astore 2 /* classLoaders */
         6: .line 107
      StackMap locals: org.reflections.scanners.MemberUsageScanner java.lang.ClassLoader[]
      StackMap stack:
            aload 2 /* classLoaders */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 10
      StackMap locals: org.reflections.scanners.MemberUsageScanner org.reflections.scanners.MemberUsageScanner java.lang.ClassLoader[] top int int java.lang.ClassLoader[]
      StackMap stack:
         7: aload 6
            iload 4
            aaload
            astore 3 /* classLoader */
        start local 3 // java.lang.ClassLoader classLoader
         8: .line 108
            aload 0 /* this */
            getfield org.reflections.scanners.MemberUsageScanner.classPool:Ljavassist/ClassPool;
            new javassist.LoaderClassPath
            dup
            aload 3 /* classLoader */
            invokespecial javassist.LoaderClassPath.<init>:(Ljava/lang/ClassLoader;)V
            invokevirtual javassist.ClassPool.appendClassPath:(Ljavassist/ClassPath;)Ljavassist/ClassPath;
            pop
        end local 3 // java.lang.ClassLoader classLoader
         9: .line 107
            iinc 4 1
      StackMap locals:
      StackMap stack:
        10: iload 4
            iload 5
            if_icmplt 7
        end local 2 // java.lang.ClassLoader[] classLoaders
        11: .line 101
            aload 1
            monitorexit
        12: goto 15
      StackMap locals: org.reflections.scanners.MemberUsageScanner org.reflections.scanners.MemberUsageScanner
      StackMap stack: java.lang.Throwable
        13: aload 1
            monitorexit
        14: athrow
        15: .line 112
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.reflections.scanners.MemberUsageScanner.classPool:Ljavassist/ClassPool;
            areturn
        end local 0 // org.reflections.scanners.MemberUsageScanner this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   16     0          this  Lorg/reflections/scanners/MemberUsageScanner;
            4   11     2  classLoaders  [Ljava/lang/ClassLoader;
            8    9     3   classLoader  Ljava/lang/ClassLoader;
      Exception table:
        from    to  target  type
           2    12      13  any
          13    14      13  any
}
SourceFile: "MemberUsageScanner.java"
NestMembers:
  org.reflections.scanners.MemberUsageScanner$1
InnerClasses:
  org.reflections.scanners.MemberUsageScanner$1