class org.springframework.data.projection.SpelEvaluatingMethodInterceptor implements org.aopalliance.intercept.MethodInterceptor
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.springframework.data.projection.SpelEvaluatingMethodInterceptor
super_class: java.lang.Object
{
private static final org.springframework.expression.ParserContext PARSER_CONTEXT;
descriptor: Lorg/springframework/expression/ParserContext;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final org.springframework.expression.EvaluationContext evaluationContext;
descriptor: Lorg/springframework/expression/EvaluationContext;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.aopalliance.intercept.MethodInterceptor delegate;
descriptor: Lorg/aopalliance/intercept/MethodInterceptor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Map<java.lang.Integer, org.springframework.expression.Expression> expressions;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Integer;Lorg/springframework/expression/Expression;>;
private final java.lang.Object target;
descriptor: Ljava/lang/Object;
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.expression.common.TemplateParserContext
dup
invokespecial org.springframework.expression.common.TemplateParserContext.<init>:()V
putstatic org.springframework.data.projection.SpelEvaluatingMethodInterceptor.PARSER_CONTEXT:Lorg/springframework/expression/ParserContext;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.aopalliance.intercept.MethodInterceptor, , org.springframework.beans.factory.BeanFactory, org.springframework.expression.spel.standard.SpelExpressionParser, java.lang.Class<?>);
descriptor: (Lorg/aopalliance/intercept/MethodInterceptor;Ljava/lang/Object;Lorg/springframework/beans/factory/BeanFactory;Lorg/springframework/expression/spel/standard/SpelExpressionParser;Ljava/lang/Class;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 1
ldc "Delegate MethodInterceptor must not be null!"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
2: aload 2
ldc "Target object must not be null!"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
3: aload 4
ldc "SpelExpressionParser must not be null!"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
4: aload 5
ldc "Target interface must not be null!"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
5: new org.springframework.expression.spel.support.StandardEvaluationContext
dup
invokespecial org.springframework.expression.spel.support.StandardEvaluationContext.<init>:()V
astore 6
start local 6 6: aload 2
instanceof java.util.Map
ifeq 8
7: aload 6
new org.springframework.context.expression.MapAccessor
dup
invokespecial org.springframework.context.expression.MapAccessor.<init>:()V
invokevirtual org.springframework.expression.spel.support.StandardEvaluationContext.addPropertyAccessor:(Lorg/springframework/expression/PropertyAccessor;)V
8: StackMap locals: org.springframework.data.projection.SpelEvaluatingMethodInterceptor org.aopalliance.intercept.MethodInterceptor java.lang.Object org.springframework.beans.factory.BeanFactory org.springframework.expression.spel.standard.SpelExpressionParser java.lang.Class org.springframework.expression.spel.support.StandardEvaluationContext
StackMap stack:
aload 3
ifnull 10
9: aload 6
new org.springframework.context.expression.BeanFactoryResolver
dup
aload 3
invokespecial org.springframework.context.expression.BeanFactoryResolver.<init>:(Lorg/springframework/beans/factory/BeanFactory;)V
invokevirtual org.springframework.expression.spel.support.StandardEvaluationContext.setBeanResolver:(Lorg/springframework/expression/BeanResolver;)V
10: StackMap locals:
StackMap stack:
aload 0
aload 4
aload 5
invokestatic org.springframework.data.projection.SpelEvaluatingMethodInterceptor.potentiallyCreateExpressionsForMethodsOnTargetInterface:(Lorg/springframework/expression/spel/standard/SpelExpressionParser;Ljava/lang/Class;)Ljava/util/Map;
putfield org.springframework.data.projection.SpelEvaluatingMethodInterceptor.expressions:Ljava/util/Map;
11: aload 0
aload 6
putfield org.springframework.data.projection.SpelEvaluatingMethodInterceptor.evaluationContext:Lorg/springframework/expression/EvaluationContext;
12: aload 0
aload 1
putfield org.springframework.data.projection.SpelEvaluatingMethodInterceptor.delegate:Lorg/aopalliance/intercept/MethodInterceptor;
13: aload 0
aload 2
putfield org.springframework.data.projection.SpelEvaluatingMethodInterceptor.target:Ljava/lang/Object;
14: return
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 15 0 this Lorg/springframework/data/projection/SpelEvaluatingMethodInterceptor;
0 15 1 delegate Lorg/aopalliance/intercept/MethodInterceptor;
0 15 2 target Ljava/lang/Object;
0 15 3 beanFactory Lorg/springframework/beans/factory/BeanFactory;
0 15 4 parser Lorg/springframework/expression/spel/standard/SpelExpressionParser;
0 15 5 targetInterface Ljava/lang/Class<*>;
6 15 6 evaluationContext Lorg/springframework/expression/spel/support/StandardEvaluationContext;
Signature: (Lorg/aopalliance/intercept/MethodInterceptor;Ljava/lang/Object;Lorg/springframework/beans/factory/BeanFactory;Lorg/springframework/expression/spel/standard/SpelExpressionParser;Ljava/lang/Class<*>;)V
RuntimeVisibleParameterAnnotations:
0:
1:
2:
org.springframework.lang.Nullable()
3:
4:
MethodParameters:
Name Flags
delegate
target
beanFactory
parser
targetInterface
private static java.util.Map<java.lang.Integer, org.springframework.expression.Expression> potentiallyCreateExpressionsForMethodsOnTargetInterface(org.springframework.expression.spel.standard.SpelExpressionParser, java.lang.Class<?>);
descriptor: (Lorg/springframework/expression/spel/standard/SpelExpressionParser;Ljava/lang/Class;)Ljava/util/Map;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=8, args_size=2
start local 0 start local 1 0: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 2
start local 2 1: aload 1
invokevirtual java.lang.Class.getMethods:()[Ljava/lang/reflect/Method;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 10
StackMap locals: org.springframework.expression.spel.standard.SpelExpressionParser java.lang.Class java.util.Map top int int java.lang.reflect.Method[]
StackMap stack:
2: aload 6
iload 4
aaload
astore 3
start local 3 3: aload 3
ldc Lorg/springframework/beans/factory/annotation/Value;
invokevirtual java.lang.reflect.Method.isAnnotationPresent:(Ljava/lang/Class;)Z
ifne 5
4: goto 9
5: StackMap locals: org.springframework.expression.spel.standard.SpelExpressionParser java.lang.Class java.util.Map java.lang.reflect.Method int int java.lang.reflect.Method[]
StackMap stack:
aload 3
ldc Lorg/springframework/beans/factory/annotation/Value;
invokevirtual java.lang.reflect.Method.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast org.springframework.beans.factory.annotation.Value
astore 7
start local 7 6: aload 7
invokeinterface org.springframework.beans.factory.annotation.Value.value:()Ljava/lang/String;
invokestatic org.springframework.util.StringUtils.hasText:(Ljava/lang/String;)Z
ifne 8
7: new java.lang.IllegalStateException
dup
ldc "@Value annotation on %s contains empty expression!"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals: org.springframework.beans.factory.annotation.Value
StackMap stack:
aload 2
aload 3
invokevirtual java.lang.reflect.Method.hashCode:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 0
aload 7
invokeinterface org.springframework.beans.factory.annotation.Value.value:()Ljava/lang/String;
getstatic org.springframework.data.projection.SpelEvaluatingMethodInterceptor.PARSER_CONTEXT:Lorg/springframework/expression/ParserContext;
invokevirtual org.springframework.expression.spel.standard.SpelExpressionParser.parseExpression:(Ljava/lang/String;Lorg/springframework/expression/ParserContext;)Lorg/springframework/expression/Expression;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 7 end local 3 9: StackMap locals: org.springframework.expression.spel.standard.SpelExpressionParser java.lang.Class java.util.Map top int int java.lang.reflect.Method[]
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
10: iload 4
iload 5
if_icmplt 2
11: aload 2
invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 parser Lorg/springframework/expression/spel/standard/SpelExpressionParser;
0 12 1 targetInterface Ljava/lang/Class<*>;
1 12 2 expressions Ljava/util/Map<Ljava/lang/Integer;Lorg/springframework/expression/Expression;>;
3 9 3 method Ljava/lang/reflect/Method;
6 9 7 value Lorg/springframework/beans/factory/annotation/Value;
Signature: (Lorg/springframework/expression/spel/standard/SpelExpressionParser;Ljava/lang/Class<*>;)Ljava/util/Map<Ljava/lang/Integer;Lorg/springframework/expression/Expression;>;
MethodParameters:
Name Flags
parser
targetInterface
public java.lang.Object invoke(org.aopalliance.intercept.MethodInvocation);
descriptor: (Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tThe method of(Object, Object[]) is undefined for the type SpelEvaluatingMethodInterceptor.TargetWrapper\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/data/projection/SpelEvaluatingMethodInterceptor;
Exceptions:
throws java.lang.Throwable
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
invocation
}
SourceFile: "SpelEvaluatingMethodInterceptor.java"
NestMembers:
org.springframework.data.projection.SpelEvaluatingMethodInterceptor$TargetWrapper
InnerClasses:
TargetWrapper = org.springframework.data.projection.SpelEvaluatingMethodInterceptor$TargetWrapper of org.springframework.data.projection.SpelEvaluatingMethodInterceptor