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
{
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
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=3, locals=5, args_size=5
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problems: \n\tBindingResult cannot be resolved to a type\n\tThe method getModel() from the type ModelAndViewContainer refers to the missing type ModelMap\n\tBindException cannot be resolved to a type\n\tThe method getTarget() is undefined for the type WebDataBinder\n\tThe method getBindingResult() is undefined for the type WebDataBinder\n\tBindException cannot be resolved to a type\n\tThe method getBindingResult() is undefined for the type WebDataBinder\n\tThe method getTarget() is undefined for the type WebDataBinder\n\tThe method getBindingResult() 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/ModelAttributeMethodProcessor;
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=9, 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.getResolvableConstructor:(Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
astore 7
start local 7 3: 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 4: aload 2
aload 5
if_acmpeq 6
5: aload 8
invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
astore 8
6: 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.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 7 0 this Lorg/springframework/web/method/annotation/ModelAttributeMethodProcessor;
0 7 1 attributeName Ljava/lang/String;
0 7 2 parameter Lorg/springframework/core/MethodParameter;
0 7 3 binderFactory Lorg/springframework/web/bind/support/WebDataBinderFactory;
0 7 4 webRequest Lorg/springframework/web/context/request/NativeWebRequest;
1 7 5 nestedParameter Lorg/springframework/core/MethodParameter;
2 7 6 clazz Ljava/lang/Class<*>;
3 7 7 ctor Ljava/lang/reflect/Constructor<*>;
4 7 8 attribute Ljava/lang/Object;
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=3, locals=6, args_size=6
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problems: \n\tThe method convertIfNecessary(Object, Class<capture#22-of ?>, MethodParameter) is undefined for the type WebDataBinder\n\tThe method getBindingResult() is undefined for the type WebDataBinder\n\tThe method getBindingErrorProcessor() is undefined for the type WebDataBinder\n\tThe method getBindingResult() is undefined for the type WebDataBinder\n\tBindingResult cannot be resolved to a type\n\tThe method getBindingResult() is undefined for the type WebDataBinder\n\tNo exception of type new BindException(){} can be thrown; an exception type must be a subclass of Throwable\n\tBindException cannot be resolved to a type\n\tThe method getTarget() of type new BindException(){} must override or implement a supertype method\n\tBindException cannot be resolved to a type\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/ModelAttributeMethodProcessor;
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 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
public resolveConstructorArgument(java.lang.String, java.lang.Class<?>, org.springframework.web.context.request.NativeWebRequest);
descriptor: (Ljava/lang/String;Ljava/lang/Class;Lorg/springframework/web/context/request/NativeWebRequest;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=4
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problems: \n\tHttpServletRequest cannot be resolved to a type\n\tType mismatch: cannot convert from HttpServletRequest to HttpServletRequest\n\tHttpServletRequest cannot be resolved to a type\n\tPart cannot be resolved to a type\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/ModelAttributeMethodProcessor;
Exceptions:
throws java.lang.Exception
Signature: (Ljava/lang/String;Ljava/lang/Class<*>;Lorg/springframework/web/context/request/NativeWebRequest;)Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
paramName
paramType
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=3, locals=3, args_size=3
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tThe method validate(Object[]) 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/ModelAttributeMethodProcessor;
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=3, locals=6, args_size=6
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problems: \n\tValidator cannot be resolved to a type\n\tThe method getValidators() is undefined for the type WebDataBinder\n\tSmartValidator cannot be resolved to a type\n\tSmartValidator cannot be resolved to a type\n\tThe method getBindingResult() 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/ModelAttributeMethodProcessor;
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=3, locals=2, args_size=2
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problems: \n\tValidated cannot be resolved to a type\n\tThe method getAnnotation(Annotation, Class<A>) in the type AnnotationUtils is not applicable for the arguments (Annotation, Class<Validated>)\n\tValidated cannot be resolved to a type\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/ModelAttributeMethodProcessor;
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=3, locals=2, args_size=2
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tErrors cannot be resolved to a type\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/ModelAttributeMethodProcessor;
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
}
SourceFile: "ModelAttributeMethodProcessor.java"
NestMembers:
org.springframework.web.method.annotation.ModelAttributeMethodProcessor$1 org.springframework.web.method.annotation.ModelAttributeMethodProcessor$FieldAwareConstructorParameter
InnerClasses:
private FieldAwareConstructorParameter = org.springframework.web.method.annotation.ModelAttributeMethodProcessor$FieldAwareConstructorParameter of org.springframework.web.method.annotation.ModelAttributeMethodProcessor