class org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement 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$EjbRefElement
  super_class: org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$LookupElement
{
  private final java.lang.String beanName;
    descriptor: Ljava/lang/String;
    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=9, args_size=5
        start local 0 // org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement 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 734
            aload 0 /* this */
            aload 1
            putfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement.this$0:Lorg/springframework/context/annotation/CommonAnnotationBeanPostProcessor;
         1: .line 735
            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 736
            aload 3 /* ae */
            ldc Ljavax/ejb/EJB;
            invokeinterface java.lang.reflect.AnnotatedElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast javax.ejb.EJB
            astore 5 /* resource */
        start local 5 // javax.ejb.EJB resource
         3: .line 737
            aload 5 /* resource */
            invokeinterface javax.ejb.EJB.beanName:()Ljava/lang/String;
            astore 6 /* resourceBeanName */
        start local 6 // java.lang.String resourceBeanName
         4: .line 738
            aload 5 /* resource */
            invokeinterface javax.ejb.EJB.name:()Ljava/lang/String;
            astore 7 /* resourceName */
        start local 7 // java.lang.String resourceName
         5: .line 739
            aload 0 /* this */
            aload 7 /* resourceName */
            invokestatic org.springframework.util.StringUtils.hasLength:(Ljava/lang/String;)Z
            ifeq 6
            iconst_0
            goto 7
      StackMap locals: org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement org.springframework.context.annotation.CommonAnnotationBeanPostProcessor java.lang.reflect.Member java.lang.reflect.AnnotatedElement java.beans.PropertyDescriptor javax.ejb.EJB java.lang.String java.lang.String
      StackMap stack: org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement
         6: iconst_1
      StackMap locals: org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement org.springframework.context.annotation.CommonAnnotationBeanPostProcessor java.lang.reflect.Member java.lang.reflect.AnnotatedElement java.beans.PropertyDescriptor javax.ejb.EJB java.lang.String java.lang.String
      StackMap stack: org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement int
         7: putfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement.isDefaultName:Z
         8: .line 740
            aload 0 /* this */
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement.isDefaultName:Z
            ifeq 12
         9: .line 741
            aload 0 /* this */
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement.member:Ljava/lang/reflect/Member;
            invokeinterface java.lang.reflect.Member.getName:()Ljava/lang/String;
            astore 7 /* resourceName */
        10: .line 742
            aload 0 /* this */
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement.member:Ljava/lang/reflect/Member;
            instanceof java.lang.reflect.Method
            ifeq 12
            aload 7 /* resourceName */
            ldc "set"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 12
            aload 7 /* resourceName */
            invokevirtual java.lang.String.length:()I
            iconst_3
            if_icmple 12
        11: .line 743
            aload 7 /* resourceName */
            iconst_3
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokestatic java.beans.Introspector.decapitalize:(Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* resourceName */
        12: .line 746
      StackMap locals:
      StackMap stack:
            aload 5 /* resource */
            invokeinterface javax.ejb.EJB.beanInterface:()Ljava/lang/Class;
            astore 8 /* resourceType */
        start local 8 // java.lang.Class resourceType
        13: .line 747
            ldc Ljava/lang/Object;
            aload 8 /* resourceType */
            if_acmpeq 16
        14: .line 748
            aload 0 /* this */
            aload 8 /* resourceType */
            invokevirtual org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement.checkResourceType:(Ljava/lang/Class;)V
        15: .line 749
            goto 17
        16: .line 752
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement.getResourceType:()Ljava/lang/Class;
            astore 8 /* resourceType */
        17: .line 754
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* resourceBeanName */
            putfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement.beanName:Ljava/lang/String;
        18: .line 755
            aload 0 /* this */
            aload 7 /* resourceName */
            putfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement.name:Ljava/lang/String;
        19: .line 756
            aload 0 /* this */
            aload 8 /* resourceType */
            putfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement.lookupType:Ljava/lang/Class;
        20: .line 757
            aload 0 /* this */
            aload 5 /* resource */
            invokeinterface javax.ejb.EJB.mappedName:()Ljava/lang/String;
            putfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement.mappedName:Ljava/lang/String;
        21: .line 758
            return
        end local 8 // java.lang.Class resourceType
        end local 7 // java.lang.String resourceName
        end local 6 // java.lang.String resourceBeanName
        end local 5 // javax.ejb.EJB 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$EjbRefElement this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   22     0              this  Lorg/springframework/context/annotation/CommonAnnotationBeanPostProcessor$EjbRefElement;
            0   22     2            member  Ljava/lang/reflect/Member;
            0   22     3                ae  Ljava/lang/reflect/AnnotatedElement;
            0   22     4                pd  Ljava/beans/PropertyDescriptor;
            3   22     5          resource  Ljavax/ejb/EJB;
            4   22     6  resourceBeanName  Ljava/lang/String;
            5   22     7      resourceName  Ljava/lang/String;
           13   22     8      resourceType  Ljava/lang/Class<*>;
    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=4, locals=4, args_size=3
        start local 0 // org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement this
        start local 1 // java.lang.Object target
        start local 2 // java.lang.String requestingBeanName
         0: .line 762
            aload 0 /* this */
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement.beanName:Ljava/lang/String;
            invokestatic org.springframework.util.StringUtils.hasLength:(Ljava/lang/String;)Z
            ifeq 10
         1: .line 763
            aload 0 /* this */
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement.this$0:Lorg/springframework/context/annotation/CommonAnnotationBeanPostProcessor;
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.beanFactory:Lorg/springframework/beans/factory/BeanFactory;
            ifnull 6
            aload 0 /* this */
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement.this$0:Lorg/springframework/context/annotation/CommonAnnotationBeanPostProcessor;
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.beanFactory:Lorg/springframework/beans/factory/BeanFactory;
            aload 0 /* this */
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement.beanName:Ljava/lang/String;
            invokeinterface org.springframework.beans.factory.BeanFactory.containsBean:(Ljava/lang/String;)Z
            ifeq 6
         2: .line 765
            aload 0 /* this */
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement.this$0:Lorg/springframework/context/annotation/CommonAnnotationBeanPostProcessor;
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.beanFactory:Lorg/springframework/beans/factory/BeanFactory;
            aload 0 /* this */
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement.beanName:Ljava/lang/String;
            aload 0 /* this */
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement.lookupType:Ljava/lang/Class;
            invokeinterface org.springframework.beans.factory.BeanFactory.getBean:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
            astore 3 /* bean */
        start local 3 // java.lang.Object bean
         3: .line 766
            aload 2 /* requestingBeanName */
            ifnull 5
            aload 0 /* this */
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement.this$0:Lorg/springframework/context/annotation/CommonAnnotationBeanPostProcessor;
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.beanFactory:Lorg/springframework/beans/factory/BeanFactory;
            instanceof org.springframework.beans.factory.config.ConfigurableBeanFactory
            ifeq 5
         4: .line 767
            aload 0 /* this */
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement.this$0:Lorg/springframework/context/annotation/CommonAnnotationBeanPostProcessor;
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.beanFactory:Lorg/springframework/beans/factory/BeanFactory;
            checkcast org.springframework.beans.factory.config.ConfigurableBeanFactory
            aload 0 /* this */
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement.beanName:Ljava/lang/String;
            aload 2 /* requestingBeanName */
            invokeinterface org.springframework.beans.factory.config.ConfigurableBeanFactory.registerDependentBean:(Ljava/lang/String;Ljava/lang/String;)V
         5: .line 769
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* bean */
            areturn
        end local 3 // java.lang.Object bean
         6: .line 771
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement.isDefaultName:Z
            ifeq 10
            aload 0 /* this */
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement.mappedName:Ljava/lang/String;
            invokestatic org.springframework.util.StringUtils.hasLength:(Ljava/lang/String;)Z
            ifne 10
         7: .line 772
            new org.springframework.beans.factory.NoSuchBeanDefinitionException
            dup
            aload 0 /* this */
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement.beanName:Ljava/lang/String;
         8: .line 773
            ldc "Cannot resolve 'beanName' in local BeanFactory. Consider specifying a general 'name' value instead."
         9: .line 772
            invokespecial org.springframework.beans.factory.NoSuchBeanDefinitionException.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            athrow
        10: .line 777
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement.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;
            areturn
        end local 2 // java.lang.String requestingBeanName
        end local 1 // java.lang.Object target
        end local 0 // org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   11     0                this  Lorg/springframework/context/annotation/CommonAnnotationBeanPostProcessor$EjbRefElement;
            0   11     1              target  Ljava/lang/Object;
            0   11     2  requestingBeanName  Ljava/lang/String;
            3    6     3                bean  Ljava/lang/Object;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
    MethodParameters:
                    Name  Flags
      target              
      requestingBeanName  
}
SourceFile: "CommonAnnotationBeanPostProcessor.java"
NestHost: org.springframework.context.annotation.CommonAnnotationBeanPostProcessor
InnerClasses:
  private EjbRefElement = org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$EjbRefElement of org.springframework.context.annotation.CommonAnnotationBeanPostProcessor
  protected abstract LookupElement = org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$LookupElement of org.springframework.context.annotation.CommonAnnotationBeanPostProcessor