public class org.springframework.web.method.annotation.ModelAttributeMethodProcessor implements org.springframework.web.method.support.HandlerMethodArgumentResolver, org.springframework.web.method.support.HandlerMethodReturnValueHandler
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.web.method.annotation.ModelAttributeMethodProcessor
super_class: java.lang.Object
{
private static final org.springframework.core.ParameterNameDiscoverer parameterNameDiscoverer;
descriptor: Lorg/springframework/core/ParameterNameDiscoverer;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
protected final org.apache.commons.logging.Log logger;
descriptor: Lorg/apache/commons/logging/Log;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private final boolean annotationNotRequired;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new org.springframework.core.DefaultParameterNameDiscoverer
dup
invokespecial org.springframework.core.DefaultParameterNameDiscoverer.<init>:()V
putstatic org.springframework.web.method.annotation.ModelAttributeMethodProcessor.parameterNameDiscoverer:Lorg/springframework/core/ParameterNameDiscoverer;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 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.annotation.ModelAttributeMethodProcessor.logger:Lorg/apache/commons/logging/Log;
2: aload 0
iload 1
putfield org.springframework.web.method.annotation.ModelAttributeMethodProcessor.annotationNotRequired:Z
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/web/method/annotation/ModelAttributeMethodProcessor;
0 4 1 annotationNotRequired Z
MethodParameters:
Name Flags
annotationNotRequired
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 1
ldc Lorg/springframework/web/bind/annotation/ModelAttribute;
invokevirtual org.springframework.core.MethodParameter.hasParameterAnnotation:(Ljava/lang/Class;)Z
ifne 3
1: aload 0
getfield org.springframework.web.method.annotation.ModelAttributeMethodProcessor.annotationNotRequired:Z
ifeq 2
aload 1
invokevirtual org.springframework.core.MethodParameter.getParameterType:()Ljava/lang/Class;
invokestatic org.springframework.beans.BeanUtils.isSimpleProperty:(Ljava/lang/Class;)Z
ifeq 3
2: StackMap locals:
StackMap stack:
iconst_0
ireturn
StackMap locals:
StackMap stack:
3: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/web/method/annotation/ModelAttributeMethodProcessor;
0 4 1 parameter Lorg/springframework/core/MethodParameter;
MethodParameters:
Name Flags
parameter
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=5, locals=10, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
ifnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ldc "ModelAttributeMethodProcessor requires ModelAndViewContainer"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
3: aload 4
ifnull 4
iconst_1
goto 5
StackMap locals:
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: ldc "ModelAttributeMethodProcessor requires WebDataBinderFactory"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
6: aload 1
invokestatic org.springframework.web.method.annotation.ModelFactory.getNameForParameter:(Lorg/springframework/core/MethodParameter;)Ljava/lang/String;
astore 5
start local 5 7: aload 1
ldc Lorg/springframework/web/bind/annotation/ModelAttribute;
invokevirtual org.springframework.core.MethodParameter.getParameterAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast org.springframework.web.bind.annotation.ModelAttribute
astore 6
start local 6 8: aload 6
ifnull 10
9: aload 2
aload 5
aload 6
invokeinterface org.springframework.web.bind.annotation.ModelAttribute.binding:()Z
invokevirtual org.springframework.web.method.support.ModelAndViewContainer.setBinding:(Ljava/lang/String;Z)V
10: StackMap locals: java.lang.String org.springframework.web.bind.annotation.ModelAttribute
StackMap stack:
aconst_null
astore 7
start local 7 11: aconst_null
astore 8
start local 8 12: aload 2
aload 5
invokevirtual org.springframework.web.method.support.ModelAndViewContainer.containsAttribute:(Ljava/lang/String;)Z
ifeq 15
13: aload 2
invokevirtual org.springframework.web.method.support.ModelAndViewContainer.getModel:()Lorg/springframework/ui/ModelMap;
aload 5
invokevirtual org.springframework.ui.ModelMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 7
14: goto 23
15: StackMap locals: java.lang.Object org.springframework.validation.BindingResult
StackMap stack:
aload 0
aload 5
aload 1
aload 4
aload 3
invokevirtual org.springframework.web.method.annotation.ModelAttributeMethodProcessor.createAttribute:(Ljava/lang/String;Lorg/springframework/core/MethodParameter;Lorg/springframework/web/bind/support/WebDataBinderFactory;Lorg/springframework/web/context/request/NativeWebRequest;)Ljava/lang/Object;
astore 7
16: goto 23
17: StackMap locals:
StackMap stack: org.springframework.validation.BindException
astore 9
start local 9 18: aload 0
aload 1
invokevirtual org.springframework.web.method.annotation.ModelAttributeMethodProcessor.isBindExceptionRequired:(Lorg/springframework/core/MethodParameter;)Z
ifeq 20
19: aload 9
athrow
20: StackMap locals: org.springframework.validation.BindException
StackMap stack:
aload 1
invokevirtual org.springframework.core.MethodParameter.getParameterType:()Ljava/lang/Class;
ldc Ljava/util/Optional;
if_acmpne 22
21: invokestatic java.util.Optional.empty:()Ljava/util/Optional;
astore 7
22: StackMap locals:
StackMap stack:
aload 9
invokevirtual org.springframework.validation.BindException.getBindingResult:()Lorg/springframework/validation/BindingResult;
astore 8
end local 9 23: StackMap locals:
StackMap stack:
aload 8
ifnonnull 34
24: aload 4
aload 3
aload 7
aload 5
invokeinterface org.springframework.web.bind.support.WebDataBinderFactory.createBinder:(Lorg/springframework/web/context/request/NativeWebRequest;Ljava/lang/Object;Ljava/lang/String;)Lorg/springframework/web/bind/WebDataBinder;
astore 9
start local 9 25: aload 9
invokevirtual org.springframework.web.bind.WebDataBinder.getTarget:()Ljava/lang/Object;
ifnull 31
26: aload 2
aload 5
invokevirtual org.springframework.web.method.support.ModelAndViewContainer.isBindingDisabled:(Ljava/lang/String;)Z
ifne 28
27: aload 0
aload 9
aload 3
invokevirtual org.springframework.web.method.annotation.ModelAttributeMethodProcessor.bindRequestParameters:(Lorg/springframework/web/bind/WebDataBinder;Lorg/springframework/web/context/request/NativeWebRequest;)V
28: StackMap locals: org.springframework.web.bind.WebDataBinder
StackMap stack:
aload 0
aload 9
aload 1
invokevirtual org.springframework.web.method.annotation.ModelAttributeMethodProcessor.validateIfApplicable:(Lorg/springframework/web/bind/WebDataBinder;Lorg/springframework/core/MethodParameter;)V
29: aload 9
invokevirtual org.springframework.web.bind.WebDataBinder.getBindingResult:()Lorg/springframework/validation/BindingResult;
invokeinterface org.springframework.validation.BindingResult.hasErrors:()Z
ifeq 31
aload 0
aload 9
aload 1
invokevirtual org.springframework.web.method.annotation.ModelAttributeMethodProcessor.isBindExceptionRequired:(Lorg/springframework/web/bind/WebDataBinder;Lorg/springframework/core/MethodParameter;)Z
ifeq 31
30: new org.springframework.validation.BindException
dup
aload 9
invokevirtual org.springframework.web.bind.WebDataBinder.getBindingResult:()Lorg/springframework/validation/BindingResult;
invokespecial org.springframework.validation.BindException.<init>:(Lorg/springframework/validation/BindingResult;)V
athrow
31: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.springframework.core.MethodParameter.getParameterType:()Ljava/lang/Class;
aload 7
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifne 33
32: aload 9
aload 9
invokevirtual org.springframework.web.bind.WebDataBinder.getTarget:()Ljava/lang/Object;
aload 1
invokevirtual org.springframework.core.MethodParameter.getParameterType:()Ljava/lang/Class;
aload 1
invokevirtual org.springframework.web.bind.WebDataBinder.convertIfNecessary:(Ljava/lang/Object;Ljava/lang/Class;Lorg/springframework/core/MethodParameter;)Ljava/lang/Object;
astore 7
33: StackMap locals:
StackMap stack:
aload 9
invokevirtual org.springframework.web.bind.WebDataBinder.getBindingResult:()Lorg/springframework/validation/BindingResult;
astore 8
end local 9 34: StackMap locals:
StackMap stack:
aload 8
invokeinterface org.springframework.validation.BindingResult.getModel:()Ljava/util/Map;
astore 9
start local 9 35: aload 2
aload 9
invokevirtual org.springframework.web.method.support.ModelAndViewContainer.removeAttributes:(Ljava/util/Map;)Lorg/springframework/web/method/support/ModelAndViewContainer;
pop
36: aload 2
aload 9
invokevirtual org.springframework.web.method.support.ModelAndViewContainer.addAllAttributes:(Ljava/util/Map;)Lorg/springframework/web/method/support/ModelAndViewContainer;
pop
37: aload 7
areturn
end local 9 end local 8 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 38 0 this Lorg/springframework/web/method/annotation/ModelAttributeMethodProcessor;
0 38 1 parameter Lorg/springframework/core/MethodParameter;
0 38 2 mavContainer Lorg/springframework/web/method/support/ModelAndViewContainer;
0 38 3 webRequest Lorg/springframework/web/context/request/NativeWebRequest;
0 38 4 binderFactory Lorg/springframework/web/bind/support/WebDataBinderFactory;
7 38 5 name Ljava/lang/String;
8 38 6 ann Lorg/springframework/web/bind/annotation/ModelAttribute;
11 38 7 attribute Ljava/lang/Object;
12 38 8 bindingResult Lorg/springframework/validation/BindingResult;
18 23 9 ex Lorg/springframework/validation/BindException;
25 34 9 binder Lorg/springframework/web/bind/WebDataBinder;
35 38 9 bindingResultModel Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
Exception table:
from to target type
15 16 17 Class org.springframework.validation.BindException
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
protected java.lang.Object createAttribute(java.lang.String, org.springframework.core.MethodParameter, org.springframework.web.bind.support.WebDataBinderFactory, org.springframework.web.context.request.NativeWebRequest);
descriptor: (Ljava/lang/String;Lorg/springframework/core/MethodParameter;Lorg/springframework/web/bind/support/WebDataBinderFactory;Lorg/springframework/web/context/request/NativeWebRequest;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=10, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
invokevirtual org.springframework.core.MethodParameter.nestedIfOptional:()Lorg/springframework/core/MethodParameter;
astore 5
start local 5 1: aload 5
invokevirtual org.springframework.core.MethodParameter.getNestedParameterType:()Ljava/lang/Class;
astore 6
start local 6 2: aload 6
invokestatic org.springframework.beans.BeanUtils.findPrimaryConstructor:(Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
astore 7
start local 7 3: aload 7
ifnonnull 12
4: aload 6
invokevirtual java.lang.Class.getConstructors:()[Ljava/lang/reflect/Constructor;
astore 8
start local 8 5: aload 8
arraylength
iconst_1
if_icmpne 8
6: aload 8
iconst_0
aaload
astore 7
7: goto 12
8: StackMap locals: org.springframework.web.method.annotation.ModelAttributeMethodProcessor java.lang.String org.springframework.core.MethodParameter org.springframework.web.bind.support.WebDataBinderFactory org.springframework.web.context.request.NativeWebRequest org.springframework.core.MethodParameter java.lang.Class java.lang.reflect.Constructor java.lang.reflect.Constructor[]
StackMap stack:
aload 6
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
astore 7
9: goto 12
10: StackMap locals:
StackMap stack: java.lang.NoSuchMethodException
astore 9
start local 9 11: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "No primary or default constructor found for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 9
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 9 end local 8 12: StackMap locals:
StackMap stack:
aload 0
aload 7
aload 1
aload 2
aload 3
aload 4
invokevirtual org.springframework.web.method.annotation.ModelAttributeMethodProcessor.constructAttribute:(Ljava/lang/reflect/Constructor;Ljava/lang/String;Lorg/springframework/core/MethodParameter;Lorg/springframework/web/bind/support/WebDataBinderFactory;Lorg/springframework/web/context/request/NativeWebRequest;)Ljava/lang/Object;
astore 8
start local 8 13: aload 2
aload 5
if_acmpeq 15
14: aload 8
invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
astore 8
15: StackMap locals: java.lang.Object
StackMap stack:
aload 8
areturn
end local 8 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 16 0 this Lorg/springframework/web/method/annotation/ModelAttributeMethodProcessor;
0 16 1 attributeName Ljava/lang/String;
0 16 2 parameter Lorg/springframework/core/MethodParameter;
0 16 3 binderFactory Lorg/springframework/web/bind/support/WebDataBinderFactory;
0 16 4 webRequest Lorg/springframework/web/context/request/NativeWebRequest;
1 16 5 nestedParameter Lorg/springframework/core/MethodParameter;
2 16 6 clazz Ljava/lang/Class<*>;
3 16 7 ctor Ljava/lang/reflect/Constructor<*>;
5 12 8 ctors [Ljava/lang/reflect/Constructor;
11 12 9 ex Ljava/lang/NoSuchMethodException;
13 16 8 attribute Ljava/lang/Object;
Exception table:
from to target type
8 9 10 Class java.lang.NoSuchMethodException
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
attributeName
parameter
binderFactory
webRequest
protected constructAttribute(java.lang.reflect.Constructor<?>, java.lang.String, org.springframework.core.MethodParameter, org.springframework.web.bind.support.WebDataBinderFactory, org.springframework.web.context.request.NativeWebRequest);
descriptor: (Ljava/lang/reflect/Constructor;Ljava/lang/String;Lorg/springframework/core/MethodParameter;Lorg/springframework/web/bind/support/WebDataBinderFactory;Lorg/springframework/web/context/request/NativeWebRequest;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=21, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 1
aload 2
aload 4
aload 5
invokevirtual org.springframework.web.method.annotation.ModelAttributeMethodProcessor.constructAttribute:(Ljava/lang/reflect/Constructor;Ljava/lang/String;Lorg/springframework/web/bind/support/WebDataBinderFactory;Lorg/springframework/web/context/request/NativeWebRequest;)Ljava/lang/Object;
astore 6
start local 6 1: aload 6
ifnull 3
2: aload 6
areturn
3: StackMap locals: java.lang.Object
StackMap stack:
aload 1
invokevirtual java.lang.reflect.Constructor.getParameterCount:()I
ifne 5
4: aload 1
iconst_0
anewarray java.lang.Object
invokestatic org.springframework.beans.BeanUtils.instantiateClass:(Ljava/lang/reflect/Constructor;[Ljava/lang/Object;)Ljava/lang/Object;
areturn
5: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/beans/ConstructorProperties;
invokevirtual java.lang.reflect.Constructor.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast java.beans.ConstructorProperties
astore 7
start local 7 6: aload 7
ifnull 7
aload 7
invokeinterface java.beans.ConstructorProperties.value:()[Ljava/lang/String;
goto 8
StackMap locals: java.beans.ConstructorProperties
StackMap stack:
7: getstatic org.springframework.web.method.annotation.ModelAttributeMethodProcessor.parameterNameDiscoverer:Lorg/springframework/core/ParameterNameDiscoverer;
aload 1
invokeinterface org.springframework.core.ParameterNameDiscoverer.getParameterNames:(Ljava/lang/reflect/Constructor;)[Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String[]
8: astore 8
start local 8 9: aload 8
ifnull 10
iconst_1
goto 11
StackMap locals: java.lang.String[]
StackMap stack:
10: iconst_0
StackMap locals:
StackMap stack: int
11: aload 1
invokedynamic get(Ljava/lang/reflect/Constructor;)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/web/method/annotation/ModelAttributeMethodProcessor.lambda$0(Ljava/lang/reflect/Constructor;)Ljava/lang/String; (6)
()Ljava/lang/String;
invokestatic org.springframework.util.Assert.state:(ZLjava/util/function/Supplier;)V
12: aload 1
invokevirtual java.lang.reflect.Constructor.getParameterTypes:()[Ljava/lang/Class;
astore 9
start local 9 13: aload 8
arraylength
aload 9
arraylength
if_icmpne 14
iconst_1
goto 15
StackMap locals: java.lang.Class[]
StackMap stack:
14: iconst_0
15: StackMap locals:
StackMap stack: int
aload 8
aload 1
invokedynamic get([Ljava/lang/String;Ljava/lang/reflect/Constructor;)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/web/method/annotation/ModelAttributeMethodProcessor.lambda$1([Ljava/lang/String;Ljava/lang/reflect/Constructor;)Ljava/lang/String; (6)
()Ljava/lang/String;
16: invokestatic org.springframework.util.Assert.state:(ZLjava/util/function/Supplier;)V
17: aload 9
arraylength
anewarray java.lang.Object
astore 10
start local 10 18: aload 4
aload 5
aconst_null
aload 2
invokeinterface org.springframework.web.bind.support.WebDataBinderFactory.createBinder:(Lorg/springframework/web/context/request/NativeWebRequest;Ljava/lang/Object;Ljava/lang/String;)Lorg/springframework/web/bind/WebDataBinder;
astore 11
start local 11 19: aload 11
invokevirtual org.springframework.web.bind.WebDataBinder.getFieldDefaultPrefix:()Ljava/lang/String;
astore 12
start local 12 20: aload 11
invokevirtual org.springframework.web.bind.WebDataBinder.getFieldMarkerPrefix:()Ljava/lang/String;
astore 13
start local 13 21: iconst_0
istore 14
start local 14 22: new java.util.HashSet
dup
iconst_4
invokespecial java.util.HashSet.<init>:(I)V
astore 15
start local 15 23: iconst_0
istore 16
start local 16 24: goto 50
25: StackMap locals: org.springframework.web.method.annotation.ModelAttributeMethodProcessor java.lang.reflect.Constructor java.lang.String org.springframework.core.MethodParameter org.springframework.web.bind.support.WebDataBinderFactory org.springframework.web.context.request.NativeWebRequest java.lang.Object java.beans.ConstructorProperties java.lang.String[] java.lang.Class[] java.lang.Object[] org.springframework.web.bind.WebDataBinder java.lang.String java.lang.String int java.util.Set int
StackMap stack:
aload 8
iload 16
aaload
astore 17
start local 17 26: aload 9
iload 16
aaload
astore 18
start local 18 27: aload 5
aload 17
invokeinterface org.springframework.web.context.request.NativeWebRequest.getParameterValues:(Ljava/lang/String;)[Ljava/lang/String;
astore 19
start local 19 28: aload 19
ifnonnull 34
29: aload 12
ifnull 31
30: aload 5
new java.lang.StringBuilder
dup
aload 12
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 17
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.springframework.web.context.request.NativeWebRequest.getParameter:(Ljava/lang/String;)Ljava/lang/String;
astore 19
31: StackMap locals: java.lang.String java.lang.Class java.lang.Object
StackMap stack:
aload 19
ifnonnull 34
aload 13
ifnull 34
32: aload 5
new java.lang.StringBuilder
dup
aload 13
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 17
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.springframework.web.context.request.NativeWebRequest.getParameter:(Ljava/lang/String;)Ljava/lang/String;
ifnull 34
33: aload 11
aload 18
invokevirtual org.springframework.web.bind.WebDataBinder.getEmptyValue:(Ljava/lang/Class;)Ljava/lang/Object;
astore 19
34: StackMap locals:
StackMap stack:
new org.springframework.web.method.annotation.ModelAttributeMethodProcessor$FieldAwareConstructorParameter
dup
aload 1
iload 16
aload 17
invokespecial org.springframework.web.method.annotation.ModelAttributeMethodProcessor$FieldAwareConstructorParameter.<init>:(Ljava/lang/reflect/Constructor;ILjava/lang/String;)V
astore 20
start local 20 35: aload 19
ifnonnull 40
aload 20
invokevirtual org.springframework.core.MethodParameter.isOptional:()Z
ifeq 40
36: aload 10
iload 16
aload 20
invokevirtual org.springframework.core.MethodParameter.getParameterType:()Ljava/lang/Class;
ldc Ljava/util/Optional;
if_acmpne 37
invokestatic java.util.Optional.empty:()Ljava/util/Optional;
goto 38
StackMap locals: org.springframework.web.method.annotation.ModelAttributeMethodProcessor java.lang.reflect.Constructor java.lang.String org.springframework.core.MethodParameter org.springframework.web.bind.support.WebDataBinderFactory org.springframework.web.context.request.NativeWebRequest java.lang.Object java.beans.ConstructorProperties java.lang.String[] java.lang.Class[] java.lang.Object[] org.springframework.web.bind.WebDataBinder java.lang.String java.lang.String int java.util.Set int java.lang.String java.lang.Class java.lang.Object org.springframework.core.MethodParameter
StackMap stack: java.lang.Object[] int
37: aconst_null
StackMap locals: org.springframework.web.method.annotation.ModelAttributeMethodProcessor java.lang.reflect.Constructor java.lang.String org.springframework.core.MethodParameter org.springframework.web.bind.support.WebDataBinderFactory org.springframework.web.context.request.NativeWebRequest java.lang.Object java.beans.ConstructorProperties java.lang.String[] java.lang.Class[] java.lang.Object[] org.springframework.web.bind.WebDataBinder java.lang.String java.lang.String int java.util.Set int java.lang.String java.lang.Class java.lang.Object org.springframework.core.MethodParameter
StackMap stack: java.lang.Object[] int java.util.Optional
38: aastore
39: goto 49
40: StackMap locals:
StackMap stack:
aload 10
iload 16
aload 11
aload 19
aload 18
aload 20
invokevirtual org.springframework.web.bind.WebDataBinder.convertIfNecessary:(Ljava/lang/Object;Ljava/lang/Class;Lorg/springframework/core/MethodParameter;)Ljava/lang/Object;
aastore
end local 20 41: goto 49
42: StackMap locals: org.springframework.web.method.annotation.ModelAttributeMethodProcessor java.lang.reflect.Constructor java.lang.String org.springframework.core.MethodParameter org.springframework.web.bind.support.WebDataBinderFactory org.springframework.web.context.request.NativeWebRequest java.lang.Object java.beans.ConstructorProperties java.lang.String[] java.lang.Class[] java.lang.Object[] org.springframework.web.bind.WebDataBinder java.lang.String java.lang.String int java.util.Set int java.lang.String java.lang.Class java.lang.Object
StackMap stack: org.springframework.beans.TypeMismatchException
astore 20
start local 20 43: aload 20
aload 17
invokevirtual org.springframework.beans.TypeMismatchException.initPropertyName:(Ljava/lang/String;)V
44: aload 10
iload 16
aload 19
aastore
45: aload 15
aload 17
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
46: aload 11
invokevirtual org.springframework.web.bind.WebDataBinder.getBindingResult:()Lorg/springframework/validation/BindingResult;
aload 17
aload 18
aload 19
invokeinterface org.springframework.validation.BindingResult.recordFieldValue:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)V
47: aload 11
invokevirtual org.springframework.web.bind.WebDataBinder.getBindingErrorProcessor:()Lorg/springframework/validation/BindingErrorProcessor;
aload 20
aload 11
invokevirtual org.springframework.web.bind.WebDataBinder.getBindingResult:()Lorg/springframework/validation/BindingResult;
invokeinterface org.springframework.validation.BindingErrorProcessor.processPropertyAccessException:(Lorg/springframework/beans/PropertyAccessException;Lorg/springframework/validation/BindingResult;)V
48: iconst_1
istore 14
end local 20 end local 19 end local 18 end local 17 49: StackMap locals:
StackMap stack:
iinc 16 1
StackMap locals:
StackMap stack:
50: iload 16
aload 8
arraylength
if_icmplt 25
end local 16 51: iload 14
ifeq 63
52: aload 11
invokevirtual org.springframework.web.bind.WebDataBinder.getBindingResult:()Lorg/springframework/validation/BindingResult;
astore 16
start local 16 53: iconst_0
istore 17
start local 17 54: goto 61
55: StackMap locals: org.springframework.web.method.annotation.ModelAttributeMethodProcessor java.lang.reflect.Constructor java.lang.String org.springframework.core.MethodParameter org.springframework.web.bind.support.WebDataBinderFactory org.springframework.web.context.request.NativeWebRequest java.lang.Object java.beans.ConstructorProperties java.lang.String[] java.lang.Class[] java.lang.Object[] org.springframework.web.bind.WebDataBinder java.lang.String java.lang.String int java.util.Set org.springframework.validation.BindingResult int
StackMap stack:
aload 8
iload 17
aaload
astore 18
start local 18 56: aload 15
aload 18
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 60
57: aload 10
iload 17
aaload
astore 19
start local 19 58: aload 16
aload 18
aload 9
iload 17
aaload
aload 19
invokeinterface org.springframework.validation.BindingResult.recordFieldValue:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)V
59: aload 0
aload 11
aload 3
aload 1
invokevirtual java.lang.reflect.Constructor.getDeclaringClass:()Ljava/lang/Class;
aload 18
aload 19
invokevirtual org.springframework.web.method.annotation.ModelAttributeMethodProcessor.validateValueIfApplicable:(Lorg/springframework/web/bind/WebDataBinder;Lorg/springframework/core/MethodParameter;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)V
end local 19 end local 18 60: StackMap locals:
StackMap stack:
iinc 17 1
StackMap locals:
StackMap stack:
61: iload 17
aload 8
arraylength
if_icmplt 55
end local 17 62: new org.springframework.validation.BindException
dup
aload 16
invokespecial org.springframework.validation.BindException.<init>:(Lorg/springframework/validation/BindingResult;)V
athrow
end local 16 63: StackMap locals:
StackMap stack:
aload 1
aload 10
invokestatic org.springframework.beans.BeanUtils.instantiateClass:(Ljava/lang/reflect/Constructor;[Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 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 64 0 this Lorg/springframework/web/method/annotation/ModelAttributeMethodProcessor;
0 64 1 ctor Ljava/lang/reflect/Constructor<*>;
0 64 2 attributeName Ljava/lang/String;
0 64 3 parameter Lorg/springframework/core/MethodParameter;
0 64 4 binderFactory Lorg/springframework/web/bind/support/WebDataBinderFactory;
0 64 5 webRequest Lorg/springframework/web/context/request/NativeWebRequest;
1 64 6 constructed Ljava/lang/Object;
6 64 7 cp Ljava/beans/ConstructorProperties;
9 64 8 paramNames [Ljava/lang/String;
13 64 9 paramTypes [Ljava/lang/Class;
18 64 10 args [Ljava/lang/Object;
19 64 11 binder Lorg/springframework/web/bind/WebDataBinder;
20 64 12 fieldDefaultPrefix Ljava/lang/String;
21 64 13 fieldMarkerPrefix Ljava/lang/String;
22 64 14 bindingFailure Z
23 64 15 failedParams Ljava/util/Set<Ljava/lang/String;>;
24 51 16 i I
26 49 17 paramName Ljava/lang/String;
27 49 18 paramType Ljava/lang/Class<*>;
28 49 19 value Ljava/lang/Object;
35 41 20 methodParam Lorg/springframework/core/MethodParameter;
43 49 20 ex Lorg/springframework/beans/TypeMismatchException;
53 63 16 result Lorg/springframework/validation/BindingResult;
54 62 17 i I
56 60 18 paramName Ljava/lang/String;
58 60 19 value Ljava/lang/Object;
Exception table:
from to target type
34 41 42 Class org.springframework.beans.TypeMismatchException
Exceptions:
throws java.lang.Exception
Signature: (Ljava/lang/reflect/Constructor<*>;Ljava/lang/String;Lorg/springframework/core/MethodParameter;Lorg/springframework/web/bind/support/WebDataBinderFactory;Lorg/springframework/web/context/request/NativeWebRequest;)Ljava/lang/Object;
MethodParameters:
Name Flags
ctor
attributeName
parameter
binderFactory
webRequest
protected constructAttribute(java.lang.reflect.Constructor<?>, java.lang.String, org.springframework.web.bind.support.WebDataBinderFactory, org.springframework.web.context.request.NativeWebRequest);
descriptor: (Ljava/lang/reflect/Constructor;Ljava/lang/String;Lorg/springframework/web/bind/support/WebDataBinderFactory;Lorg/springframework/web/context/request/NativeWebRequest;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aconst_null
areturn
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/ModelAttributeMethodProcessor;
0 1 1 ctor Ljava/lang/reflect/Constructor<*>;
0 1 2 attributeName Ljava/lang/String;
0 1 3 binderFactory Lorg/springframework/web/bind/support/WebDataBinderFactory;
0 1 4 webRequest Lorg/springframework/web/context/request/NativeWebRequest;
Exceptions:
throws java.lang.Exception
Signature: (Ljava/lang/reflect/Constructor<*>;Ljava/lang/String;Lorg/springframework/web/bind/support/WebDataBinderFactory;Lorg/springframework/web/context/request/NativeWebRequest;)Ljava/lang/Object;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
ctor
attributeName
binderFactory
webRequest
protected void bindRequestParameters(org.springframework.web.bind.WebDataBinder, org.springframework.web.context.request.NativeWebRequest);
descriptor: (Lorg/springframework/web/bind/WebDataBinder;Lorg/springframework/web/context/request/NativeWebRequest;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
checkcast org.springframework.web.bind.support.WebRequestDataBinder
aload 2
invokevirtual org.springframework.web.bind.support.WebRequestDataBinder.bind:(Lorg/springframework/web/context/request/WebRequest;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/web/method/annotation/ModelAttributeMethodProcessor;
0 2 1 binder Lorg/springframework/web/bind/WebDataBinder;
0 2 2 request Lorg/springframework/web/context/request/NativeWebRequest;
MethodParameters:
Name Flags
binder
request
protected void validateIfApplicable(org.springframework.web.bind.WebDataBinder, org.springframework.core.MethodParameter);
descriptor: (Lorg/springframework/web/bind/WebDataBinder;Lorg/springframework/core/MethodParameter;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual org.springframework.core.MethodParameter.getParameterAnnotations:()[Ljava/lang/annotation/Annotation;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 7
StackMap locals: org.springframework.web.method.annotation.ModelAttributeMethodProcessor org.springframework.web.bind.WebDataBinder org.springframework.core.MethodParameter top int int java.lang.annotation.Annotation[]
StackMap stack:
1: aload 6
iload 4
aaload
astore 3
start local 3 2: aload 0
aload 3
invokevirtual org.springframework.web.method.annotation.ModelAttributeMethodProcessor.determineValidationHints:(Ljava/lang/annotation/Annotation;)[Ljava/lang/Object;
astore 7
start local 7 3: aload 7
ifnull 6
4: aload 1
aload 7
invokevirtual org.springframework.web.bind.WebDataBinder.validate:([Ljava/lang/Object;)V
5: goto 8
end local 7 end local 3 6: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
7: iload 4
iload 5
if_icmplt 1
8: StackMap locals: org.springframework.web.method.annotation.ModelAttributeMethodProcessor org.springframework.web.bind.WebDataBinder org.springframework.core.MethodParameter
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/springframework/web/method/annotation/ModelAttributeMethodProcessor;
0 9 1 binder Lorg/springframework/web/bind/WebDataBinder;
0 9 2 parameter Lorg/springframework/core/MethodParameter;
2 6 3 ann Ljava/lang/annotation/Annotation;
3 6 7 validationHints [Ljava/lang/Object;
MethodParameters:
Name Flags
binder
parameter
protected void validateValueIfApplicable(org.springframework.web.bind.WebDataBinder, org.springframework.core.MethodParameter, java.lang.Class<?>, java.lang.String, );
descriptor: (Lorg/springframework/web/bind/WebDataBinder;Lorg/springframework/core/MethodParameter;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=13, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 2
invokevirtual org.springframework.core.MethodParameter.getParameterAnnotations:()[Ljava/lang/annotation/Annotation;
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 15
StackMap locals: org.springframework.web.method.annotation.ModelAttributeMethodProcessor org.springframework.web.bind.WebDataBinder org.springframework.core.MethodParameter java.lang.Class java.lang.String java.lang.Object top int int java.lang.annotation.Annotation[]
StackMap stack:
1: aload 9
iload 7
aaload
astore 6
start local 6 2: aload 0
aload 6
invokevirtual org.springframework.web.method.annotation.ModelAttributeMethodProcessor.determineValidationHints:(Ljava/lang/annotation/Annotation;)[Ljava/lang/Object;
astore 10
start local 10 3: aload 10
ifnull 14
4: aload 1
invokevirtual org.springframework.web.bind.WebDataBinder.getValidators:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 12
goto 12
StackMap locals: org.springframework.web.method.annotation.ModelAttributeMethodProcessor org.springframework.web.bind.WebDataBinder org.springframework.core.MethodParameter java.lang.Class java.lang.String java.lang.Object java.lang.annotation.Annotation int int java.lang.annotation.Annotation[] java.lang.Object[] top java.util.Iterator
StackMap stack:
5: aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.springframework.validation.Validator
astore 11
start local 11 6: aload 11
instanceof org.springframework.validation.SmartValidator
ifeq 12
7: aload 11
checkcast org.springframework.validation.SmartValidator
aload 3
aload 4
aload 5
8: aload 1
invokevirtual org.springframework.web.bind.WebDataBinder.getBindingResult:()Lorg/springframework/validation/BindingResult;
aload 10
9: invokeinterface org.springframework.validation.SmartValidator.validateValue:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Object;Lorg/springframework/validation/Errors;[Ljava/lang/Object;)V
10: goto 12
11: StackMap locals: org.springframework.web.method.annotation.ModelAttributeMethodProcessor org.springframework.web.bind.WebDataBinder org.springframework.core.MethodParameter java.lang.Class java.lang.String java.lang.Object java.lang.annotation.Annotation int int java.lang.annotation.Annotation[] java.lang.Object[] org.springframework.validation.Validator java.util.Iterator
StackMap stack: java.lang.IllegalArgumentException
pop
end local 11 12: StackMap locals: org.springframework.web.method.annotation.ModelAttributeMethodProcessor org.springframework.web.bind.WebDataBinder org.springframework.core.MethodParameter java.lang.Class java.lang.String java.lang.Object java.lang.annotation.Annotation int int java.lang.annotation.Annotation[] java.lang.Object[] top java.util.Iterator
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
13: goto 16
end local 10 end local 6 14: StackMap locals: org.springframework.web.method.annotation.ModelAttributeMethodProcessor org.springframework.web.bind.WebDataBinder org.springframework.core.MethodParameter java.lang.Class java.lang.String java.lang.Object top int int java.lang.annotation.Annotation[]
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
15: iload 7
iload 8
if_icmplt 1
16: StackMap locals: org.springframework.web.method.annotation.ModelAttributeMethodProcessor org.springframework.web.bind.WebDataBinder org.springframework.core.MethodParameter java.lang.Class java.lang.String java.lang.Object
StackMap stack:
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 17 0 this Lorg/springframework/web/method/annotation/ModelAttributeMethodProcessor;
0 17 1 binder Lorg/springframework/web/bind/WebDataBinder;
0 17 2 parameter Lorg/springframework/core/MethodParameter;
0 17 3 targetType Ljava/lang/Class<*>;
0 17 4 fieldName Ljava/lang/String;
0 17 5 value Ljava/lang/Object;
2 14 6 ann Ljava/lang/annotation/Annotation;
3 14 10 validationHints [Ljava/lang/Object;
6 12 11 validator Lorg/springframework/validation/Validator;
Exception table:
from to target type
7 10 11 Class java.lang.IllegalArgumentException
Signature: (Lorg/springframework/web/bind/WebDataBinder;Lorg/springframework/core/MethodParameter;Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/Object;)V
RuntimeVisibleParameterAnnotations:
0:
1:
2:
3:
4:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
binder
parameter
targetType
fieldName
value
private java.lang.Object[] determineValidationHints(java.lang.annotation.Annotation);
descriptor: (Ljava/lang/annotation/Annotation;)[Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ldc Lorg/springframework/validation/annotation/Validated;
invokestatic org.springframework.core.annotation.AnnotationUtils.getAnnotation:(Ljava/lang/annotation/Annotation;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast org.springframework.validation.annotation.Validated
astore 2
start local 2 1: aload 2
ifnonnull 2
aload 1
invokeinterface java.lang.annotation.Annotation.annotationType:()Ljava/lang/Class;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
ldc "Valid"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 10
2: StackMap locals: org.springframework.validation.annotation.Validated
StackMap stack:
aload 2
ifnull 3
aload 2
invokeinterface org.springframework.validation.annotation.Validated.value:()[Ljava/lang/Class;
goto 4
StackMap locals:
StackMap stack:
3: aload 1
invokestatic org.springframework.core.annotation.AnnotationUtils.getValue:(Ljava/lang/annotation/Annotation;)Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object
4: astore 3
start local 3 5: aload 3
ifnonnull 7
6: iconst_0
anewarray java.lang.Object
areturn
7: StackMap locals: java.lang.Object
StackMap stack:
aload 3
instanceof java.lang.Object[]
ifeq 8
aload 3
checkcast java.lang.Object[]
goto 9
StackMap locals:
StackMap stack:
8: iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
StackMap locals:
StackMap stack: java.lang.Object[]
9: areturn
end local 3 10: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/springframework/web/method/annotation/ModelAttributeMethodProcessor;
0 11 1 ann Ljava/lang/annotation/Annotation;
1 11 2 validatedAnn Lorg/springframework/validation/annotation/Validated;
5 10 3 hints Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
ann
protected boolean isBindExceptionRequired(org.springframework.web.bind.WebDataBinder, org.springframework.core.MethodParameter);
descriptor: (Lorg/springframework/web/bind/WebDataBinder;Lorg/springframework/core/MethodParameter;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokevirtual org.springframework.web.method.annotation.ModelAttributeMethodProcessor.isBindExceptionRequired:(Lorg/springframework/core/MethodParameter;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/method/annotation/ModelAttributeMethodProcessor;
0 1 1 binder Lorg/springframework/web/bind/WebDataBinder;
0 1 2 parameter Lorg/springframework/core/MethodParameter;
MethodParameters:
Name Flags
binder
parameter
protected boolean isBindExceptionRequired(org.springframework.core.MethodParameter);
descriptor: (Lorg/springframework/core/MethodParameter;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.springframework.core.MethodParameter.getParameterIndex:()I
istore 2
start local 2 1: aload 1
invokevirtual org.springframework.core.MethodParameter.getExecutable:()Ljava/lang/reflect/Executable;
invokevirtual java.lang.reflect.Executable.getParameterTypes:()[Ljava/lang/Class;
astore 3
start local 3 2: aload 3
arraylength
iload 2
iconst_1
iadd
if_icmple 3
ldc Lorg/springframework/validation/Errors;
aload 3
iload 2
iconst_1
iadd
aaload
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 3
iconst_1
goto 4
StackMap locals: int java.lang.Class[]
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: istore 4
start local 4 5: iload 4
ifeq 6
iconst_0
goto 7
StackMap locals: int
StackMap stack:
6: iconst_1
StackMap locals:
StackMap stack: int
7: ireturn
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/annotation/ModelAttributeMethodProcessor;
0 8 1 parameter Lorg/springframework/core/MethodParameter;
1 8 2 i I
2 8 3 paramTypes [Ljava/lang/Class;
5 8 4 hasBindingResult Z
MethodParameters:
Name Flags
parameter
public boolean supportsReturnType(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 1
ldc Lorg/springframework/web/bind/annotation/ModelAttribute;
invokevirtual org.springframework.core.MethodParameter.hasMethodAnnotation:(Ljava/lang/Class;)Z
ifne 3
1: aload 0
getfield org.springframework.web.method.annotation.ModelAttributeMethodProcessor.annotationNotRequired:Z
ifeq 2
aload 1
invokevirtual org.springframework.core.MethodParameter.getParameterType:()Ljava/lang/Class;
invokestatic org.springframework.beans.BeanUtils.isSimpleProperty:(Ljava/lang/Class;)Z
ifeq 3
2: StackMap locals:
StackMap stack:
iconst_0
ireturn
StackMap locals:
StackMap stack:
3: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/web/method/annotation/ModelAttributeMethodProcessor;
0 4 1 returnType Lorg/springframework/core/MethodParameter;
MethodParameters:
Name Flags
returnType
public void handleReturnValue(java.lang.Object, org.springframework.core.MethodParameter, org.springframework.web.method.support.ModelAndViewContainer, org.springframework.web.context.request.NativeWebRequest);
descriptor: (Ljava/lang/Object;Lorg/springframework/core/MethodParameter;Lorg/springframework/web/method/support/ModelAndViewContainer;Lorg/springframework/web/context/request/NativeWebRequest;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
ifnull 3
1: aload 1
aload 2
invokestatic org.springframework.web.method.annotation.ModelFactory.getNameForReturnValue:(Ljava/lang/Object;Lorg/springframework/core/MethodParameter;)Ljava/lang/String;
astore 5
start local 5 2: aload 3
aload 5
aload 1
invokevirtual org.springframework.web.method.support.ModelAndViewContainer.addAttribute:(Ljava/lang/String;Ljava/lang/Object;)Lorg/springframework/web/method/support/ModelAndViewContainer;
pop
end local 5 3: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/web/method/annotation/ModelAttributeMethodProcessor;
0 4 1 returnValue Ljava/lang/Object;
0 4 2 returnType Lorg/springframework/core/MethodParameter;
0 4 3 mavContainer Lorg/springframework/web/method/support/ModelAndViewContainer;
0 4 4 webRequest Lorg/springframework/web/context/request/NativeWebRequest;
2 3 5 name Ljava/lang/String;
Exceptions:
throws java.lang.Exception
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
2:
3:
MethodParameters:
Name Flags
returnValue
returnType
mavContainer
webRequest
private static java.lang.String lambda$0(java.lang.reflect.Constructor);
descriptor: (Ljava/lang/reflect/Constructor;)Ljava/lang/String;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=1
0: new java.lang.StringBuilder
dup
ldc "Cannot resolve parameter names for constructor "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
LocalVariableTable:
Start End Slot Name Signature
private static java.lang.String lambda$1(java.lang.String[], java.lang.reflect.Constructor);
descriptor: ([Ljava/lang/String;Ljava/lang/reflect/Constructor;)Ljava/lang/String;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=2, args_size=2
0: new java.lang.StringBuilder
dup
ldc "Invalid number of parameter names: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " for constructor "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "ModelAttributeMethodProcessor.java"
NestMembers:
org.springframework.web.method.annotation.ModelAttributeMethodProcessor$FieldAwareConstructorParameter
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
private FieldAwareConstructorParameter = org.springframework.web.method.annotation.ModelAttributeMethodProcessor$FieldAwareConstructorParameter of org.springframework.web.method.annotation.ModelAttributeMethodProcessor