final class com.google.inject.internal.SingleMethodInjector implements com.google.inject.internal.SingleMemberInjector
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.google.inject.internal.SingleMethodInjector
super_class: java.lang.Object
{
private final com.google.inject.internal.InjectorImpl$MethodInvoker methodInvoker;
descriptor: Lcom/google/inject/internal/InjectorImpl$MethodInvoker;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.google.inject.internal.SingleParameterInjector<?>[] parameterInjectors;
descriptor: [Lcom/google/inject/internal/SingleParameterInjector;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: [Lcom/google/inject/internal/SingleParameterInjector<*>;
private final com.google.inject.spi.InjectionPoint injectionPoint;
descriptor: Lcom/google/inject/spi/InjectionPoint;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(com.google.inject.internal.InjectorImpl, com.google.inject.spi.InjectionPoint, com.google.inject.internal.Errors);
descriptor: (Lcom/google/inject/internal/InjectorImpl;Lcom/google/inject/spi/InjectionPoint;Lcom/google/inject/internal/Errors;)V
flags: (0x0000)
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 2
putfield com.google.inject.internal.SingleMethodInjector.injectionPoint:Lcom/google/inject/spi/InjectionPoint;
2: aload 2
invokevirtual com.google.inject.spi.InjectionPoint.getMember:()Ljava/lang/reflect/Member;
checkcast java.lang.reflect.Method
astore 4
start local 4 3: aload 0
aload 0
aload 4
invokevirtual com.google.inject.internal.SingleMethodInjector.createMethodInvoker:(Ljava/lang/reflect/Method;)Lcom/google/inject/internal/InjectorImpl$MethodInvoker;
putfield com.google.inject.internal.SingleMethodInjector.methodInvoker:Lcom/google/inject/internal/InjectorImpl$MethodInvoker;
4: aload 0
aload 1
aload 2
invokevirtual com.google.inject.spi.InjectionPoint.getDependencies:()Ljava/util/List;
aload 3
invokevirtual com.google.inject.internal.InjectorImpl.getParametersInjectors:(Ljava/util/List;Lcom/google/inject/internal/Errors;)[Lcom/google/inject/internal/SingleParameterInjector;
putfield com.google.inject.internal.SingleMethodInjector.parameterInjectors:[Lcom/google/inject/internal/SingleParameterInjector;
5: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/google/inject/internal/SingleMethodInjector;
0 6 1 injector Lcom/google/inject/internal/InjectorImpl;
0 6 2 injectionPoint Lcom/google/inject/spi/InjectionPoint;
0 6 3 errors Lcom/google/inject/internal/Errors;
3 6 4 method Ljava/lang/reflect/Method;
Exceptions:
throws com.google.inject.internal.ErrorsException
MethodParameters:
Name Flags
injector
injectionPoint
errors
private com.google.inject.internal.InjectorImpl$MethodInvoker createMethodInvoker(java.lang.reflect.Method);
descriptor: (Ljava/lang/reflect/Method;)Lcom/google/inject/internal/InjectorImpl$MethodInvoker;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.google.inject.internal.BytecodeGen.newFastClassForMember:(Ljava/lang/reflect/Member;)Lnet/sf/cglib/reflect/FastClass;
astore 2
start local 2 1: aload 2
ifnull 6
2: aload 2
aload 1
invokevirtual net.sf.cglib.reflect.FastClass.getMethod:(Ljava/lang/reflect/Method;)Lnet/sf/cglib/reflect/FastMethod;
invokevirtual net.sf.cglib.reflect.FastMethod.getIndex:()I
istore 3
start local 3 3: new com.google.inject.internal.SingleMethodInjector$1
dup
aload 0
aload 2
iload 3
invokespecial com.google.inject.internal.SingleMethodInjector$1.<init>:(Lcom/google/inject/internal/SingleMethodInjector;Lnet/sf/cglib/reflect/FastClass;I)V
4: areturn
end local 3 end local 2 5: StackMap locals:
StackMap stack: net.sf.cglib.core.CodeGenerationException
pop
6: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.reflect.Method.getModifiers:()I
istore 2
start local 2 7: iload 2
invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
ifeq 9
8: aload 1
invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
ifne 10
9: StackMap locals: int
StackMap stack:
aload 1
iconst_1
invokevirtual java.lang.reflect.Method.setAccessible:(Z)V
10: StackMap locals:
StackMap stack:
new com.google.inject.internal.SingleMethodInjector$2
dup
aload 0
aload 1
invokespecial com.google.inject.internal.SingleMethodInjector$2.<init>:(Lcom/google/inject/internal/SingleMethodInjector;Ljava/lang/reflect/Method;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/google/inject/internal/SingleMethodInjector;
0 11 1 method Ljava/lang/reflect/Method;
1 5 2 fastClass Lnet/sf/cglib/reflect/FastClass;
3 5 3 index I
7 11 2 modifiers I
Exception table:
from to target type
0 4 5 Class net.sf.cglib.core.CodeGenerationException
MethodParameters:
Name Flags
method final
public com.google.inject.spi.InjectionPoint getInjectionPoint();
descriptor: ()Lcom/google/inject/spi/InjectionPoint;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.inject.internal.SingleMethodInjector.injectionPoint:Lcom/google/inject/spi/InjectionPoint;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/inject/internal/SingleMethodInjector;
public void inject(com.google.inject.internal.InternalContext, java.lang.Object);
descriptor: (Lcom/google/inject/internal/InternalContext;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
getfield com.google.inject.internal.SingleMethodInjector.parameterInjectors:[Lcom/google/inject/internal/SingleParameterInjector;
invokestatic com.google.inject.internal.SingleParameterInjector.getAll:(Lcom/google/inject/internal/InternalContext;[Lcom/google/inject/internal/SingleParameterInjector;)[Ljava/lang/Object;
astore 3
start local 3 1: aload 0
getfield com.google.inject.internal.SingleMethodInjector.methodInvoker:Lcom/google/inject/internal/InjectorImpl$MethodInvoker;
aload 2
aload 3
invokeinterface com.google.inject.internal.InjectorImpl$MethodInvoker.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
pop
2: goto 10
StackMap locals: com.google.inject.internal.SingleMethodInjector com.google.inject.internal.InternalContext java.lang.Object java.lang.Object[]
StackMap stack: java.lang.IllegalAccessException
3: astore 4
start local 4 4: new java.lang.AssertionError
dup
aload 4
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 4 5: StackMap locals:
StackMap stack: java.lang.reflect.InvocationTargetException
astore 4
start local 4 6: aload 4
invokevirtual java.lang.reflect.InvocationTargetException.getCause:()Ljava/lang/Throwable;
ifnull 7
aload 4
invokevirtual java.lang.reflect.InvocationTargetException.getCause:()Ljava/lang/Throwable;
goto 8
StackMap locals: java.lang.reflect.InvocationTargetException
StackMap stack:
7: aload 4
StackMap locals:
StackMap stack: java.lang.Throwable
8: astore 5
start local 5 9: aload 5
invokestatic com.google.inject.internal.InternalProvisionException.errorInjectingMethod:(Ljava/lang/Throwable;)Lcom/google/inject/internal/InternalProvisionException;
aload 0
getfield com.google.inject.internal.SingleMethodInjector.injectionPoint:Lcom/google/inject/spi/InjectionPoint;
invokevirtual com.google.inject.internal.InternalProvisionException.addSource:(Ljava/lang/Object;)Lcom/google/inject/internal/InternalProvisionException;
athrow
end local 5 end local 4 10: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/google/inject/internal/SingleMethodInjector;
0 11 1 context Lcom/google/inject/internal/InternalContext;
0 11 2 o Ljava/lang/Object;
1 11 3 parameters [Ljava/lang/Object;
4 5 4 e Ljava/lang/IllegalAccessException;
6 10 4 userException Ljava/lang/reflect/InvocationTargetException;
9 10 5 cause Ljava/lang/Throwable;
Exception table:
from to target type
1 2 3 Class java.lang.IllegalAccessException
1 2 5 Class java.lang.reflect.InvocationTargetException
Exceptions:
throws com.google.inject.internal.InternalProvisionException
MethodParameters:
Name Flags
context
o
}
SourceFile: "SingleMethodInjector.java"
NestMembers:
com.google.inject.internal.SingleMethodInjector$1 com.google.inject.internal.SingleMethodInjector$2
InnerClasses:
abstract MethodInvoker = com.google.inject.internal.InjectorImpl$MethodInvoker of com.google.inject.internal.InjectorImpl
com.google.inject.internal.SingleMethodInjector$1
com.google.inject.internal.SingleMethodInjector$2