public class org.springframework.expression.spel.ast.MethodReference extends org.springframework.expression.spel.ast.SpelNodeImpl
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.expression.spel.ast.MethodReference
super_class: org.springframework.expression.spel.ast.SpelNodeImpl
{
private final java.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean nullSafe;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.lang.String originalPrimitiveExitTypeDescriptor;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private volatile org.springframework.expression.spel.ast.MethodReference$CachedMethodExecutor cachedExecutor;
descriptor: Lorg/springframework/expression/spel/ast/MethodReference$CachedMethodExecutor;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
public void <init>(boolean, java.lang.String, int, org.springframework.expression.spel.ast.SpelNodeImpl[]);
descriptor: (ZLjava/lang/String;I[Lorg/springframework/expression/spel/ast/SpelNodeImpl;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=3, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
iload 3
aload 4
invokespecial org.springframework.expression.spel.ast.SpelNodeImpl.<init>:(I[Lorg/springframework/expression/spel/ast/SpelNodeImpl;)V
1: aload 0
aload 2
putfield org.springframework.expression.spel.ast.MethodReference.name:Ljava/lang/String;
2: aload 0
iload 1
putfield org.springframework.expression.spel.ast.MethodReference.nullSafe:Z
3: 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/expression/spel/ast/MethodReference;
0 4 1 nullSafe Z
0 4 2 methodName Ljava/lang/String;
0 4 3 pos I
0 4 4 arguments [Lorg/springframework/expression/spel/ast/SpelNodeImpl;
MethodParameters:
Name Flags
nullSafe
methodName
pos
arguments
public final java.lang.String getName();
descriptor: ()Ljava/lang/String;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.expression.spel.ast.MethodReference.name:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/expression/spel/ast/MethodReference;
protected org.springframework.expression.spel.ast.ValueRef getValueRef(org.springframework.expression.spel.ExpressionState);
descriptor: (Lorg/springframework/expression/spel/ExpressionState;)Lorg/springframework/expression/spel/ast/ValueRef;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.springframework.expression.spel.ast.MethodReference.getArguments:(Lorg/springframework/expression/spel/ExpressionState;)[Ljava/lang/Object;
astore 2
start local 2 1: aload 1
invokevirtual org.springframework.expression.spel.ExpressionState.getActiveContextObject:()Lorg/springframework/expression/TypedValue;
invokevirtual org.springframework.expression.TypedValue.getValue:()Ljava/lang/Object;
ifnonnull 4
2: aload 0
aload 0
aload 2
invokevirtual org.springframework.expression.spel.ast.MethodReference.getArgumentTypes:([Ljava/lang/Object;)Ljava/util/List;
invokevirtual org.springframework.expression.spel.ast.MethodReference.throwIfNotNullSafe:(Ljava/util/List;)V
3: getstatic org.springframework.expression.spel.ast.ValueRef$NullValueRef.INSTANCE:Lorg/springframework/expression/spel/ast/ValueRef$NullValueRef;
areturn
4: StackMap locals: java.lang.Object[]
StackMap stack:
new org.springframework.expression.spel.ast.MethodReference$MethodValueRef
dup
aload 0
aload 1
aload 2
invokespecial org.springframework.expression.spel.ast.MethodReference$MethodValueRef.<init>:(Lorg/springframework/expression/spel/ast/MethodReference;Lorg/springframework/expression/spel/ExpressionState;[Ljava/lang/Object;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/expression/spel/ast/MethodReference;
0 5 1 state Lorg/springframework/expression/spel/ExpressionState;
1 5 2 arguments [Ljava/lang/Object;
Exceptions:
throws org.springframework.expression.EvaluationException
MethodParameters:
Name Flags
state
public org.springframework.expression.TypedValue getValueInternal(org.springframework.expression.spel.ExpressionState);
descriptor: (Lorg/springframework/expression/spel/ExpressionState;)Lorg/springframework/expression/TypedValue;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.springframework.expression.spel.ExpressionState.getEvaluationContext:()Lorg/springframework/expression/EvaluationContext;
astore 2
start local 2 1: aload 1
invokevirtual org.springframework.expression.spel.ExpressionState.getActiveContextObject:()Lorg/springframework/expression/TypedValue;
invokevirtual org.springframework.expression.TypedValue.getValue:()Ljava/lang/Object;
astore 3
start local 3 2: aload 1
invokevirtual org.springframework.expression.spel.ExpressionState.getActiveContextObject:()Lorg/springframework/expression/TypedValue;
invokevirtual org.springframework.expression.TypedValue.getTypeDescriptor:()Lorg/springframework/core/convert/TypeDescriptor;
astore 4
start local 4 3: aload 0
aload 1
invokevirtual org.springframework.expression.spel.ast.MethodReference.getArguments:(Lorg/springframework/expression/spel/ExpressionState;)[Ljava/lang/Object;
astore 5
start local 5 4: aload 0
aload 2
aload 3
aload 4
aload 5
invokevirtual org.springframework.expression.spel.ast.MethodReference.getValueInternal:(Lorg/springframework/expression/EvaluationContext;Ljava/lang/Object;Lorg/springframework/core/convert/TypeDescriptor;[Ljava/lang/Object;)Lorg/springframework/expression/TypedValue;
astore 6
start local 6 5: aload 0
invokevirtual org.springframework.expression.spel.ast.MethodReference.updateExitTypeDescriptor:()V
6: 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 7 0 this Lorg/springframework/expression/spel/ast/MethodReference;
0 7 1 state Lorg/springframework/expression/spel/ExpressionState;
1 7 2 evaluationContext Lorg/springframework/expression/EvaluationContext;
2 7 3 value Ljava/lang/Object;
3 7 4 targetType Lorg/springframework/core/convert/TypeDescriptor;
4 7 5 arguments [Ljava/lang/Object;
5 7 6 result Lorg/springframework/expression/TypedValue;
Exceptions:
throws org.springframework.expression.EvaluationException
MethodParameters:
Name Flags
state
private org.springframework.expression.TypedValue getValueInternal(org.springframework.expression.EvaluationContext, java.lang.Object, org.springframework.core.convert.TypeDescriptor, java.lang.Object[]);
descriptor: (Lorg/springframework/expression/EvaluationContext;Ljava/lang/Object;Lorg/springframework/core/convert/TypeDescriptor;[Ljava/lang/Object;)Lorg/springframework/expression/TypedValue;
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 4
invokevirtual org.springframework.expression.spel.ast.MethodReference.getArgumentTypes:([Ljava/lang/Object;)Ljava/util/List;
astore 5
start local 5 1: aload 2
ifnonnull 4
2: aload 0
aload 5
invokevirtual org.springframework.expression.spel.ast.MethodReference.throwIfNotNullSafe:(Ljava/util/List;)V
3: getstatic org.springframework.expression.TypedValue.NULL:Lorg/springframework/expression/TypedValue;
areturn
4: StackMap locals: java.util.List
StackMap stack:
aload 0
aload 1
aload 2
aload 3
aload 5
invokevirtual org.springframework.expression.spel.ast.MethodReference.getCachedExecutor:(Lorg/springframework/expression/EvaluationContext;Ljava/lang/Object;Lorg/springframework/core/convert/TypeDescriptor;Ljava/util/List;)Lorg/springframework/expression/MethodExecutor;
astore 6
start local 6 5: aload 6
ifnull 11
6: aload 6
aload 1
aload 2
aload 4
invokeinterface org.springframework.expression.MethodExecutor.execute:(Lorg/springframework/expression/EvaluationContext;Ljava/lang/Object;[Ljava/lang/Object;)Lorg/springframework/expression/TypedValue;
7: areturn
8: StackMap locals: org.springframework.expression.spel.ast.MethodReference org.springframework.expression.EvaluationContext java.lang.Object org.springframework.core.convert.TypeDescriptor java.lang.Object[] java.util.List org.springframework.expression.MethodExecutor
StackMap stack: org.springframework.expression.AccessException
astore 7
start local 7 9: aload 0
aload 2
aload 7
invokevirtual org.springframework.expression.spel.ast.MethodReference.throwSimpleExceptionIfPossible:(Ljava/lang/Object;Lorg/springframework/expression/AccessException;)V
10: aload 0
aconst_null
putfield org.springframework.expression.spel.ast.MethodReference.cachedExecutor:Lorg/springframework/expression/spel/ast/MethodReference$CachedMethodExecutor;
end local 7 11: StackMap locals:
StackMap stack:
aload 0
aload 5
aload 2
aload 1
invokevirtual org.springframework.expression.spel.ast.MethodReference.findAccessorForMethod:(Ljava/util/List;Ljava/lang/Object;Lorg/springframework/expression/EvaluationContext;)Lorg/springframework/expression/MethodExecutor;
astore 6
12: aload 0
13: new org.springframework.expression.spel.ast.MethodReference$CachedMethodExecutor
dup
14: aload 6
aload 2
instanceof java.lang.Class
ifeq 15
aload 2
checkcast java.lang.Class
goto 16
StackMap locals: org.springframework.expression.spel.ast.MethodReference org.springframework.expression.EvaluationContext java.lang.Object org.springframework.core.convert.TypeDescriptor java.lang.Object[] java.util.List org.springframework.expression.MethodExecutor
StackMap stack: org.springframework.expression.spel.ast.MethodReference new 13 new 13 org.springframework.expression.MethodExecutor
15: aconst_null
StackMap locals: org.springframework.expression.spel.ast.MethodReference org.springframework.expression.EvaluationContext java.lang.Object org.springframework.core.convert.TypeDescriptor java.lang.Object[] java.util.List org.springframework.expression.MethodExecutor
StackMap stack: org.springframework.expression.spel.ast.MethodReference new 13 new 13 org.springframework.expression.MethodExecutor java.lang.Class
16: aload 3
aload 5
invokespecial org.springframework.expression.spel.ast.MethodReference$CachedMethodExecutor.<init>:(Lorg/springframework/expression/MethodExecutor;Ljava/lang/Class;Lorg/springframework/core/convert/TypeDescriptor;Ljava/util/List;)V
17: putfield org.springframework.expression.spel.ast.MethodReference.cachedExecutor:Lorg/springframework/expression/spel/ast/MethodReference$CachedMethodExecutor;
18: aload 6
aload 1
aload 2
aload 4
invokeinterface org.springframework.expression.MethodExecutor.execute:(Lorg/springframework/expression/EvaluationContext;Ljava/lang/Object;[Ljava/lang/Object;)Lorg/springframework/expression/TypedValue;
19: areturn
20: StackMap locals:
StackMap stack: org.springframework.expression.AccessException
astore 7
start local 7 21: aload 0
aload 2
aload 7
invokevirtual org.springframework.expression.spel.ast.MethodReference.throwSimpleExceptionIfPossible:(Ljava/lang/Object;Lorg/springframework/expression/AccessException;)V
22: new org.springframework.expression.spel.SpelEvaluationException
dup
aload 0
invokevirtual org.springframework.expression.spel.ast.MethodReference.getStartPosition:()I
aload 7
23: getstatic org.springframework.expression.spel.SpelMessage.EXCEPTION_DURING_METHOD_INVOCATION:Lorg/springframework/expression/spel/SpelMessage;
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.springframework.expression.spel.ast.MethodReference.name:Ljava/lang/String;
aastore
dup
iconst_1
24: aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
dup
iconst_2
aload 7
invokevirtual org.springframework.expression.AccessException.getMessage:()Ljava/lang/String;
25: aastore
invokespecial org.springframework.expression.spel.SpelEvaluationException.<init>:(ILjava/lang/Throwable;Lorg/springframework/expression/spel/SpelMessage;[Ljava/lang/Object;)V
athrow
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 26 0 this Lorg/springframework/expression/spel/ast/MethodReference;
0 26 1 evaluationContext Lorg/springframework/expression/EvaluationContext;
0 26 2 value Ljava/lang/Object;
0 26 3 targetType Lorg/springframework/core/convert/TypeDescriptor;
0 26 4 arguments [Ljava/lang/Object;
1 26 5 argumentTypes Ljava/util/List<Lorg/springframework/core/convert/TypeDescriptor;>;
5 26 6 executorToUse Lorg/springframework/expression/MethodExecutor;
9 11 7 ex Lorg/springframework/expression/AccessException;
21 26 7 ex Lorg/springframework/expression/AccessException;
Exception table:
from to target type
6 7 8 Class org.springframework.expression.AccessException
18 19 20 Class org.springframework.expression.AccessException
RuntimeVisibleParameterAnnotations:
0:
1:
org.springframework.lang.Nullable()
2:
org.springframework.lang.Nullable()
3:
MethodParameters:
Name Flags
evaluationContext
value
targetType
arguments
private void throwIfNotNullSafe(java.util.List<org.springframework.core.convert.TypeDescriptor>);
descriptor: (Ljava/util/List;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.expression.spel.ast.MethodReference.nullSafe:Z
ifne 5
1: new org.springframework.expression.spel.SpelEvaluationException
dup
aload 0
invokevirtual org.springframework.expression.spel.ast.MethodReference.getStartPosition:()I
2: getstatic org.springframework.expression.spel.SpelMessage.METHOD_CALL_ON_NULL_OBJECT_NOT_ALLOWED:Lorg/springframework/expression/spel/SpelMessage;
iconst_1
anewarray java.lang.Object
dup
iconst_0
3: aload 0
getfield org.springframework.expression.spel.ast.MethodReference.name:Ljava/lang/String;
aload 1
invokestatic org.springframework.expression.spel.ast.FormatHelper.formatMethodForMessage:(Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;
4: aastore
invokespecial org.springframework.expression.spel.SpelEvaluationException.<init>:(ILorg/springframework/expression/spel/SpelMessage;[Ljava/lang/Object;)V
athrow
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/expression/spel/ast/MethodReference;
0 6 1 argumentTypes Ljava/util/List<Lorg/springframework/core/convert/TypeDescriptor;>;
Signature: (Ljava/util/List<Lorg/springframework/core/convert/TypeDescriptor;>;)V
MethodParameters:
Name Flags
argumentTypes
private java.lang.Object[] getArguments(org.springframework.expression.spel.ExpressionState);
descriptor: (Lorg/springframework/expression/spel/ExpressionState;)[Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.springframework.expression.spel.ast.MethodReference.getChildCount:()I
anewarray java.lang.Object
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 11
3: StackMap locals: java.lang.Object[] int
StackMap stack:
aload 1
aload 1
invokevirtual org.springframework.expression.spel.ExpressionState.getScopeRootContextObject:()Lorg/springframework/expression/TypedValue;
invokevirtual org.springframework.expression.spel.ExpressionState.pushActiveContextObject:(Lorg/springframework/expression/TypedValue;)V
4: aload 2
iload 3
aload 0
getfield org.springframework.expression.spel.ast.MethodReference.children:[Lorg/springframework/expression/spel/ast/SpelNodeImpl;
iload 3
aaload
aload 1
invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.getValueInternal:(Lorg/springframework/expression/spel/ExpressionState;)Lorg/springframework/expression/TypedValue;
invokevirtual org.springframework.expression.TypedValue.getValue:()Ljava/lang/Object;
aastore
5: goto 9
6: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
7: aload 1
invokevirtual org.springframework.expression.spel.ExpressionState.popActiveContextObject:()V
8: aload 4
athrow
9: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.springframework.expression.spel.ExpressionState.popActiveContextObject:()V
10: iinc 3 1
StackMap locals:
StackMap stack:
11: iload 3
aload 2
arraylength
if_icmplt 3
end local 3 12: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/springframework/expression/spel/ast/MethodReference;
0 13 1 state Lorg/springframework/expression/spel/ExpressionState;
1 13 2 arguments [Ljava/lang/Object;
2 12 3 i I
Exception table:
from to target type
3 6 6 any
MethodParameters:
Name Flags
state
private java.util.List<org.springframework.core.convert.TypeDescriptor> getArgumentTypes([]);
descriptor: ([Ljava/lang/Object;)Ljava/util/List;
flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
aload 1
arraylength
invokespecial java.util.ArrayList.<init>:(I)V
astore 2
start local 2 1: aload 1
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 5
StackMap locals: org.springframework.expression.spel.ast.MethodReference java.lang.Object[] java.util.List top int int java.lang.Object[]
StackMap stack:
2: aload 6
iload 4
aaload
astore 3
start local 3 3: aload 2
aload 3
invokestatic org.springframework.core.convert.TypeDescriptor.forObject:(Ljava/lang/Object;)Lorg/springframework/core/convert/TypeDescriptor;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 3 4: iinc 4 1
StackMap locals:
StackMap stack:
5: iload 4
iload 5
if_icmplt 2
6: aload 2
invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/springframework/expression/spel/ast/MethodReference;
0 7 1 arguments [Ljava/lang/Object;
1 7 2 descriptors Ljava/util/List<Lorg/springframework/core/convert/TypeDescriptor;>;
3 4 3 argument Ljava/lang/Object;
Signature: ([Ljava/lang/Object;)Ljava/util/List<Lorg/springframework/core/convert/TypeDescriptor;>;
MethodParameters:
Name Flags
arguments
private org.springframework.expression.MethodExecutor getCachedExecutor(org.springframework.expression.EvaluationContext, , org.springframework.core.convert.TypeDescriptor, java.util.List<org.springframework.core.convert.TypeDescriptor>);
descriptor: (Lorg/springframework/expression/EvaluationContext;Ljava/lang/Object;Lorg/springframework/core/convert/TypeDescriptor;Ljava/util/List;)Lorg/springframework/expression/MethodExecutor;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
invokeinterface org.springframework.expression.EvaluationContext.getMethodResolvers:()Ljava/util/List;
astore 5
start local 5 1: aload 5
invokeinterface java.util.List.size:()I
iconst_1
if_icmpne 2
aload 5
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
instanceof org.springframework.expression.spel.support.ReflectiveMethodResolver
ifne 3
2: StackMap locals: java.util.List
StackMap stack:
aconst_null
areturn
3: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.expression.spel.ast.MethodReference.cachedExecutor:Lorg/springframework/expression/spel/ast/MethodReference$CachedMethodExecutor;
astore 6
start local 6 4: aload 6
ifnull 6
aload 6
aload 2
aload 3
aload 4
invokevirtual org.springframework.expression.spel.ast.MethodReference$CachedMethodExecutor.isSuitable:(Ljava/lang/Object;Lorg/springframework/core/convert/TypeDescriptor;Ljava/util/List;)Z
ifeq 6
5: aload 6
invokevirtual org.springframework.expression.spel.ast.MethodReference$CachedMethodExecutor.get:()Lorg/springframework/expression/MethodExecutor;
areturn
6: StackMap locals: org.springframework.expression.spel.ast.MethodReference$CachedMethodExecutor
StackMap stack:
aload 0
aconst_null
putfield org.springframework.expression.spel.ast.MethodReference.cachedExecutor:Lorg/springframework/expression/spel/ast/MethodReference$CachedMethodExecutor;
7: aconst_null
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 8 0 this Lorg/springframework/expression/spel/ast/MethodReference;
0 8 1 evaluationContext Lorg/springframework/expression/EvaluationContext;
0 8 2 value Ljava/lang/Object;
0 8 3 target Lorg/springframework/core/convert/TypeDescriptor;
0 8 4 argumentTypes Ljava/util/List<Lorg/springframework/core/convert/TypeDescriptor;>;
1 8 5 methodResolvers Ljava/util/List<Lorg/springframework/expression/MethodResolver;>;
4 8 6 executorToCheck Lorg/springframework/expression/spel/ast/MethodReference$CachedMethodExecutor;
Signature: (Lorg/springframework/expression/EvaluationContext;Ljava/lang/Object;Lorg/springframework/core/convert/TypeDescriptor;Ljava/util/List<Lorg/springframework/core/convert/TypeDescriptor;>;)Lorg/springframework/expression/MethodExecutor;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
RuntimeVisibleParameterAnnotations:
0:
1:
2:
org.springframework.lang.Nullable()
3:
MethodParameters:
Name Flags
evaluationContext
value
target
argumentTypes
private org.springframework.expression.MethodExecutor findAccessorForMethod(java.util.List<org.springframework.core.convert.TypeDescriptor>, , org.springframework.expression.EvaluationContext);
descriptor: (Ljava/util/List;Ljava/lang/Object;Lorg/springframework/expression/EvaluationContext;)Lorg/springframework/expression/MethodExecutor;
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aconst_null
astore 4
start local 4 1: aload 3
invokeinterface org.springframework.expression.EvaluationContext.getMethodResolvers:()Ljava/util/List;
astore 5
start local 5 2: aload 5
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 13
StackMap locals: org.springframework.expression.spel.ast.MethodReference java.util.List java.lang.Object org.springframework.expression.EvaluationContext org.springframework.expression.AccessException java.util.List top java.util.Iterator
StackMap stack:
3: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.springframework.expression.MethodResolver
astore 6
start local 6 4: aload 6
5: aload 3
aload 2
aload 0
getfield org.springframework.expression.spel.ast.MethodReference.name:Ljava/lang/String;
aload 1
6: invokeinterface org.springframework.expression.MethodResolver.resolve:(Lorg/springframework/expression/EvaluationContext;Ljava/lang/Object;Ljava/lang/String;Ljava/util/List;)Lorg/springframework/expression/MethodExecutor;
astore 8
start local 8 7: aload 8
ifnull 13
8: aload 8
9: areturn
end local 8 10: StackMap locals: org.springframework.expression.spel.ast.MethodReference java.util.List java.lang.Object org.springframework.expression.EvaluationContext org.springframework.expression.AccessException java.util.List org.springframework.expression.MethodResolver java.util.Iterator
StackMap stack: org.springframework.expression.AccessException
astore 8
start local 8 11: aload 8
astore 4
12: goto 14
end local 8 end local 6 13: StackMap locals: org.springframework.expression.spel.ast.MethodReference java.util.List java.lang.Object org.springframework.expression.EvaluationContext org.springframework.expression.AccessException java.util.List top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
14: StackMap locals: org.springframework.expression.spel.ast.MethodReference java.util.List java.lang.Object org.springframework.expression.EvaluationContext org.springframework.expression.AccessException java.util.List
StackMap stack:
aload 0
getfield org.springframework.expression.spel.ast.MethodReference.name:Ljava/lang/String;
aload 1
invokestatic org.springframework.expression.spel.ast.FormatHelper.formatMethodForMessage:(Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;
astore 6
start local 6 15: aload 2
instanceof java.lang.Class
ifeq 16
aload 2
checkcast java.lang.Class
goto 17
StackMap locals: java.lang.String
StackMap stack:
16: aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
17: StackMap locals:
StackMap stack: java.lang.Class
invokestatic org.springframework.expression.spel.ast.FormatHelper.formatClassNameForMessage:(Ljava/lang/Class;)Ljava/lang/String;
astore 7
start local 7 18: aload 4
ifnull 22
19: new org.springframework.expression.spel.SpelEvaluationException
dup
20: aload 0
invokevirtual org.springframework.expression.spel.ast.MethodReference.getStartPosition:()I
aload 4
getstatic org.springframework.expression.spel.SpelMessage.PROBLEM_LOCATING_METHOD:Lorg/springframework/expression/spel/SpelMessage;
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 6
aastore
dup
iconst_1
aload 7
21: aastore
invokespecial org.springframework.expression.spel.SpelEvaluationException.<init>:(ILjava/lang/Throwable;Lorg/springframework/expression/spel/SpelMessage;[Ljava/lang/Object;)V
athrow
22: StackMap locals: java.lang.String
StackMap stack:
new org.springframework.expression.spel.SpelEvaluationException
dup
aload 0
invokevirtual org.springframework.expression.spel.ast.MethodReference.getStartPosition:()I
getstatic org.springframework.expression.spel.SpelMessage.METHOD_NOT_FOUND:Lorg/springframework/expression/spel/SpelMessage;
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 6
aastore
dup
iconst_1
aload 7
aastore
invokespecial org.springframework.expression.spel.SpelEvaluationException.<init>:(ILorg/springframework/expression/spel/SpelMessage;[Ljava/lang/Object;)V
athrow
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 23 0 this Lorg/springframework/expression/spel/ast/MethodReference;
0 23 1 argumentTypes Ljava/util/List<Lorg/springframework/core/convert/TypeDescriptor;>;
0 23 2 targetObject Ljava/lang/Object;
0 23 3 evaluationContext Lorg/springframework/expression/EvaluationContext;
1 23 4 accessException Lorg/springframework/expression/AccessException;
2 23 5 methodResolvers Ljava/util/List<Lorg/springframework/expression/MethodResolver;>;
4 13 6 methodResolver Lorg/springframework/expression/MethodResolver;
7 10 8 methodExecutor Lorg/springframework/expression/MethodExecutor;
11 13 8 ex Lorg/springframework/expression/AccessException;
15 23 6 method Ljava/lang/String;
18 23 7 className Ljava/lang/String;
Exception table:
from to target type
4 9 10 Class org.springframework.expression.AccessException
Exceptions:
throws org.springframework.expression.spel.SpelEvaluationException
Signature: (Ljava/util/List<Lorg/springframework/core/convert/TypeDescriptor;>;Ljava/lang/Object;Lorg/springframework/expression/EvaluationContext;)Lorg/springframework/expression/MethodExecutor;
MethodParameters:
Name Flags
argumentTypes
targetObject
evaluationContext
private void throwSimpleExceptionIfPossible(java.lang.Object, org.springframework.expression.AccessException);
descriptor: (Ljava/lang/Object;Lorg/springframework/expression/AccessException;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual org.springframework.expression.AccessException.getCause:()Ljava/lang/Throwable;
instanceof java.lang.reflect.InvocationTargetException
ifeq 10
1: aload 2
invokevirtual org.springframework.expression.AccessException.getCause:()Ljava/lang/Throwable;
invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
astore 3
start local 3 2: aload 3
instanceof java.lang.RuntimeException
ifeq 4
3: aload 3
checkcast java.lang.RuntimeException
athrow
4: StackMap locals: java.lang.Throwable
StackMap stack:
new org.springframework.expression.ExpressionInvocationTargetException
dup
aload 0
invokevirtual org.springframework.expression.spel.ast.MethodReference.getStartPosition:()I
5: new java.lang.StringBuilder
dup
ldc "A problem occurred when trying to execute method '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.springframework.expression.spel.ast.MethodReference.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
6: ldc "' on object of type ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
7: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: aload 3
9: invokespecial org.springframework.expression.ExpressionInvocationTargetException.<init>:(ILjava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 10: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/springframework/expression/spel/ast/MethodReference;
0 11 1 value Ljava/lang/Object;
0 11 2 ex Lorg/springframework/expression/AccessException;
2 10 3 rootCause Ljava/lang/Throwable;
MethodParameters:
Name Flags
value
ex
private void updateExitTypeDescriptor();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
getfield org.springframework.expression.spel.ast.MethodReference.cachedExecutor:Lorg/springframework/expression/spel/ast/MethodReference$CachedMethodExecutor;
astore 1
start local 1 1: aload 1
ifnull 9
aload 1
invokevirtual org.springframework.expression.spel.ast.MethodReference$CachedMethodExecutor.get:()Lorg/springframework/expression/MethodExecutor;
instanceof org.springframework.expression.spel.support.ReflectiveMethodExecutor
ifeq 9
2: aload 1
invokevirtual org.springframework.expression.spel.ast.MethodReference$CachedMethodExecutor.get:()Lorg/springframework/expression/MethodExecutor;
checkcast org.springframework.expression.spel.support.ReflectiveMethodExecutor
invokevirtual org.springframework.expression.spel.support.ReflectiveMethodExecutor.getMethod:()Ljava/lang/reflect/Method;
astore 2
start local 2 3: aload 2
invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
invokestatic org.springframework.expression.spel.CodeFlow.toDescriptor:(Ljava/lang/Class;)Ljava/lang/String;
astore 3
start local 3 4: aload 0
getfield org.springframework.expression.spel.ast.MethodReference.nullSafe:Z
ifeq 8
aload 3
invokestatic org.springframework.expression.spel.CodeFlow.isPrimitive:(Ljava/lang/String;)Z
ifeq 8
5: aload 0
aload 3
putfield org.springframework.expression.spel.ast.MethodReference.originalPrimitiveExitTypeDescriptor:Ljava/lang/String;
6: aload 0
aload 3
invokestatic org.springframework.expression.spel.CodeFlow.toBoxedDescriptor:(Ljava/lang/String;)Ljava/lang/String;
putfield org.springframework.expression.spel.ast.MethodReference.exitTypeDescriptor:Ljava/lang/String;
7: goto 9
8: StackMap locals: org.springframework.expression.spel.ast.MethodReference$CachedMethodExecutor java.lang.reflect.Method java.lang.String
StackMap stack:
aload 0
aload 3
putfield org.springframework.expression.spel.ast.MethodReference.exitTypeDescriptor:Ljava/lang/String;
end local 3 end local 2 9: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/springframework/expression/spel/ast/MethodReference;
1 10 1 executorToCheck Lorg/springframework/expression/spel/ast/MethodReference$CachedMethodExecutor;
3 9 2 method Ljava/lang/reflect/Method;
4 9 3 descriptor Ljava/lang/String;
public java.lang.String toStringAST();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
aload 0
getfield org.springframework.expression.spel.ast.MethodReference.name:Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 1
start local 1 1: aload 1
ldc "("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
2: iconst_0
istore 2
start local 2 3: goto 8
4: StackMap locals: java.lang.StringBuilder int
StackMap stack:
iload 2
ifle 6
5: aload 1
ldc ","
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
6: StackMap locals:
StackMap stack:
aload 1
aload 0
iload 2
invokevirtual org.springframework.expression.spel.ast.MethodReference.getChild:(I)Lorg/springframework/expression/spel/SpelNode;
invokeinterface org.springframework.expression.spel.SpelNode.toStringAST:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
7: iinc 2 1
StackMap locals:
StackMap stack:
8: iload 2
aload 0
invokevirtual org.springframework.expression.spel.ast.MethodReference.getChildCount:()I
if_icmplt 4
end local 2 9: aload 1
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/springframework/expression/spel/ast/MethodReference;
1 11 1 sb Ljava/lang/StringBuilder;
3 9 2 i I
public boolean isCompilable();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=1
start local 0 0: aload 0
getfield org.springframework.expression.spel.ast.MethodReference.cachedExecutor:Lorg/springframework/expression/spel/ast/MethodReference$CachedMethodExecutor;
astore 1
start local 1 1: aload 1
ifnull 3
aload 1
invokevirtual org.springframework.expression.spel.ast.MethodReference$CachedMethodExecutor.hasProxyTarget:()Z
ifne 3
2: aload 1
invokevirtual org.springframework.expression.spel.ast.MethodReference$CachedMethodExecutor.get:()Lorg/springframework/expression/MethodExecutor;
instanceof org.springframework.expression.spel.support.ReflectiveMethodExecutor
ifne 4
3: StackMap locals: org.springframework.expression.spel.ast.MethodReference$CachedMethodExecutor
StackMap stack:
iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.expression.spel.ast.MethodReference.children:[Lorg/springframework/expression/spel/ast/SpelNodeImpl;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 9
StackMap locals: org.springframework.expression.spel.ast.MethodReference org.springframework.expression.spel.ast.MethodReference$CachedMethodExecutor top int int org.springframework.expression.spel.ast.SpelNodeImpl[]
StackMap stack:
5: aload 5
iload 3
aaload
astore 2
start local 2 6: aload 2
invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.isCompilable:()Z
ifne 8
7: iconst_0
ireturn
end local 2 8: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
9: iload 3
iload 4
if_icmplt 5
10: aload 1
invokevirtual org.springframework.expression.spel.ast.MethodReference$CachedMethodExecutor.get:()Lorg/springframework/expression/MethodExecutor;
checkcast org.springframework.expression.spel.support.ReflectiveMethodExecutor
astore 2
start local 2 11: aload 2
invokevirtual org.springframework.expression.spel.support.ReflectiveMethodExecutor.didArgumentConversionOccur:()Z
ifeq 13
12: iconst_0
ireturn
13: StackMap locals: org.springframework.expression.spel.ast.MethodReference org.springframework.expression.spel.ast.MethodReference$CachedMethodExecutor org.springframework.expression.spel.support.ReflectiveMethodExecutor
StackMap stack:
aload 2
invokevirtual org.springframework.expression.spel.support.ReflectiveMethodExecutor.getMethod:()Ljava/lang/reflect/Method;
invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
astore 3
start local 3 14: aload 3
invokevirtual java.lang.Class.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
ifne 16
aload 2
invokevirtual org.springframework.expression.spel.support.ReflectiveMethodExecutor.getPublicDeclaringClass:()Ljava/lang/Class;
ifnonnull 16
15: iconst_0
ireturn
16: StackMap locals: java.lang.Class
StackMap stack:
iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/springframework/expression/spel/ast/MethodReference;
1 17 1 executorToCheck Lorg/springframework/expression/spel/ast/MethodReference$CachedMethodExecutor;
6 8 2 child Lorg/springframework/expression/spel/ast/SpelNodeImpl;
11 17 2 executor Lorg/springframework/expression/spel/support/ReflectiveMethodExecutor;
14 17 3 clazz Ljava/lang/Class<*>;
public void generateCode(org.springframework.asm.MethodVisitor, org.springframework.expression.spel.CodeFlow);
descriptor: (Lorg/springframework/asm/MethodVisitor;Lorg/springframework/expression/spel/CodeFlow;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.springframework.expression.spel.ast.MethodReference.cachedExecutor:Lorg/springframework/expression/spel/ast/MethodReference$CachedMethodExecutor;
astore 3
start local 3 1: aload 3
ifnull 2
aload 3
invokevirtual org.springframework.expression.spel.ast.MethodReference$CachedMethodExecutor.get:()Lorg/springframework/expression/MethodExecutor;
instanceof org.springframework.expression.spel.support.ReflectiveMethodExecutor
ifne 3
2: StackMap locals: org.springframework.expression.spel.ast.MethodReference$CachedMethodExecutor
StackMap stack:
new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "No applicable cached executor found: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.springframework.expression.spel.ast.MethodReference$CachedMethodExecutor.get:()Lorg/springframework/expression/MethodExecutor;
checkcast org.springframework.expression.spel.support.ReflectiveMethodExecutor
astore 4
start local 4 4: aload 4
invokevirtual org.springframework.expression.spel.support.ReflectiveMethodExecutor.getMethod:()Ljava/lang/reflect/Method;
astore 5
start local 5 5: aload 5
invokevirtual java.lang.reflect.Method.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
istore 6
start local 6 6: aload 2
invokevirtual org.springframework.expression.spel.CodeFlow.lastDescriptor:()Ljava/lang/String;
astore 7
start local 7 7: aconst_null
astore 8
start local 8 8: aload 7
ifnonnull 10
iload 6
ifne 10
9: aload 2
aload 1
invokevirtual org.springframework.expression.spel.CodeFlow.loadTarget:(Lorg/springframework/asm/MethodVisitor;)V
10: StackMap locals: org.springframework.expression.spel.ast.MethodReference org.springframework.asm.MethodVisitor org.springframework.expression.spel.CodeFlow org.springframework.expression.spel.ast.MethodReference$CachedMethodExecutor org.springframework.expression.spel.support.ReflectiveMethodExecutor java.lang.reflect.Method int java.lang.String org.springframework.asm.Label
StackMap stack:
aload 7
ifnonnull 11
iload 6
ifne 19
StackMap locals:
StackMap stack:
11: aload 0
getfield org.springframework.expression.spel.ast.MethodReference.nullSafe:Z
ifeq 19
12: aload 1
bipush 89
invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
13: new org.springframework.asm.Label
dup
invokespecial org.springframework.asm.Label.<init>:()V
astore 8
14: new org.springframework.asm.Label
dup
invokespecial org.springframework.asm.Label.<init>:()V
astore 9
start local 9 15: aload 1
sipush 199
aload 9
invokevirtual org.springframework.asm.MethodVisitor.visitJumpInsn:(ILorg/springframework/asm/Label;)V
16: aload 1
aload 0
getfield org.springframework.expression.spel.ast.MethodReference.exitTypeDescriptor:Ljava/lang/String;
invokestatic org.springframework.expression.spel.CodeFlow.insertCheckCast:(Lorg/springframework/asm/MethodVisitor;Ljava/lang/String;)V
17: aload 1
sipush 167
aload 8
invokevirtual org.springframework.asm.MethodVisitor.visitJumpInsn:(ILorg/springframework/asm/Label;)V
18: aload 1
aload 9
invokevirtual org.springframework.asm.MethodVisitor.visitLabel:(Lorg/springframework/asm/Label;)V
end local 9 19: StackMap locals:
StackMap stack:
aload 7
ifnull 21
iload 6
ifeq 21
20: aload 1
bipush 87
invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
21: StackMap locals:
StackMap stack:
aload 7
invokestatic org.springframework.expression.spel.CodeFlow.isPrimitive:(Ljava/lang/String;)Z
ifeq 23
22: aload 1
aload 7
iconst_0
invokevirtual java.lang.String.charAt:(I)C
invokestatic org.springframework.expression.spel.CodeFlow.insertBoxIfNecessary:(Lorg/springframework/asm/MethodVisitor;C)V
23: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
ifeq 26
24: aload 5
invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
bipush 46
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
astore 9
start local 9 25: goto 31
end local 9 26: StackMap locals:
StackMap stack:
aload 4
invokevirtual org.springframework.expression.spel.support.ReflectiveMethodExecutor.getPublicDeclaringClass:()Ljava/lang/Class;
astore 10
start local 10 27: aload 10
ifnull 28
iconst_1
goto 29
StackMap locals: org.springframework.expression.spel.ast.MethodReference org.springframework.asm.MethodVisitor org.springframework.expression.spel.CodeFlow org.springframework.expression.spel.ast.MethodReference$CachedMethodExecutor org.springframework.expression.spel.support.ReflectiveMethodExecutor java.lang.reflect.Method int java.lang.String org.springframework.asm.Label top java.lang.Class
StackMap stack:
28: iconst_0
StackMap locals:
StackMap stack: int
29: ldc "No public declaring class"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
30: aload 10
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
bipush 46
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
astore 9
end local 10 start local 9 31: StackMap locals: org.springframework.expression.spel.ast.MethodReference org.springframework.asm.MethodVisitor org.springframework.expression.spel.CodeFlow org.springframework.expression.spel.ast.MethodReference$CachedMethodExecutor org.springframework.expression.spel.support.ReflectiveMethodExecutor java.lang.reflect.Method int java.lang.String org.springframework.asm.Label java.lang.String
StackMap stack:
iload 6
ifne 33
aload 7
ifnull 32
aload 7
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
aload 9
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 33
32: StackMap locals:
StackMap stack:
aload 1
new java.lang.StringBuilder
dup
ldc "L"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.springframework.expression.spel.CodeFlow.insertCheckCast:(Lorg/springframework/asm/MethodVisitor;Ljava/lang/String;)V
33: StackMap locals:
StackMap stack:
aload 1
aload 2
aload 5
aload 0
getfield org.springframework.expression.spel.ast.MethodReference.children:[Lorg/springframework/expression/spel/ast/SpelNodeImpl;
invokestatic org.springframework.expression.spel.ast.MethodReference.generateCodeForArguments:(Lorg/springframework/asm/MethodVisitor;Lorg/springframework/expression/spel/CodeFlow;Ljava/lang/reflect/Member;[Lorg/springframework/expression/spel/ast/SpelNodeImpl;)V
34: aload 1
iload 6
ifeq 35
sipush 184
goto 36
StackMap locals:
StackMap stack: org.springframework.asm.MethodVisitor
35: sipush 182
StackMap locals: org.springframework.expression.spel.ast.MethodReference org.springframework.asm.MethodVisitor org.springframework.expression.spel.CodeFlow org.springframework.expression.spel.ast.MethodReference$CachedMethodExecutor org.springframework.expression.spel.support.ReflectiveMethodExecutor java.lang.reflect.Method int java.lang.String org.springframework.asm.Label java.lang.String
StackMap stack: org.springframework.asm.MethodVisitor int
36: aload 9
aload 5
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
37: aload 5
invokestatic org.springframework.expression.spel.CodeFlow.createSignatureDescriptor:(Ljava/lang/reflect/Method;)Ljava/lang/String;
aload 5
invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.isInterface:()Z
38: invokevirtual org.springframework.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
39: aload 2
aload 0
getfield org.springframework.expression.spel.ast.MethodReference.exitTypeDescriptor:Ljava/lang/String;
invokevirtual org.springframework.expression.spel.CodeFlow.pushDescriptor:(Ljava/lang/String;)V
40: aload 0
getfield org.springframework.expression.spel.ast.MethodReference.originalPrimitiveExitTypeDescriptor:Ljava/lang/String;
ifnull 42
41: aload 1
aload 0
getfield org.springframework.expression.spel.ast.MethodReference.originalPrimitiveExitTypeDescriptor:Ljava/lang/String;
invokestatic org.springframework.expression.spel.CodeFlow.insertBoxIfNecessary:(Lorg/springframework/asm/MethodVisitor;Ljava/lang/String;)V
42: StackMap locals:
StackMap stack:
aload 8
ifnull 44
43: aload 1
aload 8
invokevirtual org.springframework.asm.MethodVisitor.visitLabel:(Lorg/springframework/asm/Label;)V
44: StackMap locals:
StackMap stack:
return
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 45 0 this Lorg/springframework/expression/spel/ast/MethodReference;
0 45 1 mv Lorg/springframework/asm/MethodVisitor;
0 45 2 cf Lorg/springframework/expression/spel/CodeFlow;
1 45 3 executorToCheck Lorg/springframework/expression/spel/ast/MethodReference$CachedMethodExecutor;
4 45 4 methodExecutor Lorg/springframework/expression/spel/support/ReflectiveMethodExecutor;
5 45 5 method Ljava/lang/reflect/Method;
6 45 6 isStaticMethod Z
7 45 7 descriptor Ljava/lang/String;
8 45 8 skipIfNull Lorg/springframework/asm/Label;
15 19 9 continueLabel Lorg/springframework/asm/Label;
25 26 9 classDesc Ljava/lang/String;
31 45 9 classDesc Ljava/lang/String;
27 31 10 publicDeclaringClass Ljava/lang/Class<*>;
MethodParameters:
Name Flags
mv
cf
}
SourceFile: "MethodReference.java"
NestMembers:
org.springframework.expression.spel.ast.MethodReference$CachedMethodExecutor org.springframework.expression.spel.ast.MethodReference$MethodValueRef
InnerClasses:
private CachedMethodExecutor = org.springframework.expression.spel.ast.MethodReference$CachedMethodExecutor of org.springframework.expression.spel.ast.MethodReference
private MethodValueRef = org.springframework.expression.spel.ast.MethodReference$MethodValueRef of org.springframework.expression.spel.ast.MethodReference
public NullValueRef = org.springframework.expression.spel.ast.ValueRef$NullValueRef of org.springframework.expression.spel.ast.ValueRef