public class org.springframework.validation.beanvalidation.MethodValidationInterceptor implements org.aopalliance.intercept.MethodInterceptor
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.validation.beanvalidation.MethodValidationInterceptor
super_class: java.lang.Object
{
private final javax.validation.Validator validator;
descriptor: Ljavax/validation/Validator;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokestatic javax.validation.Validation.buildDefaultValidatorFactory:()Ljavax/validation/ValidatorFactory;
invokespecial org.springframework.validation.beanvalidation.MethodValidationInterceptor.<init>:(Ljavax/validation/ValidatorFactory;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/validation/beanvalidation/MethodValidationInterceptor;
public void <init>(javax.validation.ValidatorFactory);
descriptor: (Ljavax/validation/ValidatorFactory;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokeinterface javax.validation.ValidatorFactory.getValidator:()Ljavax/validation/Validator;
invokespecial org.springframework.validation.beanvalidation.MethodValidationInterceptor.<init>:(Ljavax/validation/Validator;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/validation/beanvalidation/MethodValidationInterceptor;
0 2 1 validatorFactory Ljavax/validation/ValidatorFactory;
MethodParameters:
Name Flags
validatorFactory
public void <init>(javax.validation.Validator);
descriptor: (Ljavax/validation/Validator;)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 1
putfield org.springframework.validation.beanvalidation.MethodValidationInterceptor.validator:Ljavax/validation/Validator;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/validation/beanvalidation/MethodValidationInterceptor;
0 3 1 validator Ljavax/validation/Validator;
MethodParameters:
Name Flags
validator
public java.lang.Object invoke(org.aopalliance.intercept.MethodInvocation);
descriptor: (Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokeinterface org.aopalliance.intercept.MethodInvocation.getMethod:()Ljava/lang/reflect/Method;
invokevirtual org.springframework.validation.beanvalidation.MethodValidationInterceptor.isFactoryBeanMetadataMethod:(Ljava/lang/reflect/Method;)Z
ifeq 2
1: aload 1
invokeinterface org.aopalliance.intercept.MethodInvocation.proceed:()Ljava/lang/Object;
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.springframework.validation.beanvalidation.MethodValidationInterceptor.determineValidationGroups:(Lorg/aopalliance/intercept/MethodInvocation;)[Ljava/lang/Class;
astore 2
start local 2 3: aload 0
getfield org.springframework.validation.beanvalidation.MethodValidationInterceptor.validator:Ljavax/validation/Validator;
invokeinterface javax.validation.Validator.forExecutables:()Ljavax/validation/executable/ExecutableValidator;
astore 3
start local 3 4: aload 1
invokeinterface org.aopalliance.intercept.MethodInvocation.getMethod:()Ljava/lang/reflect/Method;
astore 4
start local 4 5: aload 3
6: aload 1
invokeinterface org.aopalliance.intercept.MethodInvocation.getThis:()Ljava/lang/Object;
aload 4
aload 1
invokeinterface org.aopalliance.intercept.MethodInvocation.getArguments:()[Ljava/lang/Object;
aload 2
7: invokeinterface javax.validation.executable.ExecutableValidator.validateParameters:(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;[Ljava/lang/Class;)Ljava/util/Set;
astore 5
start local 5 8: goto 15
end local 5 9: StackMap locals: org.springframework.validation.beanvalidation.MethodValidationInterceptor org.aopalliance.intercept.MethodInvocation java.lang.Class[] javax.validation.executable.ExecutableValidator java.lang.reflect.Method
StackMap stack: java.lang.IllegalArgumentException
pop
10: aload 1
invokeinterface org.aopalliance.intercept.MethodInvocation.getMethod:()Ljava/lang/reflect/Method;
aload 1
invokeinterface org.aopalliance.intercept.MethodInvocation.getThis:()Ljava/lang/Object;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokestatic org.springframework.util.ClassUtils.getMostSpecificMethod:(Ljava/lang/reflect/Method;Ljava/lang/Class;)Ljava/lang/reflect/Method;
11: invokestatic org.springframework.core.BridgeMethodResolver.findBridgedMethod:(Ljava/lang/reflect/Method;)Ljava/lang/reflect/Method;
astore 4
12: aload 3
13: aload 1
invokeinterface org.aopalliance.intercept.MethodInvocation.getThis:()Ljava/lang/Object;
aload 4
aload 1
invokeinterface org.aopalliance.intercept.MethodInvocation.getArguments:()[Ljava/lang/Object;
aload 2
14: invokeinterface javax.validation.executable.ExecutableValidator.validateParameters:(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;[Ljava/lang/Class;)Ljava/util/Set;
astore 5
start local 5 15: StackMap locals: java.util.Set
StackMap stack:
aload 5
invokeinterface java.util.Set.isEmpty:()Z
ifne 17
16: new javax.validation.ConstraintViolationException
dup
aload 5
invokespecial javax.validation.ConstraintViolationException.<init>:(Ljava/util/Set;)V
athrow
17: StackMap locals:
StackMap stack:
aload 1
invokeinterface org.aopalliance.intercept.MethodInvocation.proceed:()Ljava/lang/Object;
astore 6
start local 6 18: aload 3
aload 1
invokeinterface org.aopalliance.intercept.MethodInvocation.getThis:()Ljava/lang/Object;
aload 4
aload 6
aload 2
invokeinterface javax.validation.executable.ExecutableValidator.validateReturnValue:(Ljava/lang/Object;Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Class;)Ljava/util/Set;
astore 5
19: aload 5
invokeinterface java.util.Set.isEmpty:()Z
ifne 21
20: new javax.validation.ConstraintViolationException
dup
aload 5
invokespecial javax.validation.ConstraintViolationException.<init>:(Ljava/util/Set;)V
athrow
21: StackMap locals: java.lang.Object
StackMap stack:
aload 6
areturn
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 22 0 this Lorg/springframework/validation/beanvalidation/MethodValidationInterceptor;
0 22 1 invocation Lorg/aopalliance/intercept/MethodInvocation;
3 22 2 groups [Ljava/lang/Class;
4 22 3 execVal Ljavax/validation/executable/ExecutableValidator;
5 22 4 methodToValidate Ljava/lang/reflect/Method;
8 9 5 result Ljava/util/Set<Ljavax/validation/ConstraintViolation<Ljava/lang/Object;>;>;
15 22 5 result Ljava/util/Set<Ljavax/validation/ConstraintViolation<Ljava/lang/Object;>;>;
18 22 6 returnValue Ljava/lang/Object;
Exception table:
from to target type
5 8 9 Class java.lang.IllegalArgumentException
Exceptions:
throws java.lang.Throwable
MethodParameters:
Name Flags
invocation
private boolean isFactoryBeanMetadataMethod(java.lang.reflect.Method);
descriptor: (Ljava/lang/reflect/Method;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
astore 2
start local 2 1: aload 2
invokevirtual java.lang.Class.isInterface:()Z
ifeq 6
2: aload 2
ldc Lorg/springframework/beans/factory/FactoryBean;
if_acmpeq 3
aload 2
ldc Lorg/springframework/beans/factory/SmartFactoryBean;
if_acmpne 5
3: StackMap locals: java.lang.Class
StackMap stack:
aload 1
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
ldc "getObject"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 5
4: iconst_1
ireturn
StackMap locals:
StackMap stack:
5: iconst_0
ireturn
6: StackMap locals:
StackMap stack:
aconst_null
astore 3
start local 3 7: ldc Lorg/springframework/beans/factory/SmartFactoryBean;
aload 2
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 10
8: ldc Lorg/springframework/beans/factory/SmartFactoryBean;
astore 3
9: goto 12
10: StackMap locals: java.lang.Class
StackMap stack:
ldc Lorg/springframework/beans/factory/FactoryBean;
aload 2
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 12
11: ldc Lorg/springframework/beans/factory/FactoryBean;
astore 3
12: StackMap locals:
StackMap stack:
aload 3
ifnull 15
aload 1
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
ldc "getObject"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 15
13: aload 3
aload 1
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
aload 1
invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
invokestatic org.springframework.util.ClassUtils.hasMethod:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Z
ifeq 15
14: iconst_1
ireturn
StackMap locals:
StackMap stack:
15: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/springframework/validation/beanvalidation/MethodValidationInterceptor;
0 16 1 method Ljava/lang/reflect/Method;
1 16 2 clazz Ljava/lang/Class<*>;
7 16 3 factoryBeanType Ljava/lang/Class<*>;
MethodParameters:
Name Flags
method
protected java.lang.Class<?>[] determineValidationGroups(org.aopalliance.intercept.MethodInvocation);
descriptor: (Lorg/aopalliance/intercept/MethodInvocation;)[Ljava/lang/Class;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface org.aopalliance.intercept.MethodInvocation.getMethod:()Ljava/lang/reflect/Method;
ldc Lorg/springframework/validation/annotation/Validated;
invokestatic org.springframework.core.annotation.AnnotationUtils.findAnnotation:(Ljava/lang/reflect/Method;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast org.springframework.validation.annotation.Validated
astore 2
start local 2 1: aload 2
ifnonnull 3
2: aload 1
invokeinterface org.aopalliance.intercept.MethodInvocation.getThis:()Ljava/lang/Object;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
ldc Lorg/springframework/validation/annotation/Validated;
invokestatic org.springframework.core.annotation.AnnotationUtils.findAnnotation:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast org.springframework.validation.annotation.Validated
astore 2
3: StackMap locals: org.springframework.validation.annotation.Validated
StackMap stack:
aload 2
ifnull 4
aload 2
invokeinterface org.springframework.validation.annotation.Validated.value:()[Ljava/lang/Class;
goto 5
StackMap locals:
StackMap stack:
4: iconst_0
anewarray java.lang.Class
StackMap locals:
StackMap stack: java.lang.Class[]
5: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/validation/beanvalidation/MethodValidationInterceptor;
0 6 1 invocation Lorg/aopalliance/intercept/MethodInvocation;
1 6 2 validatedAnn Lorg/springframework/validation/annotation/Validated;
Signature: (Lorg/aopalliance/intercept/MethodInvocation;)[Ljava/lang/Class<*>;
MethodParameters:
Name Flags
invocation
}
SourceFile: "MethodValidationInterceptor.java"