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 // org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement this
        start local 2 // java.lang.reflect.Member member
        start local 3 // java.lang.reflect.AnnotatedElement ae
        start local 4 // java.beans.PropertyDescriptor pd
         0: .line 603
            aload 0 /* this */
            aload 1
            putfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.this$0:Lorg/springframework/context/annotation/CommonAnnotationBeanPostProcessor;
         1: .line 604
            aload 0 /* this */
            aload 1
            aload 2 /* member */
            aload 4 /* pd */
            invokespecial org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$LookupElement.<init>:(Lorg/springframework/context/annotation/CommonAnnotationBeanPostProcessor;Ljava/lang/reflect/Member;Ljava/beans/PropertyDescriptor;)V
         2: .line 605
            aload 3 /* ae */
            ldc Ljavax/annotation/Resource;
            invokeinterface java.lang.reflect.AnnotatedElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast javax.annotation.Resource
            astore 5 /* resource */
        start local 5 // javax.annotation.Resource resource
         3: .line 606
            aload 5 /* resource */
            invokeinterface javax.annotation.Resource.name:()Ljava/lang/String;
            astore 6 /* resourceName */
        start local 6 // java.lang.String resourceName
         4: .line 607
            aload 5 /* resource */
            invokeinterface javax.annotation.Resource.type:()Ljava/lang/Class;
            astore 7 /* resourceType */
        start local 7 // java.lang.Class resourceType
         5: .line 608
            aload 0 /* this */
            aload 6 /* resourceName */
            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: .line 609
            aload 0 /* this */
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.isDefaultName:Z
            ifeq 13
         9: .line 610
            aload 0 /* this */
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.member:Ljava/lang/reflect/Member;
            invokeinterface java.lang.reflect.Member.getName:()Ljava/lang/String;
            astore 6 /* resourceName */
        10: .line 611
            aload 0 /* this */
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.member:Ljava/lang/reflect/Member;
            instanceof java.lang.reflect.Method
            ifeq 15
            aload 6 /* resourceName */
            ldc "set"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 15
            aload 6 /* resourceName */
            invokevirtual java.lang.String.length:()I
            iconst_3
            if_icmple 15
        11: .line 612
            aload 6 /* resourceName */
            iconst_3
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokestatic java.beans.Introspector.decapitalize:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* resourceName */
        12: .line 614
            goto 15
        13: .line 615
      StackMap locals:
      StackMap stack:
            aload 1
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.embeddedValueResolver:Lorg/springframework/util/StringValueResolver;
            ifnull 15
        14: .line 616
            aload 1
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.embeddedValueResolver:Lorg/springframework/util/StringValueResolver;
            aload 6 /* resourceName */
            invokeinterface org.springframework.util.StringValueResolver.resolveStringValue:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* resourceName */
        15: .line 618
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Object;
            aload 7 /* resourceType */
            if_acmpeq 18
        16: .line 619
            aload 0 /* this */
            aload 7 /* resourceType */
            invokevirtual org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.checkResourceType:(Ljava/lang/Class;)V
        17: .line 620
            goto 19
        18: .line 623
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceType:()Ljava/lang/Class;
            astore 7 /* resourceType */
        19: .line 625
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* resourceName */
            ifnull 20
            aload 6 /* resourceName */
            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: .line 626
            aload 0 /* this */
            aload 7 /* resourceType */
            putfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.lookupType:Ljava/lang/Class;
        23: .line 627
            aload 5 /* resource */
            invokeinterface javax.annotation.Resource.lookup:()Ljava/lang/String;
            astore 8 /* lookupValue */
        start local 8 // java.lang.String lookupValue
        24: .line 628
            aload 0 /* this */
            aload 8 /* lookupValue */
            invokestatic org.springframework.util.StringUtils.hasLength:(Ljava/lang/String;)Z
            ifeq 25
            aload 8 /* lookupValue */
            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 /* resource */
            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: .line 629
            aload 3 /* ae */
            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 /* lazy */
        start local 9 // org.springframework.context.annotation.Lazy lazy
        28: .line 630
            aload 0 /* this */
            aload 9 /* lazy */
            ifnull 29
            aload 9 /* lazy */
            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: .line 631
            return
        end local 9 // org.springframework.context.annotation.Lazy lazy
        end local 8 // java.lang.String lookupValue
        end local 7 // java.lang.Class resourceType
        end local 6 // java.lang.String resourceName
        end local 5 // javax.annotation.Resource resource
        end local 4 // java.beans.PropertyDescriptor pd
        end local 3 // java.lang.reflect.AnnotatedElement ae
        end local 2 // java.lang.reflect.Member member
        end local 0 // org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement this
      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 // org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement this
        start local 1 // java.lang.Object target
        start local 2 // java.lang.String requestingBeanName
         0: .line 635
            aload 0 /* this */
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.lazyLookup:Z
            ifeq 1
            aload 0 /* this */
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.this$0:Lorg/springframework/context/annotation/CommonAnnotationBeanPostProcessor;
            aload 0 /* this */
            aload 2 /* requestingBeanName */
            invokevirtual org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.buildLazyResourceProxy:(Lorg/springframework/context/annotation/CommonAnnotationBeanPostProcessor$LookupElement;Ljava/lang/String;)Ljava/lang/Object;
            goto 2
         1: .line 636
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.this$0:Lorg/springframework/context/annotation/CommonAnnotationBeanPostProcessor;
            aload 0 /* this */
            aload 2 /* requestingBeanName */
            invokevirtual org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource:(Lorg/springframework/context/annotation/CommonAnnotationBeanPostProcessor$LookupElement;Ljava/lang/String;)Ljava/lang/Object;
         2: .line 635
      StackMap locals:
      StackMap stack: java.lang.Object
            areturn
        end local 2 // java.lang.String requestingBeanName
        end local 1 // java.lang.Object target
        end local 0 // org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement this
      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