public class org.springframework.web.method.support.HandlerMethodArgumentResolverComposite implements org.springframework.web.method.support.HandlerMethodArgumentResolver
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.web.method.support.HandlerMethodArgumentResolverComposite
super_class: java.lang.Object
{
protected final org.apache.commons.logging.Log logger;
descriptor: Lorg/apache/commons/logging/Log;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private final java.util.List<org.springframework.web.method.support.HandlerMethodArgumentResolver> argumentResolvers;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lorg/springframework/web/method/support/HandlerMethodArgumentResolver;>;
private final java.util.Map<org.springframework.core.MethodParameter, org.springframework.web.method.support.HandlerMethodArgumentResolver> argumentResolverCache;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Lorg/springframework/core/MethodParameter;Lorg/springframework/web/method/support/HandlerMethodArgumentResolver;>;
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
putfield org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.logger:Lorg/apache/commons/logging/Log;
2: aload 0
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
putfield org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.argumentResolvers:Ljava/util/List;
3: aload 0
4: new java.util.concurrent.ConcurrentHashMap
dup
sipush 256
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
putfield org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.argumentResolverCache:Ljava/util/Map;
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/web/method/support/HandlerMethodArgumentResolverComposite;
public org.springframework.web.method.support.HandlerMethodArgumentResolverComposite addResolver(org.springframework.web.method.support.HandlerMethodArgumentResolver);
descriptor: (Lorg/springframework/web/method/support/HandlerMethodArgumentResolver;)Lorg/springframework/web/method/support/HandlerMethodArgumentResolverComposite;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.argumentResolvers:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/web/method/support/HandlerMethodArgumentResolverComposite;
0 2 1 resolver Lorg/springframework/web/method/support/HandlerMethodArgumentResolver;
MethodParameters:
Name Flags
resolver
public org.springframework.web.method.support.HandlerMethodArgumentResolverComposite addResolvers(org.springframework.web.method.support.HandlerMethodArgumentResolver[]);
descriptor: ([Lorg/springframework/web/method/support/HandlerMethodArgumentResolver;)Lorg/springframework/web/method/support/HandlerMethodArgumentResolverComposite;
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 2
1: aload 0
getfield org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.argumentResolvers:Ljava/util/List;
aload 1
invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
pop
2: StackMap locals:
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/web/method/support/HandlerMethodArgumentResolverComposite;
0 3 1 resolvers [Lorg/springframework/web/method/support/HandlerMethodArgumentResolver;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
resolvers
public org.springframework.web.method.support.HandlerMethodArgumentResolverComposite addResolvers(java.util.List<? extends org.springframework.web.method.support.HandlerMethodArgumentResolver>);
descriptor: (Ljava/util/List;)Lorg/springframework/web/method/support/HandlerMethodArgumentResolverComposite;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 2
1: aload 0
getfield org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.argumentResolvers:Ljava/util/List;
aload 1
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
2: StackMap locals:
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/web/method/support/HandlerMethodArgumentResolverComposite;
0 3 1 resolvers Ljava/util/List<+Lorg/springframework/web/method/support/HandlerMethodArgumentResolver;>;
Signature: (Ljava/util/List<+Lorg/springframework/web/method/support/HandlerMethodArgumentResolver;>;)Lorg/springframework/web/method/support/HandlerMethodArgumentResolverComposite;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
resolvers
public java.util.List<org.springframework.web.method.support.HandlerMethodArgumentResolver> getResolvers();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.argumentResolvers:Ljava/util/List;
invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/method/support/HandlerMethodArgumentResolverComposite;
Signature: ()Ljava/util/List<Lorg/springframework/web/method/support/HandlerMethodArgumentResolver;>;
public void clear();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.argumentResolvers:Ljava/util/List;
invokeinterface java.util.List.clear:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/web/method/support/HandlerMethodArgumentResolverComposite;
public boolean supportsParameter(org.springframework.core.MethodParameter);
descriptor: (Lorg/springframework/core/MethodParameter;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.getArgumentResolver:(Lorg/springframework/core/MethodParameter;)Lorg/springframework/web/method/support/HandlerMethodArgumentResolver;
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/web/method/support/HandlerMethodArgumentResolverComposite;
0 2 1 parameter Lorg/springframework/core/MethodParameter;
MethodParameters:
Name Flags
parameter
public java.lang.Object resolveArgument(org.springframework.core.MethodParameter, org.springframework.web.method.support.ModelAndViewContainer, org.springframework.web.context.request.NativeWebRequest, org.springframework.web.bind.support.WebDataBinderFactory);
descriptor: (Lorg/springframework/core/MethodParameter;Lorg/springframework/web/method/support/ModelAndViewContainer;Lorg/springframework/web/context/request/NativeWebRequest;Lorg/springframework/web/bind/support/WebDataBinderFactory;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
invokevirtual org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.getArgumentResolver:(Lorg/springframework/core/MethodParameter;)Lorg/springframework/web/method/support/HandlerMethodArgumentResolver;
astore 5
start local 5 1: aload 5
ifnonnull 7
2: new java.lang.IllegalArgumentException
dup
3: new java.lang.StringBuilder
dup
ldc "Unsupported parameter type ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual org.springframework.core.MethodParameter.getParameterType:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
4: ldc " supportsParameter should be called first."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
5: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals: org.springframework.web.method.support.HandlerMethodArgumentResolver
StackMap stack:
aload 5
aload 1
aload 2
aload 3
aload 4
invokeinterface org.springframework.web.method.support.HandlerMethodArgumentResolver.resolveArgument:(Lorg/springframework/core/MethodParameter;Lorg/springframework/web/method/support/ModelAndViewContainer;Lorg/springframework/web/context/request/NativeWebRequest;Lorg/springframework/web/bind/support/WebDataBinderFactory;)Ljava/lang/Object;
areturn
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 8 0 this Lorg/springframework/web/method/support/HandlerMethodArgumentResolverComposite;
0 8 1 parameter Lorg/springframework/core/MethodParameter;
0 8 2 mavContainer Lorg/springframework/web/method/support/ModelAndViewContainer;
0 8 3 webRequest Lorg/springframework/web/context/request/NativeWebRequest;
0 8 4 binderFactory Lorg/springframework/web/bind/support/WebDataBinderFactory;
1 8 5 resolver Lorg/springframework/web/method/support/HandlerMethodArgumentResolver;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
RuntimeVisibleParameterAnnotations:
0:
1:
org.springframework.lang.Nullable()
2:
3:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
parameter
mavContainer
webRequest
binderFactory
private org.springframework.web.method.support.HandlerMethodArgumentResolver getArgumentResolver(org.springframework.core.MethodParameter);
descriptor: (Lorg/springframework/core/MethodParameter;)Lorg/springframework/web/method/support/HandlerMethodArgumentResolver;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.argumentResolverCache:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.springframework.web.method.support.HandlerMethodArgumentResolver
astore 2
start local 2 1: aload 2
ifnonnull 9
2: aload 0
getfield org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.argumentResolvers:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 8
StackMap locals: org.springframework.web.method.support.HandlerMethodArgumentResolverComposite org.springframework.core.MethodParameter org.springframework.web.method.support.HandlerMethodArgumentResolver top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.springframework.web.method.support.HandlerMethodArgumentResolver
astore 3
start local 3 4: aload 3
aload 1
invokeinterface org.springframework.web.method.support.HandlerMethodArgumentResolver.supportsParameter:(Lorg/springframework/core/MethodParameter;)Z
ifeq 8
5: aload 3
astore 2
6: aload 0
getfield org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.argumentResolverCache:Ljava/util/Map;
aload 1
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: goto 9
end local 3 8: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
9: StackMap locals: org.springframework.web.method.support.HandlerMethodArgumentResolverComposite org.springframework.core.MethodParameter org.springframework.web.method.support.HandlerMethodArgumentResolver
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/springframework/web/method/support/HandlerMethodArgumentResolverComposite;
0 10 1 parameter Lorg/springframework/core/MethodParameter;
1 10 2 result Lorg/springframework/web/method/support/HandlerMethodArgumentResolver;
4 8 3 methodArgumentResolver Lorg/springframework/web/method/support/HandlerMethodArgumentResolver;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
parameter
}
SourceFile: "HandlerMethodArgumentResolverComposite.java"