class org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement extends org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$LookupElement
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement
super_class: org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$LookupElement
{
private final boolean lazyLookup;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final org.springframework.context.annotation.CommonAnnotationBeanPostProcessor this$0;
descriptor: Lorg/springframework/context/annotation/CommonAnnotationBeanPostProcessor;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
public void <init>(org.springframework.context.annotation.CommonAnnotationBeanPostProcessor, java.lang.reflect.Member, java.lang.reflect.AnnotatedElement, java.beans.PropertyDescriptor);
descriptor: (Lorg/springframework/context/annotation/CommonAnnotationBeanPostProcessor;Ljava/lang/reflect/Member;Ljava/lang/reflect/AnnotatedElement;Ljava/beans/PropertyDescriptor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=10, args_size=5
start local 0 start local 2 start local 3 start local 4 0: aload 0
aload 1
putfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.this$0:Lorg/springframework/context/annotation/CommonAnnotationBeanPostProcessor;
1: aload 0
aload 1
aload 2
aload 4
invokespecial org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$LookupElement.<init>:(Lorg/springframework/context/annotation/CommonAnnotationBeanPostProcessor;Ljava/lang/reflect/Member;Ljava/beans/PropertyDescriptor;)V
2: aload 3
ldc Ljavax/annotation/Resource;
invokeinterface java.lang.reflect.AnnotatedElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast javax.annotation.Resource
astore 5
start local 5 3: aload 5
invokeinterface javax.annotation.Resource.name:()Ljava/lang/String;
astore 6
start local 6 4: aload 5
invokeinterface javax.annotation.Resource.type:()Ljava/lang/Class;
astore 7
start local 7 5: aload 0
aload 6
invokestatic org.springframework.util.StringUtils.hasLength:(Ljava/lang/String;)Z
ifeq 6
iconst_0
goto 7
StackMap locals: org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement org.springframework.context.annotation.CommonAnnotationBeanPostProcessor java.lang.reflect.Member java.lang.reflect.AnnotatedElement java.beans.PropertyDescriptor javax.annotation.Resource java.lang.String java.lang.Class
StackMap stack: org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement
6: iconst_1
StackMap locals: org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement org.springframework.context.annotation.CommonAnnotationBeanPostProcessor java.lang.reflect.Member java.lang.reflect.AnnotatedElement java.beans.PropertyDescriptor javax.annotation.Resource java.lang.String java.lang.Class
StackMap stack: org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement int
7: putfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.isDefaultName:Z
8: aload 0
getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.isDefaultName:Z
ifeq 13
9: aload 0
getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.member:Ljava/lang/reflect/Member;
invokeinterface java.lang.reflect.Member.getName:()Ljava/lang/String;
astore 6
10: aload 0
getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.member:Ljava/lang/reflect/Member;
instanceof java.lang.reflect.Method
ifeq 15
aload 6
ldc "set"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 15
aload 6
invokevirtual java.lang.String.length:()I
iconst_3
if_icmple 15
11: aload 6
iconst_3
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokestatic java.beans.Introspector.decapitalize:(Ljava/lang/String;)Ljava/lang/String;
astore 6
12: goto 15
13: StackMap locals:
StackMap stack:
aload 1
getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.embeddedValueResolver:Lorg/springframework/util/StringValueResolver;
ifnull 15
14: aload 1
getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.embeddedValueResolver:Lorg/springframework/util/StringValueResolver;
aload 6
invokeinterface org.springframework.util.StringValueResolver.resolveStringValue:(Ljava/lang/String;)Ljava/lang/String;
astore 6
15: StackMap locals:
StackMap stack:
ldc Ljava/lang/Object;
aload 7
if_acmpeq 18
16: aload 0
aload 7
invokevirtual org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.checkResourceType:(Ljava/lang/Class;)V
17: goto 19
18: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceType:()Ljava/lang/Class;
astore 7
19: StackMap locals:
StackMap stack:
aload 0
aload 6
ifnull 20
aload 6
goto 21
StackMap locals:
StackMap stack: org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement
20: ldc ""
StackMap locals: org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement org.springframework.context.annotation.CommonAnnotationBeanPostProcessor java.lang.reflect.Member java.lang.reflect.AnnotatedElement java.beans.PropertyDescriptor javax.annotation.Resource java.lang.String java.lang.Class
StackMap stack: org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement java.lang.String
21: putfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.name:Ljava/lang/String;
22: aload 0
aload 7
putfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.lookupType:Ljava/lang/Class;
23: aload 5
invokeinterface javax.annotation.Resource.lookup:()Ljava/lang/String;
astore 8
start local 8 24: aload 0
aload 8
invokestatic org.springframework.util.StringUtils.hasLength:(Ljava/lang/String;)Z
ifeq 25
aload 8
goto 26
StackMap locals: org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement org.springframework.context.annotation.CommonAnnotationBeanPostProcessor java.lang.reflect.Member java.lang.reflect.AnnotatedElement java.beans.PropertyDescriptor javax.annotation.Resource java.lang.String java.lang.Class java.lang.String
StackMap stack: org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement
25: aload 5
invokeinterface javax.annotation.Resource.mappedName:()Ljava/lang/String;
StackMap locals: org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement org.springframework.context.annotation.CommonAnnotationBeanPostProcessor java.lang.reflect.Member java.lang.reflect.AnnotatedElement java.beans.PropertyDescriptor javax.annotation.Resource java.lang.String java.lang.Class java.lang.String
StackMap stack: org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement java.lang.String
26: putfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.mappedName:Ljava/lang/String;
27: aload 3
ldc Lorg/springframework/context/annotation/Lazy;
invokeinterface java.lang.reflect.AnnotatedElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast org.springframework.context.annotation.Lazy
astore 9
start local 9 28: aload 0
aload 9
ifnull 29
aload 9
invokeinterface org.springframework.context.annotation.Lazy.value:()Z
ifeq 29
iconst_1
goto 30
StackMap locals: org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement org.springframework.context.annotation.CommonAnnotationBeanPostProcessor java.lang.reflect.Member java.lang.reflect.AnnotatedElement java.beans.PropertyDescriptor javax.annotation.Resource java.lang.String java.lang.Class java.lang.String org.springframework.context.annotation.Lazy
StackMap stack: org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement
29: iconst_0
StackMap locals: org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement org.springframework.context.annotation.CommonAnnotationBeanPostProcessor java.lang.reflect.Member java.lang.reflect.AnnotatedElement java.beans.PropertyDescriptor javax.annotation.Resource java.lang.String java.lang.Class java.lang.String org.springframework.context.annotation.Lazy
StackMap stack: org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement int
30: putfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.lazyLookup:Z
31: return
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lorg/springframework/context/annotation/CommonAnnotationBeanPostProcessor$ResourceElement;
0 32 2 member Ljava/lang/reflect/Member;
0 32 3 ae Ljava/lang/reflect/AnnotatedElement;
0 32 4 pd Ljava/beans/PropertyDescriptor;
3 32 5 resource Ljavax/annotation/Resource;
4 32 6 resourceName Ljava/lang/String;
5 32 7 resourceType Ljava/lang/Class<*>;
24 32 8 lookupValue Ljava/lang/String;
28 32 9 lazy Lorg/springframework/context/annotation/Lazy;
RuntimeVisibleParameterAnnotations:
0:
1:
2:
org.springframework.lang.Nullable()
3:
MethodParameters:
Name Flags
this$0 final
member
ae
pd
protected java.lang.Object getResourceToInject(java.lang.Object, java.lang.String);
descriptor: (Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.lazyLookup:Z
ifeq 1
aload 0
getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.this$0:Lorg/springframework/context/annotation/CommonAnnotationBeanPostProcessor;
aload 0
aload 2
invokevirtual org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.buildLazyResourceProxy:(Lorg/springframework/context/annotation/CommonAnnotationBeanPostProcessor$LookupElement;Ljava/lang/String;)Ljava/lang/Object;
goto 2
1: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.this$0:Lorg/springframework/context/annotation/CommonAnnotationBeanPostProcessor;
aload 0
aload 2
invokevirtual org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource:(Lorg/springframework/context/annotation/CommonAnnotationBeanPostProcessor$LookupElement;Ljava/lang/String;)Ljava/lang/Object;
2: StackMap locals:
StackMap stack: java.lang.Object
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/context/annotation/CommonAnnotationBeanPostProcessor$ResourceElement;
0 3 1 target Ljava/lang/Object;
0 3 2 requestingBeanName Ljava/lang/String;
RuntimeVisibleParameterAnnotations:
0:
1:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
target
requestingBeanName
}
SourceFile: "CommonAnnotationBeanPostProcessor.java"
NestHost: org.springframework.context.annotation.CommonAnnotationBeanPostProcessor
InnerClasses:
protected abstract LookupElement = org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$LookupElement of org.springframework.context.annotation.CommonAnnotationBeanPostProcessor
private ResourceElement = org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement of org.springframework.context.annotation.CommonAnnotationBeanPostProcessor