public class org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver extends org.springframework.beans.factory.support.GenericTypeAwareAutowireCandidateResolver
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver
super_class: org.springframework.beans.factory.support.GenericTypeAwareAutowireCandidateResolver
{
private final java.util.Set<java.lang.Class<? extends java.lang.annotation.Annotation>> qualifierTypes;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;>;
private java.lang.Class<? extends java.lang.annotation.Annotation> valueAnnotationType;
descriptor: Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.springframework.beans.factory.support.GenericTypeAwareAutowireCandidateResolver.<init>:()V
1: aload 0
new java.util.LinkedHashSet
dup
iconst_2
invokespecial java.util.LinkedHashSet.<init>:(I)V
putfield org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.qualifierTypes:Ljava/util/Set;
2: aload 0
ldc Lorg/springframework/beans/factory/annotation/Value;
putfield org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.valueAnnotationType:Ljava/lang/Class;
3: aload 0
getfield org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.qualifierTypes:Ljava/util/Set;
ldc Lorg/springframework/beans/factory/annotation/Qualifier;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
4: aload 0
getfield org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.qualifierTypes:Ljava/util/Set;
ldc "javax.inject.Qualifier"
5: ldc Lorg/springframework/beans/factory/annotation/QualifierAnnotationAutowireCandidateResolver;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
6: invokestatic org.springframework.util.ClassUtils.forName:(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Class;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
7: goto 9
8: StackMap locals: org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver
StackMap stack: java.lang.ClassNotFoundException
pop
9: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/springframework/beans/factory/annotation/QualifierAnnotationAutowireCandidateResolver;
Exception table:
from to target type
4 7 8 Class java.lang.ClassNotFoundException
public void <init>(java.lang.Class<? extends java.lang.annotation.Annotation>);
descriptor: (Ljava/lang/Class;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial org.springframework.beans.factory.support.GenericTypeAwareAutowireCandidateResolver.<init>:()V
1: aload 0
new java.util.LinkedHashSet
dup
iconst_2
invokespecial java.util.LinkedHashSet.<init>:(I)V
putfield org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.qualifierTypes:Ljava/util/Set;
2: aload 0
ldc Lorg/springframework/beans/factory/annotation/Value;
putfield org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.valueAnnotationType:Ljava/lang/Class;
3: aload 1
ldc "'qualifierType' must not be null"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
4: aload 0
getfield org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.qualifierTypes:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/beans/factory/annotation/QualifierAnnotationAutowireCandidateResolver;
0 6 1 qualifierType Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
Signature: (Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;)V
MethodParameters:
Name Flags
qualifierType
public void <init>(java.util.Set<java.lang.Class<? extends java.lang.annotation.Annotation>>);
descriptor: (Ljava/util/Set;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial org.springframework.beans.factory.support.GenericTypeAwareAutowireCandidateResolver.<init>:()V
1: aload 0
new java.util.LinkedHashSet
dup
iconst_2
invokespecial java.util.LinkedHashSet.<init>:(I)V
putfield org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.qualifierTypes:Ljava/util/Set;
2: aload 0
ldc Lorg/springframework/beans/factory/annotation/Value;
putfield org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.valueAnnotationType:Ljava/lang/Class;
3: aload 1
ldc "'qualifierTypes' must not be null"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
4: aload 0
getfield org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.qualifierTypes:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
pop
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/beans/factory/annotation/QualifierAnnotationAutowireCandidateResolver;
0 6 1 qualifierTypes Ljava/util/Set<Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;>;
Signature: (Ljava/util/Set<Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;>;)V
MethodParameters:
Name Flags
qualifierTypes
public void addQualifierType(java.lang.Class<? extends java.lang.annotation.Annotation>);
descriptor: (Ljava/lang/Class;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.qualifierTypes:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/beans/factory/annotation/QualifierAnnotationAutowireCandidateResolver;
0 2 1 qualifierType Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
Signature: (Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;)V
MethodParameters:
Name Flags
qualifierType
public void setValueAnnotationType(java.lang.Class<? extends java.lang.annotation.Annotation>);
descriptor: (Ljava/lang/Class;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.valueAnnotationType:Ljava/lang/Class;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/beans/factory/annotation/QualifierAnnotationAutowireCandidateResolver;
0 2 1 valueAnnotationType Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
Signature: (Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;)V
MethodParameters:
Name Flags
valueAnnotationType
public boolean isAutowireCandidate(org.springframework.beans.factory.config.BeanDefinitionHolder, org.springframework.beans.factory.config.DependencyDescriptor);
descriptor: (Lorg/springframework/beans/factory/config/BeanDefinitionHolder;Lorg/springframework/beans/factory/config/DependencyDescriptor;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokespecial org.springframework.beans.factory.support.GenericTypeAwareAutowireCandidateResolver.isAutowireCandidate:(Lorg/springframework/beans/factory/config/BeanDefinitionHolder;Lorg/springframework/beans/factory/config/DependencyDescriptor;)Z
istore 3
start local 3 1: iload 3
ifeq 9
2: aload 0
aload 1
aload 2
invokevirtual org.springframework.beans.factory.config.DependencyDescriptor.getAnnotations:()[Ljava/lang/annotation/Annotation;
invokevirtual org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.checkQualifiers:(Lorg/springframework/beans/factory/config/BeanDefinitionHolder;[Ljava/lang/annotation/Annotation;)Z
istore 3
3: iload 3
ifeq 9
4: aload 2
invokevirtual org.springframework.beans.factory.config.DependencyDescriptor.getMethodParameter:()Lorg/springframework/core/MethodParameter;
astore 4
start local 4 5: aload 4
ifnull 9
6: aload 4
invokevirtual org.springframework.core.MethodParameter.getMethod:()Ljava/lang/reflect/Method;
astore 5
start local 5 7: aload 5
ifnull 8
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
aload 5
invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
if_acmpne 9
8: StackMap locals: int org.springframework.core.MethodParameter java.lang.reflect.Method
StackMap stack:
aload 0
aload 1
aload 4
invokevirtual org.springframework.core.MethodParameter.getMethodAnnotations:()[Ljava/lang/annotation/Annotation;
invokevirtual org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.checkQualifiers:(Lorg/springframework/beans/factory/config/BeanDefinitionHolder;[Ljava/lang/annotation/Annotation;)Z
istore 3
end local 5 end local 4 9: StackMap locals:
StackMap stack:
iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/springframework/beans/factory/annotation/QualifierAnnotationAutowireCandidateResolver;
0 10 1 bdHolder Lorg/springframework/beans/factory/config/BeanDefinitionHolder;
0 10 2 descriptor Lorg/springframework/beans/factory/config/DependencyDescriptor;
1 10 3 match Z
5 9 4 methodParam Lorg/springframework/core/MethodParameter;
7 9 5 method Ljava/lang/reflect/Method;
MethodParameters:
Name Flags
bdHolder
descriptor
protected boolean checkQualifiers(org.springframework.beans.factory.config.BeanDefinitionHolder, java.lang.annotation.Annotation[]);
descriptor: (Lorg/springframework/beans/factory/config/BeanDefinitionHolder;[Ljava/lang/annotation/Annotation;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=17, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokestatic org.springframework.util.ObjectUtils.isEmpty:([Ljava/lang/Object;)Z
ifeq 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
new org.springframework.beans.SimpleTypeConverter
dup
invokespecial org.springframework.beans.SimpleTypeConverter.<init>:()V
astore 3
start local 3 3: aload 2
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 28
StackMap locals: org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver org.springframework.beans.factory.config.BeanDefinitionHolder java.lang.annotation.Annotation[] org.springframework.beans.SimpleTypeConverter top int int java.lang.annotation.Annotation[]
StackMap stack:
4: aload 7
iload 5
aaload
astore 4
start local 4 5: aload 4
invokeinterface java.lang.annotation.Annotation.annotationType:()Ljava/lang/Class;
astore 8
start local 8 6: iconst_1
istore 9
start local 9 7: iconst_0
istore 10
start local 10 8: aload 0
aload 8
invokevirtual org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.isQualifier:(Ljava/lang/Class;)Z
ifeq 13
9: aload 0
aload 1
aload 4
aload 3
invokevirtual org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.checkQualifier:(Lorg/springframework/beans/factory/config/BeanDefinitionHolder;Ljava/lang/annotation/Annotation;Lorg/springframework/beans/TypeConverter;)Z
ifne 12
10: iconst_1
istore 10
11: goto 13
12: StackMap locals: org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver org.springframework.beans.factory.config.BeanDefinitionHolder java.lang.annotation.Annotation[] org.springframework.beans.SimpleTypeConverter java.lang.annotation.Annotation int int java.lang.annotation.Annotation[] java.lang.Class int int
StackMap stack:
iconst_0
istore 9
13: StackMap locals:
StackMap stack:
iload 9
ifeq 27
14: iconst_0
istore 11
start local 11 15: aload 8
invokevirtual java.lang.Class.getAnnotations:()[Ljava/lang/annotation/Annotation;
dup
astore 15
arraylength
istore 14
iconst_0
istore 13
goto 24
StackMap locals: org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver org.springframework.beans.factory.config.BeanDefinitionHolder java.lang.annotation.Annotation[] org.springframework.beans.SimpleTypeConverter java.lang.annotation.Annotation int int java.lang.annotation.Annotation[] java.lang.Class int int int top int int java.lang.annotation.Annotation[]
StackMap stack:
16: aload 15
iload 13
aaload
astore 12
start local 12 17: aload 12
invokeinterface java.lang.annotation.Annotation.annotationType:()Ljava/lang/Class;
astore 16
start local 16 18: aload 0
aload 16
invokevirtual org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.isQualifier:(Ljava/lang/Class;)Z
ifeq 23
19: iconst_1
istore 11
20: iload 10
ifeq 21
aload 12
invokestatic org.springframework.core.annotation.AnnotationUtils.getValue:(Ljava/lang/annotation/Annotation;)Ljava/lang/Object;
invokestatic org.springframework.util.StringUtils.isEmpty:(Ljava/lang/Object;)Z
ifne 22
21: StackMap locals: org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver org.springframework.beans.factory.config.BeanDefinitionHolder java.lang.annotation.Annotation[] org.springframework.beans.SimpleTypeConverter java.lang.annotation.Annotation int int java.lang.annotation.Annotation[] java.lang.Class int int int java.lang.annotation.Annotation int int java.lang.annotation.Annotation[] java.lang.Class
StackMap stack:
aload 0
aload 1
aload 12
aload 3
invokevirtual org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.checkQualifier:(Lorg/springframework/beans/factory/config/BeanDefinitionHolder;Ljava/lang/annotation/Annotation;Lorg/springframework/beans/TypeConverter;)Z
ifne 23
22: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 16 end local 12 23: StackMap locals: org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver org.springframework.beans.factory.config.BeanDefinitionHolder java.lang.annotation.Annotation[] org.springframework.beans.SimpleTypeConverter java.lang.annotation.Annotation int int java.lang.annotation.Annotation[] java.lang.Class int int int top int int java.lang.annotation.Annotation[]
StackMap stack:
iinc 13 1
StackMap locals:
StackMap stack:
24: iload 13
iload 14
if_icmplt 16
25: iload 10
ifeq 27
iload 11
ifne 27
26: iconst_0
ireturn
end local 11 end local 10 end local 9 end local 8 end local 4 27: StackMap locals: org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver org.springframework.beans.factory.config.BeanDefinitionHolder java.lang.annotation.Annotation[] org.springframework.beans.SimpleTypeConverter top int int java.lang.annotation.Annotation[]
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
28: iload 5
iload 6
if_icmplt 4
29: iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lorg/springframework/beans/factory/annotation/QualifierAnnotationAutowireCandidateResolver;
0 30 1 bdHolder Lorg/springframework/beans/factory/config/BeanDefinitionHolder;
0 30 2 annotationsToSearch [Ljava/lang/annotation/Annotation;
3 30 3 typeConverter Lorg/springframework/beans/SimpleTypeConverter;
5 27 4 annotation Ljava/lang/annotation/Annotation;
6 27 8 type Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
7 27 9 checkMeta Z
8 27 10 fallbackToMeta Z
15 27 11 foundMeta Z
17 23 12 metaAnn Ljava/lang/annotation/Annotation;
18 23 16 metaType Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
MethodParameters:
Name Flags
bdHolder
annotationsToSearch
protected boolean isQualifier(java.lang.Class<? extends java.lang.annotation.Annotation>);
descriptor: (Ljava/lang/Class;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.qualifierTypes:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver java.lang.Class top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Class
astore 2
start local 2 2: aload 1
aload 2
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 3
aload 1
aload 2
invokevirtual java.lang.Class.isAnnotationPresent:(Ljava/lang/Class;)Z
ifeq 4
3: StackMap locals: org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver java.lang.Class java.lang.Class java.util.Iterator
StackMap stack:
iconst_1
ireturn
end local 2 4: StackMap locals: org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver java.lang.Class top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
5: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/beans/factory/annotation/QualifierAnnotationAutowireCandidateResolver;
0 6 1 annotationType Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
2 4 2 qualifierType Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
Signature: (Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;)Z
MethodParameters:
Name Flags
annotationType
protected boolean checkQualifier(org.springframework.beans.factory.config.BeanDefinitionHolder, java.lang.annotation.Annotation, org.springframework.beans.TypeConverter);
descriptor: (Lorg/springframework/beans/factory/config/BeanDefinitionHolder;Ljava/lang/annotation/Annotation;Lorg/springframework/beans/TypeConverter;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=13, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokeinterface java.lang.annotation.Annotation.annotationType:()Ljava/lang/Class;
astore 4
start local 4 1: aload 1
invokevirtual org.springframework.beans.factory.config.BeanDefinitionHolder.getBeanDefinition:()Lorg/springframework/beans/factory/config/BeanDefinition;
checkcast org.springframework.beans.factory.support.RootBeanDefinition
astore 5
start local 5 2: aload 5
aload 4
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getQualifier:(Ljava/lang/String;)Lorg/springframework/beans/factory/support/AutowireCandidateQualifier;
astore 6
start local 6 3: aload 6
ifnonnull 5
4: aload 5
aload 4
invokestatic org.springframework.util.ClassUtils.getShortName:(Ljava/lang/Class;)Ljava/lang/String;
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getQualifier:(Ljava/lang/String;)Lorg/springframework/beans/factory/support/AutowireCandidateQualifier;
astore 6
5: StackMap locals: java.lang.Class org.springframework.beans.factory.support.RootBeanDefinition org.springframework.beans.factory.support.AutowireCandidateQualifier
StackMap stack:
aload 6
ifnonnull 24
6: aload 0
aload 5
aload 4
invokevirtual org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.getQualifiedElementAnnotation:(Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
astore 7
start local 7 7: aload 7
ifnonnull 9
8: aload 0
aload 5
aload 4
invokevirtual org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.getFactoryMethodAnnotation:(Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
astore 7
9: StackMap locals: java.lang.annotation.Annotation
StackMap stack:
aload 7
ifnonnull 13
10: aload 0
aload 5
invokevirtual org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.getResolvedDecoratedDefinition:(Lorg/springframework/beans/factory/support/RootBeanDefinition;)Lorg/springframework/beans/factory/support/RootBeanDefinition;
astore 8
start local 8 11: aload 8
ifnull 13
12: aload 0
aload 8
aload 4
invokevirtual org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.getFactoryMethodAnnotation:(Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
astore 7
end local 8 13: StackMap locals:
StackMap stack:
aload 7
ifnonnull 22
14: aload 0
invokevirtual org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.getBeanFactory:()Lorg/springframework/beans/factory/BeanFactory;
ifnull 20
15: aload 0
invokevirtual org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.getBeanFactory:()Lorg/springframework/beans/factory/BeanFactory;
aload 1
invokevirtual org.springframework.beans.factory.config.BeanDefinitionHolder.getBeanName:()Ljava/lang/String;
invokeinterface org.springframework.beans.factory.BeanFactory.getType:(Ljava/lang/String;)Ljava/lang/Class;
astore 8
start local 8 16: aload 8
ifnull 20
17: aload 8
invokestatic org.springframework.util.ClassUtils.getUserClass:(Ljava/lang/Class;)Ljava/lang/Class;
aload 4
invokestatic org.springframework.core.annotation.AnnotationUtils.getAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
astore 7
end local 8 18: goto 20
19: StackMap locals:
StackMap stack: org.springframework.beans.factory.NoSuchBeanDefinitionException
pop
20: StackMap locals:
StackMap stack:
aload 7
ifnonnull 22
aload 5
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.hasBeanClass:()Z
ifeq 22
21: aload 5
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getBeanClass:()Ljava/lang/Class;
invokestatic org.springframework.util.ClassUtils.getUserClass:(Ljava/lang/Class;)Ljava/lang/Class;
aload 4
invokestatic org.springframework.core.annotation.AnnotationUtils.getAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
astore 7
22: StackMap locals:
StackMap stack:
aload 7
ifnull 24
aload 7
aload 2
invokeinterface java.lang.annotation.Annotation.equals:(Ljava/lang/Object;)Z
ifeq 24
23: iconst_1
ireturn
end local 7 24: StackMap locals:
StackMap stack:
aload 2
invokestatic org.springframework.core.annotation.AnnotationUtils.getAnnotationAttributes:(Ljava/lang/annotation/Annotation;)Ljava/util/Map;
astore 7
start local 7 25: aload 7
invokeinterface java.util.Map.isEmpty:()Z
ifeq 27
aload 6
ifnonnull 27
26: iconst_0
ireturn
27: StackMap locals: java.util.Map
StackMap stack:
aload 7
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 9
goto 45
StackMap locals: org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver org.springframework.beans.factory.config.BeanDefinitionHolder java.lang.annotation.Annotation org.springframework.beans.TypeConverter java.lang.Class org.springframework.beans.factory.support.RootBeanDefinition org.springframework.beans.factory.support.AutowireCandidateQualifier java.util.Map top java.util.Iterator
StackMap stack:
28: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 8
start local 8 29: aload 8
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
astore 10
start local 10 30: aload 8
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
astore 11
start local 11 31: aconst_null
astore 12
start local 12 32: aload 6
ifnull 34
33: aload 6
aload 10
invokevirtual org.springframework.beans.factory.support.AutowireCandidateQualifier.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
astore 12
34: StackMap locals: org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver org.springframework.beans.factory.config.BeanDefinitionHolder java.lang.annotation.Annotation org.springframework.beans.TypeConverter java.lang.Class org.springframework.beans.factory.support.RootBeanDefinition org.springframework.beans.factory.support.AutowireCandidateQualifier java.util.Map java.util.Map$Entry java.util.Iterator java.lang.String java.lang.Object java.lang.Object
StackMap stack:
aload 12
ifnonnull 36
35: aload 5
aload 10
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
astore 12
36: StackMap locals:
StackMap stack:
aload 12
ifnonnull 39
aload 10
ldc "value"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 39
37: aload 11
instanceof java.lang.String
ifeq 39
aload 1
aload 11
checkcast java.lang.String
invokevirtual org.springframework.beans.factory.config.BeanDefinitionHolder.matchesName:(Ljava/lang/String;)Z
ifeq 39
38: goto 45
39: StackMap locals:
StackMap stack:
aload 12
ifnonnull 41
aload 6
ifnull 41
40: aload 2
aload 10
invokestatic org.springframework.core.annotation.AnnotationUtils.getDefaultValue:(Ljava/lang/annotation/Annotation;Ljava/lang/String;)Ljava/lang/Object;
astore 12
41: StackMap locals:
StackMap stack:
aload 12
ifnull 43
42: aload 3
aload 12
aload 11
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokeinterface org.springframework.beans.TypeConverter.convertIfNecessary:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
astore 12
43: StackMap locals:
StackMap stack:
aload 11
aload 12
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 45
44: iconst_0
ireturn
end local 12 end local 11 end local 10 end local 8 45: StackMap locals: org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver org.springframework.beans.factory.config.BeanDefinitionHolder java.lang.annotation.Annotation org.springframework.beans.TypeConverter java.lang.Class org.springframework.beans.factory.support.RootBeanDefinition org.springframework.beans.factory.support.AutowireCandidateQualifier java.util.Map top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 28
46: iconst_1
ireturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 47 0 this Lorg/springframework/beans/factory/annotation/QualifierAnnotationAutowireCandidateResolver;
0 47 1 bdHolder Lorg/springframework/beans/factory/config/BeanDefinitionHolder;
0 47 2 annotation Ljava/lang/annotation/Annotation;
0 47 3 typeConverter Lorg/springframework/beans/TypeConverter;
1 47 4 type Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
2 47 5 bd Lorg/springframework/beans/factory/support/RootBeanDefinition;
3 47 6 qualifier Lorg/springframework/beans/factory/support/AutowireCandidateQualifier;
7 24 7 targetAnnotation Ljava/lang/annotation/Annotation;
11 13 8 dbd Lorg/springframework/beans/factory/support/RootBeanDefinition;
16 18 8 beanType Ljava/lang/Class<*>;
25 47 7 attributes Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
29 45 8 entry Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Object;>;
30 45 10 attributeName Ljava/lang/String;
31 45 11 expectedValue Ljava/lang/Object;
32 45 12 actualValue Ljava/lang/Object;
Exception table:
from to target type
15 18 19 Class org.springframework.beans.factory.NoSuchBeanDefinitionException
MethodParameters:
Name Flags
bdHolder
annotation
typeConverter
protected java.lang.annotation.Annotation getQualifiedElementAnnotation(org.springframework.beans.factory.support.RootBeanDefinition, java.lang.Class<? extends java.lang.annotation.Annotation>);
descriptor: (Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getQualifiedElement:()Ljava/lang/reflect/AnnotatedElement;
astore 3
start local 3 1: aload 3
ifnull 2
aload 3
aload 2
invokestatic org.springframework.core.annotation.AnnotationUtils.getAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
goto 3
StackMap locals: java.lang.reflect.AnnotatedElement
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: java.lang.annotation.Annotation
3: areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/beans/factory/annotation/QualifierAnnotationAutowireCandidateResolver;
0 4 1 bd Lorg/springframework/beans/factory/support/RootBeanDefinition;
0 4 2 type Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
1 4 3 qualifiedElement Ljava/lang/reflect/AnnotatedElement;
Signature: (Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;)Ljava/lang/annotation/Annotation;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
bd
type
protected java.lang.annotation.Annotation getFactoryMethodAnnotation(org.springframework.beans.factory.support.RootBeanDefinition, java.lang.Class<? extends java.lang.annotation.Annotation>);
descriptor: (Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getResolvedFactoryMethod:()Ljava/lang/reflect/Method;
astore 3
start local 3 1: aload 3
ifnull 2
aload 3
aload 2
invokestatic org.springframework.core.annotation.AnnotationUtils.getAnnotation:(Ljava/lang/reflect/Method;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
goto 3
StackMap locals: java.lang.reflect.Method
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: java.lang.annotation.Annotation
3: areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/beans/factory/annotation/QualifierAnnotationAutowireCandidateResolver;
0 4 1 bd Lorg/springframework/beans/factory/support/RootBeanDefinition;
0 4 2 type Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
1 4 3 resolvedFactoryMethod Ljava/lang/reflect/Method;
Signature: (Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;)Ljava/lang/annotation/Annotation;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
bd
type
public boolean isRequired(org.springframework.beans.factory.config.DependencyDescriptor);
descriptor: (Lorg/springframework/beans/factory/config/DependencyDescriptor;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial org.springframework.beans.factory.support.GenericTypeAwareAutowireCandidateResolver.isRequired:(Lorg/springframework/beans/factory/config/DependencyDescriptor;)Z
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
ldc Lorg/springframework/beans/factory/annotation/Autowired;
invokevirtual org.springframework.beans.factory.config.DependencyDescriptor.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast org.springframework.beans.factory.annotation.Autowired
astore 2
start local 2 3: aload 2
ifnull 4
aload 2
invokeinterface org.springframework.beans.factory.annotation.Autowired.required:()Z
ifne 4
iconst_0
ireturn
StackMap locals: org.springframework.beans.factory.annotation.Autowired
StackMap stack:
4: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/beans/factory/annotation/QualifierAnnotationAutowireCandidateResolver;
0 5 1 descriptor Lorg/springframework/beans/factory/config/DependencyDescriptor;
3 5 2 autowired Lorg/springframework/beans/factory/annotation/Autowired;
MethodParameters:
Name Flags
descriptor
public boolean hasQualifier(org.springframework.beans.factory.config.DependencyDescriptor);
descriptor: (Lorg/springframework/beans/factory/config/DependencyDescriptor;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.springframework.beans.factory.config.DependencyDescriptor.getAnnotations:()[Ljava/lang/annotation/Annotation;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 5
StackMap locals: org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver org.springframework.beans.factory.config.DependencyDescriptor top int int java.lang.annotation.Annotation[]
StackMap stack:
1: aload 5
iload 3
aaload
astore 2
start local 2 2: aload 0
aload 2
invokeinterface java.lang.annotation.Annotation.annotationType:()Ljava/lang/Class;
invokevirtual org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.isQualifier:(Ljava/lang/Class;)Z
ifeq 4
3: iconst_1
ireturn
end local 2 4: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
iload 4
if_icmplt 1
6: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/springframework/beans/factory/annotation/QualifierAnnotationAutowireCandidateResolver;
0 7 1 descriptor Lorg/springframework/beans/factory/config/DependencyDescriptor;
2 4 2 ann Ljava/lang/annotation/Annotation;
MethodParameters:
Name Flags
descriptor
public java.lang.Object getSuggestedValue(org.springframework.beans.factory.config.DependencyDescriptor);
descriptor: (Lorg/springframework/beans/factory/config/DependencyDescriptor;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.springframework.beans.factory.config.DependencyDescriptor.getAnnotations:()[Ljava/lang/annotation/Annotation;
invokevirtual org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.findValue:([Ljava/lang/annotation/Annotation;)Ljava/lang/Object;
astore 2
start local 2 1: aload 2
ifnonnull 5
2: aload 1
invokevirtual org.springframework.beans.factory.config.DependencyDescriptor.getMethodParameter:()Lorg/springframework/core/MethodParameter;
astore 3
start local 3 3: aload 3
ifnull 5
4: aload 0
aload 3
invokevirtual org.springframework.core.MethodParameter.getMethodAnnotations:()[Ljava/lang/annotation/Annotation;
invokevirtual org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.findValue:([Ljava/lang/annotation/Annotation;)Ljava/lang/Object;
astore 2
end local 3 5: StackMap locals: java.lang.Object
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/beans/factory/annotation/QualifierAnnotationAutowireCandidateResolver;
0 6 1 descriptor Lorg/springframework/beans/factory/config/DependencyDescriptor;
1 6 2 value Ljava/lang/Object;
3 5 3 methodParam Lorg/springframework/core/MethodParameter;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
descriptor
protected java.lang.Object findValue(java.lang.annotation.Annotation[]);
descriptor: ([Ljava/lang/annotation/Annotation;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
arraylength
ifle 5
1: aload 1
invokestatic org.springframework.core.annotation.AnnotatedElementUtils.forAnnotations:([Ljava/lang/annotation/Annotation;)Ljava/lang/reflect/AnnotatedElement;
aload 0
getfield org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.valueAnnotationType:Ljava/lang/Class;
2: invokestatic org.springframework.core.annotation.AnnotatedElementUtils.getMergedAnnotationAttributes:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Lorg/springframework/core/annotation/AnnotationAttributes;
astore 2
start local 2 3: aload 2
ifnull 5
4: aload 0
aload 2
invokevirtual org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver.extractValue:(Lorg/springframework/core/annotation/AnnotationAttributes;)Ljava/lang/Object;
areturn
end local 2 5: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/beans/factory/annotation/QualifierAnnotationAutowireCandidateResolver;
0 6 1 annotationsToSearch [Ljava/lang/annotation/Annotation;
3 5 2 attr Lorg/springframework/core/annotation/AnnotationAttributes;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
annotationsToSearch
protected java.lang.Object extractValue(org.springframework.core.annotation.AnnotationAttributes);
descriptor: (Lorg/springframework/core/annotation/AnnotationAttributes;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ldc "value"
invokevirtual org.springframework.core.annotation.AnnotationAttributes.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: new java.lang.IllegalStateException
dup
ldc "Value annotation must have a value attribute"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: java.lang.Object
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/beans/factory/annotation/QualifierAnnotationAutowireCandidateResolver;
0 4 1 attr Lorg/springframework/core/annotation/AnnotationAttributes;
1 4 2 value Ljava/lang/Object;
MethodParameters:
Name Flags
attr
}
SourceFile: "QualifierAnnotationAutowireCandidateResolver.java"
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map