class edu.umd.cs.findbugs.DetectorFactory$ReflectionDetectorCreator
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: edu.umd.cs.findbugs.DetectorFactory$ReflectionDetectorCreator
super_class: java.lang.Object
{
private final java.lang.Class<?> detectorClass;
descriptor: Ljava/lang/Class;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/lang/Class<*>;
private java.lang.reflect.Method setAnalysisContext;
descriptor: Ljava/lang/reflect/Method;
flags: (0x0002) ACC_PRIVATE
void <init>(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)V
flags: (0x0000)
Code:
stack=7, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield edu.umd.cs.findbugs.DetectorFactory$ReflectionDetectorCreator.detectorClass:Ljava/lang/Class;
2: getstatic edu.umd.cs.findbugs.DetectorFactory.SUPPORT_OLD_DETECTOR_INTERFACE:Z
ifeq 8
3: aload 0
aload 1
ldc "setAnalysisContext"
4: iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ledu/umd/cs/findbugs/ba/AnalysisContext;
aastore
5: invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
putfield edu.umd.cs.findbugs.DetectorFactory$ReflectionDetectorCreator.setAnalysisContext:Ljava/lang/reflect/Method;
6: goto 8
StackMap locals: edu.umd.cs.findbugs.DetectorFactory$ReflectionDetectorCreator java.lang.Class
StackMap stack: java.lang.NoSuchMethodException
7: pop
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ledu/umd/cs/findbugs/DetectorFactory$ReflectionDetectorCreator;
0 9 1 detectorClass Ljava/lang/Class<*>;
Exception table:
from to target type
3 6 7 Class java.lang.NoSuchMethodException
Signature: (Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
detectorClass
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactory$ReflectionDetectorCreator.detectorClass:Ljava/lang/Class;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ledu/umd/cs/findbugs/DetectorFactory$ReflectionDetectorCreator;
public edu.umd.cs.findbugs.Detector createDetector(edu.umd.cs.findbugs.BugReporter);
descriptor: (Ledu/umd/cs/findbugs/BugReporter;)Ledu/umd/cs/findbugs/Detector;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactory$ReflectionDetectorCreator.detectorClass:Ljava/lang/Class;
getstatic edu.umd.cs.findbugs.DetectorFactory.constructorArgTypes:[Ljava/lang/Class;
invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
astore 2
start local 2 1: aload 2
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast edu.umd.cs.findbugs.Detector
astore 3
start local 3 2: aload 0
getfield edu.umd.cs.findbugs.DetectorFactory$ReflectionDetectorCreator.setAnalysisContext:Ljava/lang/reflect/Method;
ifnull 4
3: aload 0
getfield edu.umd.cs.findbugs.DetectorFactory$ReflectionDetectorCreator.setAnalysisContext:Ljava/lang/reflect/Method;
aload 3
iconst_1
anewarray java.lang.Object
dup
iconst_0
invokestatic edu.umd.cs.findbugs.ba.AnalysisContext.currentAnalysisContext:()Ledu/umd/cs/findbugs/ba/AnalysisContext;
aastore
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
pop
4: StackMap locals: java.lang.reflect.Constructor edu.umd.cs.findbugs.Detector
StackMap stack:
aload 3
5: areturn
end local 3 end local 2 6: StackMap locals: edu.umd.cs.findbugs.DetectorFactory$ReflectionDetectorCreator edu.umd.cs.findbugs.BugReporter
StackMap stack: java.lang.Exception
astore 2
start local 2 7: new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "Could not instantiate "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield edu.umd.cs.findbugs.DetectorFactory$ReflectionDetectorCreator.detectorClass:Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " as Detector"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 2
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ledu/umd/cs/findbugs/DetectorFactory$ReflectionDetectorCreator;
0 8 1 bugReporter Ledu/umd/cs/findbugs/BugReporter;
1 6 2 constructor Ljava/lang/reflect/Constructor<*>;
2 6 3 detector Ledu/umd/cs/findbugs/Detector;
7 8 2 e Ljava/lang/Exception;
Exception table:
from to target type
0 5 6 Class java.lang.Exception
MethodParameters:
Name Flags
bugReporter
public edu.umd.cs.findbugs.Detector2 createDetector2(edu.umd.cs.findbugs.BugReporter);
descriptor: (Ledu/umd/cs/findbugs/BugReporter;)Ledu/umd/cs/findbugs/Detector2;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: ldc Ledu/umd/cs/findbugs/Detector2;
aload 0
getfield edu.umd.cs.findbugs.DetectorFactory$ReflectionDetectorCreator.detectorClass:Ljava/lang/Class;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 6
1: aload 0
getfield edu.umd.cs.findbugs.DetectorFactory$ReflectionDetectorCreator.detectorClass:Ljava/lang/Class;
getstatic edu.umd.cs.findbugs.DetectorFactory.constructorArgTypes:[Ljava/lang/Class;
invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
astore 2
start local 2 2: aload 2
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast edu.umd.cs.findbugs.Detector2
3: areturn
end local 2 4: StackMap locals:
StackMap stack: java.lang.Exception
astore 2
start local 2 5: new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "Could not instantiate "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield edu.umd.cs.findbugs.DetectorFactory$ReflectionDetectorCreator.detectorClass:Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " as Detector2"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 2
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 6: StackMap locals:
StackMap stack:
ldc Ledu/umd/cs/findbugs/Detector;
aload 0
getfield edu.umd.cs.findbugs.DetectorFactory$ReflectionDetectorCreator.detectorClass:Ljava/lang/Class;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 10
7: ldc Ledu/umd/cs/findbugs/NonReportingDetector;
aload 0
getfield edu.umd.cs.findbugs.DetectorFactory$ReflectionDetectorCreator.detectorClass:Ljava/lang/Class;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 9
8: new edu.umd.cs.findbugs.NonReportingDetectorToDetector2Adapter
dup
aload 0
aload 1
invokevirtual edu.umd.cs.findbugs.DetectorFactory$ReflectionDetectorCreator.createDetector:(Ledu/umd/cs/findbugs/BugReporter;)Ledu/umd/cs/findbugs/Detector;
invokespecial edu.umd.cs.findbugs.NonReportingDetectorToDetector2Adapter.<init>:(Ledu/umd/cs/findbugs/Detector;)V
areturn
9: StackMap locals:
StackMap stack:
new edu.umd.cs.findbugs.DetectorToDetector2Adapter
dup
aload 0
aload 1
invokevirtual edu.umd.cs.findbugs.DetectorFactory$ReflectionDetectorCreator.createDetector:(Ledu/umd/cs/findbugs/BugReporter;)Ledu/umd/cs/findbugs/Detector;
invokespecial edu.umd.cs.findbugs.DetectorToDetector2Adapter.<init>:(Ledu/umd/cs/findbugs/Detector;)V
areturn
10: StackMap locals:
StackMap stack:
new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "Class "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield edu.umd.cs.findbugs.DetectorFactory$ReflectionDetectorCreator.detectorClass:Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " is not a detector class"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ledu/umd/cs/findbugs/DetectorFactory$ReflectionDetectorCreator;
0 11 1 bugReporter Ledu/umd/cs/findbugs/BugReporter;
2 4 2 constructor Ljava/lang/reflect/Constructor<*>;
5 6 2 e Ljava/lang/Exception;
Exception table:
from to target type
1 3 4 Class java.lang.Exception
MethodParameters:
Name Flags
bugReporter
public java.lang.Class<?> getDetectorClass();
descriptor: ()Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactory$ReflectionDetectorCreator.detectorClass:Ljava/lang/Class;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ledu/umd/cs/findbugs/DetectorFactory$ReflectionDetectorCreator;
Signature: ()Ljava/lang/Class<*>;
}
SourceFile: "DetectorFactory.java"
NestHost: edu.umd.cs.findbugs.DetectorFactory
InnerClasses:
ReflectionDetectorCreator = edu.umd.cs.findbugs.DetectorFactory$ReflectionDetectorCreator of edu.umd.cs.findbugs.DetectorFactory