class extends org.springframework.core.annotation.AbstractAliasAwareAnnotationAttributeExtractor<java.util.Map<java.lang.String, java.lang.Object>>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.springframework.core.annotation.MapAnnotationAttributeExtractor
super_class: org.springframework.core.annotation.AbstractAliasAwareAnnotationAttributeExtractor
{
void <init>(java.util.Map<java.lang.String, java.lang.Object>, java.lang.Class<? extends java.lang.annotation.Annotation>, java.lang.reflect.AnnotatedElement);
descriptor: (Ljava/util/Map;Ljava/lang/Class;Ljava/lang/reflect/AnnotatedElement;)V
flags: (0x0000)
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 2
aload 3
aload 1
aload 2
invokestatic org.springframework.core.annotation.MapAnnotationAttributeExtractor.enrichAndValidateAttributes:(Ljava/util/Map;Ljava/lang/Class;)Ljava/util/Map;
invokespecial org.springframework.core.annotation.AbstractAliasAwareAnnotationAttributeExtractor.<init>:(Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/Object;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/core/annotation/MapAnnotationAttributeExtractor;
0 2 1 attributes Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
0 2 2 annotationType Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
0 2 3 annotatedElement Ljava/lang/reflect/AnnotatedElement;
Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;Ljava/lang/reflect/AnnotatedElement;)V
RuntimeVisibleParameterAnnotations:
0:
1:
2:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
attributes
annotationType
annotatedElement
protected java.lang.Object (java.lang.reflect.Method);
descriptor: (Ljava/lang/reflect/Method;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
invokevirtual org.springframework.core.annotation.MapAnnotationAttributeExtractor.getRawAttributeValue:(Ljava/lang/String;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/core/annotation/MapAnnotationAttributeExtractor;
0 1 1 attributeMethod Ljava/lang/reflect/Method;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
attributeMethod
protected java.lang.Object (java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.springframework.core.annotation.MapAnnotationAttributeExtractor.getSource:()Ljava/lang/Object;
checkcast java.util.Map
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/core/annotation/MapAnnotationAttributeExtractor;
0 1 1 attributeName Ljava/lang/String;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
attributeName
private static java.util.Map<java.lang.String, java.lang.Object> enrichAndValidateAttributes(java.util.Map<java.lang.String, java.lang.Object>, java.lang.Class<? extends java.lang.annotation.Annotation>);
descriptor: (Ljava/util/Map;Ljava/lang/Class;)Ljava/util/Map;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=13, args_size=2
start local 0 start local 1 0: new java.util.LinkedHashMap
dup
aload 0
invokespecial java.util.LinkedHashMap.<init>:(Ljava/util/Map;)V
astore 2
start local 2 1: aload 1
invokestatic org.springframework.core.annotation.AnnotationUtils.getAttributeAliasMap:(Ljava/lang/Class;)Ljava/util/Map;
astore 3
start local 3 2: aload 1
invokestatic org.springframework.core.annotation.AnnotationUtils.getAttributeMethods:(Ljava/lang/Class;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 50
StackMap locals: java.util.Map java.lang.Class java.util.Map java.util.Map top java.util.Iterator
StackMap stack:
3: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.reflect.Method
astore 4
start local 4 4: aload 4
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
astore 6
start local 6 5: aload 2
aload 6
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 7
start local 7 6: aload 7
ifnonnull 17
7: aload 3
aload 6
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
astore 8
start local 8 8: aload 8
ifnull 17
9: aload 8
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 16
StackMap locals: java.util.Map java.lang.Class java.util.Map java.util.Map java.lang.reflect.Method java.util.Iterator java.lang.String java.lang.Object java.util.List top java.util.Iterator
StackMap stack:
10: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 9
start local 9 11: aload 2
aload 9
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 11
start local 11 12: aload 11
ifnull 16
13: aload 11
astore 7
14: aload 2
aload 6
aload 7
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
15: goto 17
end local 11 end local 9 16: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
end local 8 17: StackMap locals: java.util.Map java.lang.Class java.util.Map java.util.Map java.lang.reflect.Method java.util.Iterator java.lang.String java.lang.Object
StackMap stack:
aload 7
ifnonnull 22
18: aload 1
aload 6
invokestatic org.springframework.core.annotation.AnnotationUtils.getDefaultValue:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;
astore 8
start local 8 19: aload 8
ifnull 22
20: aload 8
astore 7
21: aload 2
aload 6
aload 7
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 8 22: StackMap locals:
StackMap stack:
aload 7
aload 2
aload 6
aload 1
invokedynamic get(Ljava/util/Map;Ljava/lang/String;Ljava/lang/Class;)Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
org/springframework/core/annotation/MapAnnotationAttributeExtractor.lambda$0(Ljava/util/Map;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/String; (6)
()Ljava/lang/String;
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/util/function/Supplier;)V
23: aload 4
invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
astore 8
start local 8 24: aload 7
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
astore 9
start local 9 25: aload 8
aload 9
invokestatic org.springframework.util.ClassUtils.isAssignable:(Ljava/lang/Class;Ljava/lang/Class;)Z
ifne 50
26: iconst_0
istore 10
start local 10 27: aload 8
invokevirtual java.lang.Class.isArray:()Z
ifeq 33
aload 8
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
aload 9
if_acmpne 33
28: aload 8
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
iconst_1
invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
astore 11
start local 11 29: aload 11
iconst_0
aload 7
invokestatic java.lang.reflect.Array.set:(Ljava/lang/Object;ILjava/lang/Object;)V
30: aload 2
aload 6
aload 11
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
31: iconst_1
istore 10
end local 11 32: goto 49
33: StackMap locals: java.lang.Class java.lang.Class int
StackMap stack:
ldc Ljava/lang/annotation/Annotation;
aload 8
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 41
34: ldc Ljava/util/Map;
aload 9
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 41
35: aload 8
36: astore 11
start local 11 37: aload 7
checkcast java.util.Map
astore 12
start local 12 38: aload 2
aload 6
aload 12
aload 11
aconst_null
invokestatic org.springframework.core.annotation.AnnotationUtils.synthesizeAnnotation:(Ljava/util/Map;Ljava/lang/Class;Ljava/lang/reflect/AnnotatedElement;)Ljava/lang/annotation/Annotation;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
39: iconst_1
istore 10
end local 12 end local 11 40: goto 49
41: StackMap locals:
StackMap stack:
aload 8
invokevirtual java.lang.Class.isArray:()Z
ifeq 49
aload 9
invokevirtual java.lang.Class.isArray:()Z
ifeq 49
42: ldc Ljava/lang/annotation/Annotation;
aload 8
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 49
43: ldc Ljava/util/Map;
aload 9
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 49
44: aload 8
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
45: astore 11
start local 11 46: aload 7
checkcast java.util.Map[]
astore 12
start local 12 47: aload 2
aload 6
aload 12
aload 11
invokestatic org.springframework.core.annotation.AnnotationUtils.synthesizeAnnotationArray:([Ljava/util/Map;Ljava/lang/Class;)[Ljava/lang/annotation/Annotation;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
48: iconst_1
istore 10
end local 12 end local 11 49: StackMap locals:
StackMap stack:
iload 10
aload 2
aload 9
aload 6
aload 8
aload 1
invokedynamic get(Ljava/util/Map;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Class;)Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
org/springframework/core/annotation/MapAnnotationAttributeExtractor.lambda$1(Ljava/util/Map;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/String; (6)
()Ljava/lang/String;
invokestatic org.springframework.util.Assert.isTrue:(ZLjava/util/function/Supplier;)V
end local 10 end local 9 end local 8 end local 7 end local 6 end local 4 50: StackMap locals: java.util.Map java.lang.Class java.util.Map java.util.Map top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
51: aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 52 0 originalAttributes Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
0 52 1 annotationType Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
1 52 2 attributes Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
2 52 3 attributeAliasMap Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
4 50 4 attributeMethod Ljava/lang/reflect/Method;
5 50 6 attributeName Ljava/lang/String;
6 50 7 attributeValue Ljava/lang/Object;
8 17 8 aliasNames Ljava/util/List<Ljava/lang/String;>;
11 16 9 aliasName Ljava/lang/String;
12 16 11 aliasValue Ljava/lang/Object;
19 22 8 defaultValue Ljava/lang/Object;
24 50 8 requiredReturnType Ljava/lang/Class<*>;
25 50 9 actualReturnType Ljava/lang/Class<*>;
27 50 10 converted Z
29 32 11 array Ljava/lang/Object;
37 40 11 nestedAnnotationType Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
38 40 12 map Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
46 49 11 nestedAnnotationType Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
47 49 12 maps [Ljava/util/Map;
Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;)Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
MethodParameters:
Name Flags
originalAttributes
annotationType
private static java.lang.String (java.util.Map, java.lang.String, java.lang.Class);
descriptor: (Ljava/util/Map;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/String;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=5, locals=3, args_size=3
0: ldc "Attributes map %s returned null for required attribute '%s' defined by annotation type [%s]."
iconst_3
anewarray java.lang.Object
dup
iconst_0
1: aload 0
aastore
dup
iconst_1
aload 1
aastore
dup
iconst_2
aload 2
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
2: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
3: areturn
LocalVariableTable:
Start End Slot Name Signature
private static java.lang.String (java.util.Map, java.lang.Class, java.lang.String, java.lang.Class, java.lang.Class);
descriptor: (Ljava/util/Map;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/String;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=5, locals=5, args_size=5
0: ldc "Attributes map %s returned a value of type [%s] for attribute '%s', but a value of type [%s] is required as defined by annotation type [%s]."
iconst_5
anewarray java.lang.Object
dup
iconst_0
1: aload 0
aastore
dup
iconst_1
aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
dup
iconst_2
aload 2
aastore
dup
iconst_3
aload 3
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
dup
iconst_4
2: aload 4
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
3: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
4: areturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Lorg/springframework/core/annotation/AbstractAliasAwareAnnotationAttributeExtractor<Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;>;
SourceFile: "MapAnnotationAttributeExtractor.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles