public abstract class org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver implements org.springframework.web.method.support.HandlerMethodArgumentResolver
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver
super_class: java.lang.Object
{
private final org.springframework.beans.factory.config.ConfigurableBeanFactory configurableBeanFactory;
descriptor: Lorg/springframework/beans/factory/config/ConfigurableBeanFactory;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private final org.springframework.beans.factory.config.BeanExpressionContext expressionContext;
descriptor: Lorg/springframework/beans/factory/config/BeanExpressionContext;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private final java.util.Map<org.springframework.core.MethodParameter, org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver$NamedValueInfo> namedValueInfoCache;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Lorg/springframework/core/MethodParameter;Lorg/springframework/web/method/annotation/AbstractNamedValueMethodArgumentResolver$NamedValueInfo;>;
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
new java.util.concurrent.ConcurrentHashMap
dup
sipush 256
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
putfield org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.namedValueInfoCache:Ljava/util/Map;
2: aload 0
aconst_null
putfield org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.configurableBeanFactory:Lorg/springframework/beans/factory/config/ConfigurableBeanFactory;
3: aload 0
aconst_null
putfield org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.expressionContext:Lorg/springframework/beans/factory/config/BeanExpressionContext;
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/web/method/annotation/AbstractNamedValueMethodArgumentResolver;
public void <init>(org.springframework.beans.factory.config.ConfigurableBeanFactory);
descriptor: (Lorg/springframework/beans/factory/config/ConfigurableBeanFactory;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
sipush 256
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
putfield org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.namedValueInfoCache:Ljava/util/Map;
2: aload 0
aload 1
putfield org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.configurableBeanFactory:Lorg/springframework/beans/factory/config/ConfigurableBeanFactory;
3: aload 0
4: aload 1
ifnull 5
new org.springframework.beans.factory.config.BeanExpressionContext
dup
aload 1
new org.springframework.web.context.request.RequestScope
dup
invokespecial org.springframework.web.context.request.RequestScope.<init>:()V
invokespecial org.springframework.beans.factory.config.BeanExpressionContext.<init>:(Lorg/springframework/beans/factory/config/ConfigurableBeanFactory;Lorg/springframework/beans/factory/config/Scope;)V
goto 6
StackMap locals: org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver org.springframework.beans.factory.config.ConfigurableBeanFactory
StackMap stack: org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver
5: aconst_null
6: StackMap locals: org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver org.springframework.beans.factory.config.ConfigurableBeanFactory
StackMap stack: org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver org.springframework.beans.factory.config.BeanExpressionContext
putfield org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.expressionContext:Lorg/springframework/beans/factory/config/BeanExpressionContext;
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/springframework/web/method/annotation/AbstractNamedValueMethodArgumentResolver;
0 8 1 beanFactory Lorg/springframework/beans/factory/config/ConfigurableBeanFactory;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
beanFactory
public final 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: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=5, args_size=5
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tThe method convertIfNecessary(Object, Class<capture#2-of ?>, MethodParameter) is undefined for the type WebDataBinder\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/method/annotation/AbstractNamedValueMethodArgumentResolver;
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.annotation.AbstractNamedValueMethodArgumentResolver$NamedValueInfo getNamedValueInfo(org.springframework.core.MethodParameter);
descriptor: (Lorg/springframework/core/MethodParameter;)Lorg/springframework/web/method/annotation/AbstractNamedValueMethodArgumentResolver$NamedValueInfo;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.namedValueInfoCache:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver$NamedValueInfo
astore 2
start local 2 1: aload 2
ifnonnull 5
2: aload 0
aload 1
invokevirtual org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.createNamedValueInfo:(Lorg/springframework/core/MethodParameter;)Lorg/springframework/web/method/annotation/AbstractNamedValueMethodArgumentResolver$NamedValueInfo;
astore 2
3: aload 0
aload 1
aload 2
invokevirtual org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.updateNamedValueInfo:(Lorg/springframework/core/MethodParameter;Lorg/springframework/web/method/annotation/AbstractNamedValueMethodArgumentResolver$NamedValueInfo;)Lorg/springframework/web/method/annotation/AbstractNamedValueMethodArgumentResolver$NamedValueInfo;
astore 2
4: aload 0
getfield org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.namedValueInfoCache:Ljava/util/Map;
aload 1
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: StackMap locals: org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver$NamedValueInfo
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/web/method/annotation/AbstractNamedValueMethodArgumentResolver;
0 6 1 parameter Lorg/springframework/core/MethodParameter;
1 6 2 namedValueInfo Lorg/springframework/web/method/annotation/AbstractNamedValueMethodArgumentResolver$NamedValueInfo;
MethodParameters:
Name Flags
parameter
protected abstract org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver$NamedValueInfo createNamedValueInfo(org.springframework.core.MethodParameter);
descriptor: (Lorg/springframework/core/MethodParameter;)Lorg/springframework/web/method/annotation/AbstractNamedValueMethodArgumentResolver$NamedValueInfo;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
parameter
private org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver$NamedValueInfo updateNamedValueInfo(org.springframework.core.MethodParameter, org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver$NamedValueInfo);
descriptor: (Lorg/springframework/core/MethodParameter;Lorg/springframework/web/method/annotation/AbstractNamedValueMethodArgumentResolver$NamedValueInfo;)Lorg/springframework/web/method/annotation/AbstractNamedValueMethodArgumentResolver$NamedValueInfo;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
getfield org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver$NamedValueInfo.name:Ljava/lang/String;
astore 3
start local 3 1: aload 2
getfield org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver$NamedValueInfo.name:Ljava/lang/String;
invokevirtual java.lang.String.isEmpty:()Z
ifeq 9
2: aload 1
invokevirtual org.springframework.core.MethodParameter.getParameterName:()Ljava/lang/String;
astore 3
3: aload 3
ifnonnull 9
4: new java.lang.IllegalArgumentException
dup
5: new java.lang.StringBuilder
dup
ldc "Name for argument of type ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual org.springframework.core.MethodParameter.getNestedParameterType:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
6: ldc "] not specified, and parameter name information not found in class file either."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
7: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals: java.lang.String
StackMap stack:
ldc "\n\t\t\n\t\t\n\uE000\uE001\uE002\n\t\t\t\t\n"
aload 2
getfield org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver$NamedValueInfo.defaultValue:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 10
aconst_null
goto 11
StackMap locals:
StackMap stack:
10: aload 2
getfield org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver$NamedValueInfo.defaultValue:Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
11: astore 4
start local 4 12: new org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver$NamedValueInfo
dup
aload 3
aload 2
getfield org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver$NamedValueInfo.required:Z
aload 4
invokespecial org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver$NamedValueInfo.<init>:(Ljava/lang/String;ZLjava/lang/String;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/springframework/web/method/annotation/AbstractNamedValueMethodArgumentResolver;
0 13 1 parameter Lorg/springframework/core/MethodParameter;
0 13 2 info Lorg/springframework/web/method/annotation/AbstractNamedValueMethodArgumentResolver$NamedValueInfo;
1 13 3 name Ljava/lang/String;
12 13 4 defaultValue Ljava/lang/String;
MethodParameters:
Name Flags
parameter
info
private java.lang.Object resolveEmbeddedValuesAndExpressions(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.configurableBeanFactory:Lorg/springframework/beans/factory/config/ConfigurableBeanFactory;
ifnull 1
aload 0
getfield org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.expressionContext:Lorg/springframework/beans/factory/config/BeanExpressionContext;
ifnonnull 2
1: StackMap locals:
StackMap stack:
aload 1
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.configurableBeanFactory:Lorg/springframework/beans/factory/config/ConfigurableBeanFactory;
aload 1
invokeinterface org.springframework.beans.factory.config.ConfigurableBeanFactory.resolveEmbeddedValue:(Ljava/lang/String;)Ljava/lang/String;
astore 2
start local 2 3: aload 0
getfield org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.configurableBeanFactory:Lorg/springframework/beans/factory/config/ConfigurableBeanFactory;
invokeinterface org.springframework.beans.factory.config.ConfigurableBeanFactory.getBeanExpressionResolver:()Lorg/springframework/beans/factory/config/BeanExpressionResolver;
astore 3
start local 3 4: aload 3
ifnonnull 6
5: aload 1
areturn
6: StackMap locals: java.lang.String org.springframework.beans.factory.config.BeanExpressionResolver
StackMap stack:
aload 3
aload 2
aload 0
getfield org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.expressionContext:Lorg/springframework/beans/factory/config/BeanExpressionContext;
invokeinterface org.springframework.beans.factory.config.BeanExpressionResolver.evaluate:(Ljava/lang/String;Lorg/springframework/beans/factory/config/BeanExpressionContext;)Ljava/lang/Object;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/springframework/web/method/annotation/AbstractNamedValueMethodArgumentResolver;
0 7 1 value Ljava/lang/String;
3 7 2 placeholdersResolved Ljava/lang/String;
4 7 3 exprResolver Lorg/springframework/beans/factory/config/BeanExpressionResolver;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
value
protected abstract java.lang.Object resolveName(java.lang.String, org.springframework.core.MethodParameter, org.springframework.web.context.request.NativeWebRequest);
descriptor: (Ljava/lang/String;Lorg/springframework/core/MethodParameter;Lorg/springframework/web/context/request/NativeWebRequest;)Ljava/lang/Object;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
name
parameter
request
protected void handleMissingValue(java.lang.String, org.springframework.core.MethodParameter, org.springframework.web.context.request.NativeWebRequest);
descriptor: (Ljava/lang/String;Lorg/springframework/core/MethodParameter;Lorg/springframework/web/context/request/NativeWebRequest;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=4
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tThe method handleMissingValue(String, MethodParameter) from the type AbstractNamedValueMethodArgumentResolver refers to the missing type ServletException\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/method/annotation/AbstractNamedValueMethodArgumentResolver;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
name
parameter
request
protected void handleMissingValue(java.lang.String, org.springframework.core.MethodParameter);
descriptor: (Ljava/lang/String;Lorg/springframework/core/MethodParameter;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problems: \n\tServletException cannot be resolved to a type\n\tNo exception of type ServletRequestBindingException can be thrown; an exception type must be a subclass of Throwable\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/method/annotation/AbstractNamedValueMethodArgumentResolver;
Exceptions:
throws ServletException
MethodParameters:
Name Flags
name
parameter
private handleNullValue(java.lang.String, , java.lang.Class<?>);
descriptor: (Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
ifnonnull 8
1: getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
aload 3
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 3
2: getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
areturn
3: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 8
4: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Optional "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " parameter '"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
5: ldc "' is present but cannot be translated into a null value due to being declared as a "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
6: ldc "primitive type. Consider declaring it as object wrapper for the corresponding primitive type."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/springframework/web/method/annotation/AbstractNamedValueMethodArgumentResolver;
0 9 1 name Ljava/lang/String;
0 9 2 value Ljava/lang/Object;
0 9 3 paramType Ljava/lang/Class<*>;
Signature: (Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Class<*>;)Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
RuntimeVisibleParameterAnnotations:
0:
1:
org.springframework.lang.Nullable()
2:
MethodParameters:
Name Flags
name
value
paramType
protected void handleResolvedValue(java.lang.Object, java.lang.String, org.springframework.core.MethodParameter, org.springframework.web.method.support.ModelAndViewContainer, org.springframework.web.context.request.NativeWebRequest);
descriptor: (Ljava/lang/Object;Ljava/lang/String;Lorg/springframework/core/MethodParameter;Lorg/springframework/web/method/support/ModelAndViewContainer;Lorg/springframework/web/context/request/NativeWebRequest;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=0, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: return
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 1 0 this Lorg/springframework/web/method/annotation/AbstractNamedValueMethodArgumentResolver;
0 1 1 arg Ljava/lang/Object;
0 1 2 name Ljava/lang/String;
0 1 3 parameter Lorg/springframework/core/MethodParameter;
0 1 4 mavContainer Lorg/springframework/web/method/support/ModelAndViewContainer;
0 1 5 webRequest Lorg/springframework/web/context/request/NativeWebRequest;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
2:
3:
org.springframework.lang.Nullable()
4:
MethodParameters:
Name Flags
arg
name
parameter
mavContainer
webRequest
}
SourceFile: "AbstractNamedValueMethodArgumentResolver.java"
NestMembers:
org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver$NamedValueInfo
InnerClasses:
protected NamedValueInfo = org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver$NamedValueInfo of org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver