public class org.springframework.expression.spel.ast.Indexer 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.Indexer
super_class: org.springframework.expression.spel.ast.SpelNodeImpl
{
private java.lang.String cachedReadName;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private java.lang.Class<?> cachedReadTargetType;
descriptor: Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/lang/Class<*>;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private org.springframework.expression.PropertyAccessor cachedReadAccessor;
descriptor: Lorg/springframework/expression/PropertyAccessor;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private java.lang.String cachedWriteName;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private java.lang.Class<?> cachedWriteTargetType;
descriptor: Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/lang/Class<*>;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private org.springframework.expression.PropertyAccessor cachedWriteAccessor;
descriptor: Lorg/springframework/expression/PropertyAccessor;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private org.springframework.expression.spel.ast.Indexer$IndexedType indexedType;
descriptor: Lorg/springframework/expression/spel/ast/Indexer$IndexedType;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
public void <init>(int, org.springframework.expression.spel.ast.SpelNodeImpl);
descriptor: (ILorg/springframework/expression/spel/ast/SpelNodeImpl;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
iconst_1
anewarray org.springframework.expression.spel.ast.SpelNodeImpl
dup
iconst_0
aload 2
aastore
invokespecial org.springframework.expression.spel.ast.SpelNodeImpl.<init>:(I[Lorg/springframework/expression/spel/ast/SpelNodeImpl;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/expression/spel/ast/Indexer;
0 2 1 pos I
0 2 2 expr Lorg/springframework/expression/spel/ast/SpelNodeImpl;
MethodParameters:
Name Flags
pos
expr
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=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.springframework.expression.spel.ast.Indexer.getValueRef:(Lorg/springframework/expression/spel/ExpressionState;)Lorg/springframework/expression/spel/ast/ValueRef;
invokeinterface org.springframework.expression.spel.ast.ValueRef.getValue:()Lorg/springframework/expression/TypedValue;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/expression/spel/ast/Indexer;
0 1 1 state Lorg/springframework/expression/spel/ExpressionState;
Exceptions:
throws org.springframework.expression.EvaluationException
MethodParameters:
Name Flags
state
public void setValue(org.springframework.expression.spel.ExpressionState, java.lang.Object);
descriptor: (Lorg/springframework/expression/spel/ExpressionState;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual org.springframework.expression.spel.ast.Indexer.getValueRef:(Lorg/springframework/expression/spel/ExpressionState;)Lorg/springframework/expression/spel/ast/ValueRef;
aload 2
invokeinterface org.springframework.expression.spel.ast.ValueRef.setValue:(Ljava/lang/Object;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/expression/spel/ast/Indexer;
0 2 1 state Lorg/springframework/expression/spel/ExpressionState;
0 2 2 newValue Ljava/lang/Object;
Exceptions:
throws org.springframework.expression.EvaluationException
RuntimeVisibleParameterAnnotations:
0:
1:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
state
newValue
public boolean isWritable(org.springframework.expression.spel.ExpressionState);
descriptor: (Lorg/springframework/expression/spel/ExpressionState;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/expression/spel/ast/Indexer;
0 1 1 expressionState Lorg/springframework/expression/spel/ExpressionState;
Exceptions:
throws org.springframework.expression.spel.SpelEvaluationException
MethodParameters:
Name Flags
expressionState
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=9, locals=8, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.springframework.expression.spel.ExpressionState.getActiveContextObject:()Lorg/springframework/expression/TypedValue;
astore 2
start local 2 1: aload 2
invokevirtual org.springframework.expression.TypedValue.getValue:()Ljava/lang/Object;
astore 3
start local 3 2: aload 2
invokevirtual org.springframework.expression.TypedValue.getTypeDescriptor:()Lorg/springframework/core/convert/TypeDescriptor;
astore 4
start local 4 3: aload 3
instanceof java.util.Map
ifeq 8
aload 0
getfield org.springframework.expression.spel.ast.Indexer.children:[Lorg/springframework/expression/spel/ast/SpelNodeImpl;
iconst_0
aaload
instanceof org.springframework.expression.spel.ast.PropertyOrFieldReference
ifeq 8
4: aload 0
getfield org.springframework.expression.spel.ast.Indexer.children:[Lorg/springframework/expression/spel/ast/SpelNodeImpl;
iconst_0
aaload
checkcast org.springframework.expression.spel.ast.PropertyOrFieldReference
astore 7
start local 7 5: aload 7
invokevirtual org.springframework.expression.spel.ast.PropertyOrFieldReference.getName:()Ljava/lang/String;
astore 6
start local 6 6: new org.springframework.expression.TypedValue
dup
aload 6
invokespecial org.springframework.expression.TypedValue.<init>:(Ljava/lang/Object;)V
astore 5
end local 7 start local 5 7: goto 19
end local 6 end local 5 8: StackMap locals: org.springframework.expression.TypedValue java.lang.Object org.springframework.core.convert.TypeDescriptor
StackMap stack:
aload 1
aload 1
invokevirtual org.springframework.expression.spel.ExpressionState.getRootContextObject:()Lorg/springframework/expression/TypedValue;
invokevirtual org.springframework.expression.spel.ExpressionState.pushActiveContextObject:(Lorg/springframework/expression/TypedValue;)V
9: aload 0
getfield org.springframework.expression.spel.ast.Indexer.children:[Lorg/springframework/expression/spel/ast/SpelNodeImpl;
iconst_0
aaload
aload 1
invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.getValueInternal:(Lorg/springframework/expression/spel/ExpressionState;)Lorg/springframework/expression/TypedValue;
astore 5
start local 5 10: aload 5
invokevirtual org.springframework.expression.TypedValue.getValue:()Ljava/lang/Object;
astore 6
start local 6 11: aload 6
ifnull 12
iconst_1
goto 13
StackMap locals: org.springframework.expression.TypedValue java.lang.Object
StackMap stack:
12: iconst_0
StackMap locals:
StackMap stack: int
13: ldc "No index"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
14: goto 18
end local 6 end local 5 15: StackMap locals: org.springframework.expression.spel.ast.Indexer org.springframework.expression.spel.ExpressionState org.springframework.expression.TypedValue java.lang.Object org.springframework.core.convert.TypeDescriptor
StackMap stack: java.lang.Throwable
astore 7
16: aload 1
invokevirtual org.springframework.expression.spel.ExpressionState.popActiveContextObject:()V
17: aload 7
athrow
start local 5 start local 6 18: StackMap locals: org.springframework.expression.TypedValue java.lang.Object
StackMap stack:
aload 1
invokevirtual org.springframework.expression.spel.ExpressionState.popActiveContextObject:()V
19: StackMap locals:
StackMap stack:
aload 3
ifnonnull 21
20: new org.springframework.expression.spel.SpelEvaluationException
dup
aload 0
invokevirtual org.springframework.expression.spel.ast.Indexer.getStartPosition:()I
getstatic org.springframework.expression.spel.SpelMessage.CANNOT_INDEX_INTO_NULL_VALUE:Lorg/springframework/expression/spel/SpelMessage;
iconst_0
anewarray java.lang.Object
invokespecial org.springframework.expression.spel.SpelEvaluationException.<init>:(ILorg/springframework/expression/spel/SpelMessage;[Ljava/lang/Object;)V
athrow
21: StackMap locals:
StackMap stack:
aload 4
ifnull 22
iconst_1
goto 23
StackMap locals:
StackMap stack:
22: iconst_0
StackMap locals:
StackMap stack: int
23: ldc "No type descriptor"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
24: aload 3
instanceof java.util.Map
ifeq 30
25: aload 6
astore 7
start local 7 26: aload 4
invokevirtual org.springframework.core.convert.TypeDescriptor.getMapKeyTypeDescriptor:()Lorg/springframework/core/convert/TypeDescriptor;
ifnull 28
27: aload 1
aload 7
aload 4
invokevirtual org.springframework.core.convert.TypeDescriptor.getMapKeyTypeDescriptor:()Lorg/springframework/core/convert/TypeDescriptor;
invokevirtual org.springframework.expression.spel.ExpressionState.convertValue:(Ljava/lang/Object;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/lang/Object;
astore 7
28: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getstatic org.springframework.expression.spel.ast.Indexer$IndexedType.MAP:Lorg/springframework/expression/spel/ast/Indexer$IndexedType;
putfield org.springframework.expression.spel.ast.Indexer.indexedType:Lorg/springframework/expression/spel/ast/Indexer$IndexedType;
29: new org.springframework.expression.spel.ast.Indexer$MapIndexingValueRef
dup
aload 0
aload 1
invokevirtual org.springframework.expression.spel.ExpressionState.getTypeConverter:()Lorg/springframework/expression/TypeConverter;
aload 3
checkcast java.util.Map
aload 7
aload 4
invokespecial org.springframework.expression.spel.ast.Indexer$MapIndexingValueRef.<init>:(Lorg/springframework/expression/spel/ast/Indexer;Lorg/springframework/expression/TypeConverter;Ljava/util/Map;Ljava/lang/Object;Lorg/springframework/core/convert/TypeDescriptor;)V
areturn
end local 7 30: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.isArray:()Z
ifne 31
aload 3
instanceof java.util.Collection
ifne 31
aload 3
instanceof java.lang.String
ifeq 44
31: StackMap locals:
StackMap stack:
aload 1
aload 6
ldc Ljava/lang/Integer;
invokestatic org.springframework.core.convert.TypeDescriptor.valueOf:(Ljava/lang/Class;)Lorg/springframework/core/convert/TypeDescriptor;
invokevirtual org.springframework.expression.spel.ExpressionState.convertValue:(Ljava/lang/Object;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 7
start local 7 32: aload 3
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.isArray:()Z
ifeq 35
33: aload 0
getstatic org.springframework.expression.spel.ast.Indexer$IndexedType.ARRAY:Lorg/springframework/expression/spel/ast/Indexer$IndexedType;
putfield org.springframework.expression.spel.ast.Indexer.indexedType:Lorg/springframework/expression/spel/ast/Indexer$IndexedType;
34: new org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef
dup
aload 0
aload 1
invokevirtual org.springframework.expression.spel.ExpressionState.getTypeConverter:()Lorg/springframework/expression/TypeConverter;
aload 3
iload 7
aload 4
invokespecial org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef.<init>:(Lorg/springframework/expression/spel/ast/Indexer;Lorg/springframework/expression/TypeConverter;Ljava/lang/Object;ILorg/springframework/core/convert/TypeDescriptor;)V
areturn
35: StackMap locals: int
StackMap stack:
aload 3
instanceof java.util.Collection
ifeq 42
36: aload 3
instanceof java.util.List
ifeq 38
37: aload 0
getstatic org.springframework.expression.spel.ast.Indexer$IndexedType.LIST:Lorg/springframework/expression/spel/ast/Indexer$IndexedType;
putfield org.springframework.expression.spel.ast.Indexer.indexedType:Lorg/springframework/expression/spel/ast/Indexer$IndexedType;
38: StackMap locals:
StackMap stack:
new org.springframework.expression.spel.ast.Indexer$CollectionIndexingValueRef
dup
aload 0
aload 3
checkcast java.util.Collection
iload 7
aload 4
39: aload 1
invokevirtual org.springframework.expression.spel.ExpressionState.getTypeConverter:()Lorg/springframework/expression/TypeConverter;
aload 1
invokevirtual org.springframework.expression.spel.ExpressionState.getConfiguration:()Lorg/springframework/expression/spel/SpelParserConfiguration;
invokevirtual org.springframework.expression.spel.SpelParserConfiguration.isAutoGrowCollections:()Z
40: aload 1
invokevirtual org.springframework.expression.spel.ExpressionState.getConfiguration:()Lorg/springframework/expression/spel/SpelParserConfiguration;
invokevirtual org.springframework.expression.spel.SpelParserConfiguration.getMaximumAutoGrowSize:()I
41: invokespecial org.springframework.expression.spel.ast.Indexer$CollectionIndexingValueRef.<init>:(Lorg/springframework/expression/spel/ast/Indexer;Ljava/util/Collection;ILorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/expression/TypeConverter;ZI)V
areturn
42: StackMap locals:
StackMap stack:
aload 0
getstatic org.springframework.expression.spel.ast.Indexer$IndexedType.STRING:Lorg/springframework/expression/spel/ast/Indexer$IndexedType;
putfield org.springframework.expression.spel.ast.Indexer.indexedType:Lorg/springframework/expression/spel/ast/Indexer$IndexedType;
43: new org.springframework.expression.spel.ast.Indexer$StringIndexingLValue
dup
aload 0
aload 3
checkcast java.lang.String
iload 7
aload 4
invokespecial org.springframework.expression.spel.ast.Indexer$StringIndexingLValue.<init>:(Lorg/springframework/expression/spel/ast/Indexer;Ljava/lang/String;ILorg/springframework/core/convert/TypeDescriptor;)V
areturn
end local 7 44: StackMap locals:
StackMap stack:
aload 5
invokevirtual org.springframework.expression.TypedValue.getTypeDescriptor:()Lorg/springframework/core/convert/TypeDescriptor;
astore 7
start local 7 45: aload 7
ifnull 50
ldc Ljava/lang/String;
aload 7
invokevirtual org.springframework.core.convert.TypeDescriptor.getType:()Ljava/lang/Class;
if_acmpne 50
46: aload 0
getstatic org.springframework.expression.spel.ast.Indexer$IndexedType.OBJECT:Lorg/springframework/expression/spel/ast/Indexer$IndexedType;
putfield org.springframework.expression.spel.ast.Indexer.indexedType:Lorg/springframework/expression/spel/ast/Indexer$IndexedType;
47: new org.springframework.expression.spel.ast.Indexer$PropertyIndexingValueRef
dup
aload 0
48: aload 3
aload 6
checkcast java.lang.String
aload 1
invokevirtual org.springframework.expression.spel.ExpressionState.getEvaluationContext:()Lorg/springframework/expression/EvaluationContext;
aload 4
49: invokespecial org.springframework.expression.spel.ast.Indexer$PropertyIndexingValueRef.<init>:(Lorg/springframework/expression/spel/ast/Indexer;Ljava/lang/Object;Ljava/lang/String;Lorg/springframework/expression/EvaluationContext;Lorg/springframework/core/convert/TypeDescriptor;)V
areturn
50: StackMap locals: org.springframework.core.convert.TypeDescriptor
StackMap stack:
new org.springframework.expression.spel.SpelEvaluationException
dup
51: aload 0
invokevirtual org.springframework.expression.spel.ast.Indexer.getStartPosition:()I
getstatic org.springframework.expression.spel.SpelMessage.INDEXING_NOT_SUPPORTED_FOR_TYPE:Lorg/springframework/expression/spel/SpelMessage;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
52: 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 53 0 this Lorg/springframework/expression/spel/ast/Indexer;
0 53 1 state Lorg/springframework/expression/spel/ExpressionState;
1 53 2 context Lorg/springframework/expression/TypedValue;
2 53 3 target Ljava/lang/Object;
3 53 4 targetDescriptor Lorg/springframework/core/convert/TypeDescriptor;
7 8 5 indexValue Lorg/springframework/expression/TypedValue;
10 15 5 indexValue Lorg/springframework/expression/TypedValue;
18 53 5 indexValue Lorg/springframework/expression/TypedValue;
6 8 6 index Ljava/lang/Object;
11 15 6 index Ljava/lang/Object;
18 53 6 index Ljava/lang/Object;
5 7 7 reference Lorg/springframework/expression/spel/ast/PropertyOrFieldReference;
26 30 7 key Ljava/lang/Object;
32 44 7 idx I
45 53 7 valueType Lorg/springframework/core/convert/TypeDescriptor;
Exception table:
from to target type
8 15 15 any
Exceptions:
throws org.springframework.expression.EvaluationException
MethodParameters:
Name Flags
state
public boolean isCompilable();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.expression.spel.ast.Indexer.indexedType:Lorg/springframework/expression/spel/ast/Indexer$IndexedType;
getstatic org.springframework.expression.spel.ast.Indexer$IndexedType.ARRAY:Lorg/springframework/expression/spel/ast/Indexer$IndexedType;
if_acmpne 3
1: aload 0
getfield org.springframework.expression.spel.ast.Indexer.exitTypeDescriptor:Ljava/lang/String;
ifnull 2
iconst_1
ireturn
StackMap locals:
StackMap stack:
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.expression.spel.ast.Indexer.indexedType:Lorg/springframework/expression/spel/ast/Indexer$IndexedType;
getstatic org.springframework.expression.spel.ast.Indexer$IndexedType.LIST:Lorg/springframework/expression/spel/ast/Indexer$IndexedType;
if_acmpne 5
4: aload 0
getfield org.springframework.expression.spel.ast.Indexer.children:[Lorg/springframework/expression/spel/ast/SpelNodeImpl;
iconst_0
aaload
invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.isCompilable:()Z
ireturn
5: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.expression.spel.ast.Indexer.indexedType:Lorg/springframework/expression/spel/ast/Indexer$IndexedType;
getstatic org.springframework.expression.spel.ast.Indexer$IndexedType.MAP:Lorg/springframework/expression/spel/ast/Indexer$IndexedType;
if_acmpne 8
6: aload 0
getfield org.springframework.expression.spel.ast.Indexer.children:[Lorg/springframework/expression/spel/ast/SpelNodeImpl;
iconst_0
aaload
instanceof org.springframework.expression.spel.ast.PropertyOrFieldReference
ifne 7
aload 0
getfield org.springframework.expression.spel.ast.Indexer.children:[Lorg/springframework/expression/spel/ast/SpelNodeImpl;
iconst_0
aaload
invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.isCompilable:()Z
ifne 7
iconst_0
ireturn
StackMap locals:
StackMap stack:
7: iconst_1
ireturn
8: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.expression.spel.ast.Indexer.indexedType:Lorg/springframework/expression/spel/ast/Indexer$IndexedType;
getstatic org.springframework.expression.spel.ast.Indexer$IndexedType.OBJECT:Lorg/springframework/expression/spel/ast/Indexer$IndexedType;
if_acmpne 14
9: aload 0
getfield org.springframework.expression.spel.ast.Indexer.cachedReadAccessor:Lorg/springframework/expression/PropertyAccessor;
ifnull 13
10: aload 0
getfield org.springframework.expression.spel.ast.Indexer.cachedReadAccessor:Lorg/springframework/expression/PropertyAccessor;
instanceof org.springframework.expression.spel.support.ReflectivePropertyAccessor$OptimalPropertyAccessor
ifeq 13
11: aload 0
iconst_0
invokevirtual org.springframework.expression.spel.ast.Indexer.getChild:(I)Lorg/springframework/expression/spel/SpelNode;
instanceof org.springframework.expression.spel.ast.StringLiteral
ifeq 13
12: iconst_1
ireturn
StackMap locals:
StackMap stack:
13: iconst_0
ireturn
14: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/springframework/expression/spel/ast/Indexer;
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=8, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual org.springframework.expression.spel.CodeFlow.lastDescriptor:()Ljava/lang/String;
astore 3
start local 3 1: aload 3
ifnonnull 3
2: aload 2
aload 1
invokevirtual org.springframework.expression.spel.CodeFlow.loadTarget:(Lorg/springframework/asm/MethodVisitor;)V
3: StackMap locals: java.lang.String
StackMap stack:
aload 0
getfield org.springframework.expression.spel.ast.Indexer.indexedType:Lorg/springframework/expression/spel/ast/Indexer$IndexedType;
getstatic org.springframework.expression.spel.ast.Indexer$IndexedType.ARRAY:Lorg/springframework/expression/spel/ast/Indexer$IndexedType;
if_acmpne 44
4: ldc "D"
aload 0
getfield org.springframework.expression.spel.ast.Indexer.exitTypeDescriptor:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 8
5: aload 1
sipush 192
ldc "[D"
invokevirtual org.springframework.asm.MethodVisitor.visitTypeInsn:(ILjava/lang/String;)V
6: bipush 49
istore 4
start local 4 7: goto 38
end local 4 8: StackMap locals:
StackMap stack:
ldc "F"
aload 0
getfield org.springframework.expression.spel.ast.Indexer.exitTypeDescriptor:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 12
9: aload 1
sipush 192
ldc "[F"
invokevirtual org.springframework.asm.MethodVisitor.visitTypeInsn:(ILjava/lang/String;)V
10: bipush 48
istore 4
start local 4 11: goto 38
end local 4 12: StackMap locals:
StackMap stack:
ldc "J"
aload 0
getfield org.springframework.expression.spel.ast.Indexer.exitTypeDescriptor:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 16
13: aload 1
sipush 192
ldc "[J"
invokevirtual org.springframework.asm.MethodVisitor.visitTypeInsn:(ILjava/lang/String;)V
14: bipush 47
istore 4
start local 4 15: goto 38
end local 4 16: StackMap locals:
StackMap stack:
ldc "I"
aload 0
getfield org.springframework.expression.spel.ast.Indexer.exitTypeDescriptor:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 20
17: aload 1
sipush 192
ldc "[I"
invokevirtual org.springframework.asm.MethodVisitor.visitTypeInsn:(ILjava/lang/String;)V
18: bipush 46
istore 4
start local 4 19: goto 38
end local 4 20: StackMap locals:
StackMap stack:
ldc "S"
aload 0
getfield org.springframework.expression.spel.ast.Indexer.exitTypeDescriptor:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 24
21: aload 1
sipush 192
ldc "[S"
invokevirtual org.springframework.asm.MethodVisitor.visitTypeInsn:(ILjava/lang/String;)V
22: bipush 53
istore 4
start local 4 23: goto 38
end local 4 24: StackMap locals:
StackMap stack:
ldc "B"
aload 0
getfield org.springframework.expression.spel.ast.Indexer.exitTypeDescriptor:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 28
25: aload 1
sipush 192
ldc "[B"
invokevirtual org.springframework.asm.MethodVisitor.visitTypeInsn:(ILjava/lang/String;)V
26: bipush 51
istore 4
start local 4 27: goto 38
end local 4 28: StackMap locals:
StackMap stack:
ldc "C"
aload 0
getfield org.springframework.expression.spel.ast.Indexer.exitTypeDescriptor:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 32
29: aload 1
sipush 192
ldc "[C"
invokevirtual org.springframework.asm.MethodVisitor.visitTypeInsn:(ILjava/lang/String;)V
30: bipush 52
istore 4
start local 4 31: goto 38
end local 4 32: StackMap locals:
StackMap stack:
aload 1
sipush 192
new java.lang.StringBuilder
dup
ldc "["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.springframework.expression.spel.ast.Indexer.exitTypeDescriptor:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
33: aload 0
getfield org.springframework.expression.spel.ast.Indexer.exitTypeDescriptor:Ljava/lang/String;
invokestatic org.springframework.expression.spel.CodeFlow.isPrimitiveArray:(Ljava/lang/String;)Z
ifeq 34
ldc ""
goto 35
StackMap locals: org.springframework.expression.spel.ast.Indexer org.springframework.asm.MethodVisitor org.springframework.expression.spel.CodeFlow java.lang.String
StackMap stack: org.springframework.asm.MethodVisitor int java.lang.StringBuilder
34: ldc ";"
StackMap locals: org.springframework.expression.spel.ast.Indexer org.springframework.asm.MethodVisitor org.springframework.expression.spel.CodeFlow java.lang.String
StackMap stack: org.springframework.asm.MethodVisitor int java.lang.StringBuilder java.lang.String
35: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
36: invokevirtual org.springframework.asm.MethodVisitor.visitTypeInsn:(ILjava/lang/String;)V
37: bipush 50
istore 4
start local 4 38: StackMap locals: int
StackMap stack:
aload 0
getfield org.springframework.expression.spel.ast.Indexer.children:[Lorg/springframework/expression/spel/ast/SpelNodeImpl;
iconst_0
aaload
astore 5
start local 5 39: aload 2
invokevirtual org.springframework.expression.spel.CodeFlow.enterCompilationScope:()V
40: aload 5
aload 1
aload 2
invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.generateCode:(Lorg/springframework/asm/MethodVisitor;Lorg/springframework/expression/spel/CodeFlow;)V
41: aload 2
invokevirtual org.springframework.expression.spel.CodeFlow.exitCompilationScope:()V
42: aload 1
iload 4
invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
end local 5 end local 4 43: goto 91
44: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.expression.spel.ast.Indexer.indexedType:Lorg/springframework/expression/spel/ast/Indexer$IndexedType;
getstatic org.springframework.expression.spel.ast.Indexer$IndexedType.LIST:Lorg/springframework/expression/spel/ast/Indexer$IndexedType;
if_acmpne 51
45: aload 1
sipush 192
ldc "java/util/List"
invokevirtual org.springframework.asm.MethodVisitor.visitTypeInsn:(ILjava/lang/String;)V
46: aload 2
invokevirtual org.springframework.expression.spel.CodeFlow.enterCompilationScope:()V
47: aload 0
getfield org.springframework.expression.spel.ast.Indexer.children:[Lorg/springframework/expression/spel/ast/SpelNodeImpl;
iconst_0
aaload
aload 1
aload 2
invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.generateCode:(Lorg/springframework/asm/MethodVisitor;Lorg/springframework/expression/spel/CodeFlow;)V
48: aload 2
invokevirtual org.springframework.expression.spel.CodeFlow.exitCompilationScope:()V
49: aload 1
sipush 185
ldc "java/util/List"
ldc "get"
ldc "(I)Ljava/lang/Object;"
iconst_1
invokevirtual org.springframework.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
50: goto 91
51: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.expression.spel.ast.Indexer.indexedType:Lorg/springframework/expression/spel/ast/Indexer$IndexedType;
getstatic org.springframework.expression.spel.ast.Indexer$IndexedType.MAP:Lorg/springframework/expression/spel/ast/Indexer$IndexedType;
if_acmpne 65
52: aload 1
sipush 192
ldc "java/util/Map"
invokevirtual org.springframework.asm.MethodVisitor.visitTypeInsn:(ILjava/lang/String;)V
53: aload 0
getfield org.springframework.expression.spel.ast.Indexer.children:[Lorg/springframework/expression/spel/ast/SpelNodeImpl;
iconst_0
aaload
instanceof org.springframework.expression.spel.ast.PropertyOrFieldReference
ifeq 58
54: aload 0
getfield org.springframework.expression.spel.ast.Indexer.children:[Lorg/springframework/expression/spel/ast/SpelNodeImpl;
iconst_0
aaload
checkcast org.springframework.expression.spel.ast.PropertyOrFieldReference
astore 4
start local 4 55: aload 4
invokevirtual org.springframework.expression.spel.ast.PropertyOrFieldReference.getName:()Ljava/lang/String;
astore 5
start local 5 56: aload 1
aload 5
invokevirtual org.springframework.asm.MethodVisitor.visitLdcInsn:(Ljava/lang/Object;)V
end local 5 end local 4 57: goto 61
58: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.springframework.expression.spel.CodeFlow.enterCompilationScope:()V
59: aload 0
getfield org.springframework.expression.spel.ast.Indexer.children:[Lorg/springframework/expression/spel/ast/SpelNodeImpl;
iconst_0
aaload
aload 1
aload 2
invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.generateCode:(Lorg/springframework/asm/MethodVisitor;Lorg/springframework/expression/spel/CodeFlow;)V
60: aload 2
invokevirtual org.springframework.expression.spel.CodeFlow.exitCompilationScope:()V
61: StackMap locals:
StackMap stack:
aload 1
62: sipush 185
ldc "java/util/Map"
ldc "get"
ldc "(Ljava/lang/Object;)Ljava/lang/Object;"
iconst_1
63: invokevirtual org.springframework.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
64: goto 91
65: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.expression.spel.ast.Indexer.indexedType:Lorg/springframework/expression/spel/ast/Indexer$IndexedType;
getstatic org.springframework.expression.spel.ast.Indexer$IndexedType.OBJECT:Lorg/springframework/expression/spel/ast/Indexer$IndexedType;
if_acmpne 91
66: aload 0
getfield org.springframework.expression.spel.ast.Indexer.cachedReadAccessor:Lorg/springframework/expression/PropertyAccessor;
checkcast org.springframework.expression.spel.support.ReflectivePropertyAccessor$OptimalPropertyAccessor
67: astore 4
start local 4 68: aload 4
ifnull 69
iconst_1
goto 70
StackMap locals: org.springframework.expression.spel.support.ReflectivePropertyAccessor$OptimalPropertyAccessor
StackMap stack:
69: iconst_0
StackMap locals:
StackMap stack: int
70: ldc "No cached read accessor"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
71: aload 4
getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor$OptimalPropertyAccessor.member:Ljava/lang/reflect/Member;
astore 5
start local 5 72: aload 5
invokeinterface java.lang.reflect.Member.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
istore 6
start local 6 73: aload 5
invokeinterface java.lang.reflect.Member.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 7
start local 7 74: iload 6
ifne 79
75: aload 3
ifnonnull 77
76: aload 2
aload 1
invokevirtual org.springframework.expression.spel.CodeFlow.loadTarget:(Lorg/springframework/asm/MethodVisitor;)V
77: StackMap locals: java.lang.reflect.Member int java.lang.String
StackMap stack:
aload 3
ifnull 78
aload 7
aload 3
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 79
78: StackMap locals:
StackMap stack:
aload 1
sipush 192
aload 7
invokevirtual org.springframework.asm.MethodVisitor.visitTypeInsn:(ILjava/lang/String;)V
79: StackMap locals:
StackMap stack:
aload 5
instanceof java.lang.reflect.Method
ifeq 86
80: aload 1
iload 6
ifeq 81
sipush 184
goto 82
StackMap locals:
StackMap stack: org.springframework.asm.MethodVisitor
81: sipush 182
StackMap locals: org.springframework.expression.spel.ast.Indexer org.springframework.asm.MethodVisitor org.springframework.expression.spel.CodeFlow java.lang.String org.springframework.expression.spel.support.ReflectivePropertyAccessor$OptimalPropertyAccessor java.lang.reflect.Member int java.lang.String
StackMap stack: org.springframework.asm.MethodVisitor int
82: aload 7
aload 5
invokeinterface java.lang.reflect.Member.getName:()Ljava/lang/String;
83: aload 5
checkcast java.lang.reflect.Method
invokestatic org.springframework.expression.spel.CodeFlow.createSignatureDescriptor:(Ljava/lang/reflect/Method;)Ljava/lang/String;
iconst_0
84: invokevirtual org.springframework.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
85: goto 91
86: StackMap locals:
StackMap stack:
aload 1
iload 6
ifeq 87
sipush 178
goto 88
StackMap locals:
StackMap stack: org.springframework.asm.MethodVisitor
87: sipush 180
StackMap locals: org.springframework.expression.spel.ast.Indexer org.springframework.asm.MethodVisitor org.springframework.expression.spel.CodeFlow java.lang.String org.springframework.expression.spel.support.ReflectivePropertyAccessor$OptimalPropertyAccessor java.lang.reflect.Member int java.lang.String
StackMap stack: org.springframework.asm.MethodVisitor int
88: aload 7
aload 5
invokeinterface java.lang.reflect.Member.getName:()Ljava/lang/String;
89: aload 5
checkcast java.lang.reflect.Field
invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
invokestatic org.springframework.expression.spel.CodeFlow.toJvmDescriptor:(Ljava/lang/Class;)Ljava/lang/String;
90: invokevirtual org.springframework.asm.MethodVisitor.visitFieldInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
end local 7 end local 6 end local 5 end local 4 91: StackMap locals: org.springframework.expression.spel.ast.Indexer org.springframework.asm.MethodVisitor org.springframework.expression.spel.CodeFlow java.lang.String
StackMap stack:
aload 2
aload 0
getfield org.springframework.expression.spel.ast.Indexer.exitTypeDescriptor:Ljava/lang/String;
invokevirtual org.springframework.expression.spel.CodeFlow.pushDescriptor:(Ljava/lang/String;)V
92: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 93 0 this Lorg/springframework/expression/spel/ast/Indexer;
0 93 1 mv Lorg/springframework/asm/MethodVisitor;
0 93 2 cf Lorg/springframework/expression/spel/CodeFlow;
1 93 3 descriptor Ljava/lang/String;
7 8 4 insn I
11 12 4 insn I
15 16 4 insn I
19 20 4 insn I
23 24 4 insn I
27 28 4 insn I
31 32 4 insn I
38 43 4 insn I
39 43 5 index Lorg/springframework/expression/spel/ast/SpelNodeImpl;
55 57 4 reference Lorg/springframework/expression/spel/ast/PropertyOrFieldReference;
56 57 5 mapKeyName Ljava/lang/String;
68 91 4 accessor Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor$OptimalPropertyAccessor;
72 91 5 member Ljava/lang/reflect/Member;
73 91 6 isStatic Z
74 91 7 classDesc Ljava/lang/String;
MethodParameters:
Name Flags
mv
cf
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
ldc "["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 7
3: StackMap locals: java.lang.StringBuilder int
StackMap stack:
iload 2
ifle 5
4: aload 1
ldc ","
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
5: StackMap locals:
StackMap stack:
aload 1
aload 0
iload 2
invokevirtual org.springframework.expression.spel.ast.Indexer.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
6: iinc 2 1
StackMap locals:
StackMap stack:
7: iload 2
aload 0
invokevirtual org.springframework.expression.spel.ast.Indexer.getChildCount:()I
if_icmplt 3
end local 2 8: aload 1
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
9: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/springframework/expression/spel/ast/Indexer;
1 10 1 sb Ljava/lang/StringBuilder;
2 8 2 i I
private void setArrayElement(org.springframework.expression.TypeConverter, , int, , java.lang.Class<?>);
descriptor: (Lorg/springframework/expression/TypeConverter;Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Class;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, 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 5
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
if_acmpne 5
1: aload 2
checkcast boolean[]
astore 6
start local 6 2: aload 0
aload 6
arraylength
iload 3
invokevirtual org.springframework.expression.spel.ast.Indexer.checkAccess:(II)V
3: aload 6
iload 3
aload 0
aload 1
aload 4
ldc Ljava/lang/Boolean;
invokevirtual org.springframework.expression.spel.ast.Indexer.convertValue:(Lorg/springframework/expression/TypeConverter;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
bastore
end local 6 4: goto 43
5: StackMap locals:
StackMap stack:
aload 5
getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
if_acmpne 10
6: aload 2
checkcast byte[]
astore 6
start local 6 7: aload 0
aload 6
arraylength
iload 3
invokevirtual org.springframework.expression.spel.ast.Indexer.checkAccess:(II)V
8: aload 6
iload 3
aload 0
aload 1
aload 4
ldc Ljava/lang/Byte;
invokevirtual org.springframework.expression.spel.ast.Indexer.convertValue:(Lorg/springframework/expression/TypeConverter;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
checkcast java.lang.Byte
invokevirtual java.lang.Byte.byteValue:()B
bastore
end local 6 9: goto 43
10: StackMap locals:
StackMap stack:
aload 5
getstatic java.lang.Character.TYPE:Ljava/lang/Class;
if_acmpne 15
11: aload 2
checkcast char[]
astore 6
start local 6 12: aload 0
aload 6
arraylength
iload 3
invokevirtual org.springframework.expression.spel.ast.Indexer.checkAccess:(II)V
13: aload 6
iload 3
aload 0
aload 1
aload 4
ldc Ljava/lang/Character;
invokevirtual org.springframework.expression.spel.ast.Indexer.convertValue:(Lorg/springframework/expression/TypeConverter;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
checkcast java.lang.Character
invokevirtual java.lang.Character.charValue:()C
castore
end local 6 14: goto 43
15: StackMap locals:
StackMap stack:
aload 5
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
if_acmpne 20
16: aload 2
checkcast double[]
astore 6
start local 6 17: aload 0
aload 6
arraylength
iload 3
invokevirtual org.springframework.expression.spel.ast.Indexer.checkAccess:(II)V
18: aload 6
iload 3
aload 0
aload 1
aload 4
ldc Ljava/lang/Double;
invokevirtual org.springframework.expression.spel.ast.Indexer.convertValue:(Lorg/springframework/expression/TypeConverter;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
checkcast java.lang.Double
invokevirtual java.lang.Double.doubleValue:()D
dastore
end local 6 19: goto 43
20: StackMap locals:
StackMap stack:
aload 5
getstatic java.lang.Float.TYPE:Ljava/lang/Class;
if_acmpne 25
21: aload 2
checkcast float[]
astore 6
start local 6 22: aload 0
aload 6
arraylength
iload 3
invokevirtual org.springframework.expression.spel.ast.Indexer.checkAccess:(II)V
23: aload 6
iload 3
aload 0
aload 1
aload 4
ldc Ljava/lang/Float;
invokevirtual org.springframework.expression.spel.ast.Indexer.convertValue:(Lorg/springframework/expression/TypeConverter;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
checkcast java.lang.Float
invokevirtual java.lang.Float.floatValue:()F
fastore
end local 6 24: goto 43
25: StackMap locals:
StackMap stack:
aload 5
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
if_acmpne 30
26: aload 2
checkcast int[]
astore 6
start local 6 27: aload 0
aload 6
arraylength
iload 3
invokevirtual org.springframework.expression.spel.ast.Indexer.checkAccess:(II)V
28: aload 6
iload 3
aload 0
aload 1
aload 4
ldc Ljava/lang/Integer;
invokevirtual org.springframework.expression.spel.ast.Indexer.convertValue:(Lorg/springframework/expression/TypeConverter;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
iastore
end local 6 29: goto 43
30: StackMap locals:
StackMap stack:
aload 5
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
if_acmpne 35
31: aload 2
checkcast long[]
astore 6
start local 6 32: aload 0
aload 6
arraylength
iload 3
invokevirtual org.springframework.expression.spel.ast.Indexer.checkAccess:(II)V
33: aload 6
iload 3
aload 0
aload 1
aload 4
ldc Ljava/lang/Long;
invokevirtual org.springframework.expression.spel.ast.Indexer.convertValue:(Lorg/springframework/expression/TypeConverter;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
lastore
end local 6 34: goto 43
35: StackMap locals:
StackMap stack:
aload 5
getstatic java.lang.Short.TYPE:Ljava/lang/Class;
if_acmpne 40
36: aload 2
checkcast short[]
astore 6
start local 6 37: aload 0
aload 6
arraylength
iload 3
invokevirtual org.springframework.expression.spel.ast.Indexer.checkAccess:(II)V
38: aload 6
iload 3
aload 0
aload 1
aload 4
ldc Ljava/lang/Short;
invokevirtual org.springframework.expression.spel.ast.Indexer.convertValue:(Lorg/springframework/expression/TypeConverter;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
checkcast java.lang.Short
invokevirtual java.lang.Short.shortValue:()S
sastore
end local 6 39: goto 43
40: StackMap locals:
StackMap stack:
aload 2
checkcast java.lang.Object[]
astore 6
start local 6 41: aload 0
aload 6
arraylength
iload 3
invokevirtual org.springframework.expression.spel.ast.Indexer.checkAccess:(II)V
42: aload 6
iload 3
aload 0
aload 1
aload 4
aload 5
invokevirtual org.springframework.expression.spel.ast.Indexer.convertValue:(Lorg/springframework/expression/TypeConverter;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
aastore
end local 6 43: StackMap locals:
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 44 0 this Lorg/springframework/expression/spel/ast/Indexer;
0 44 1 converter Lorg/springframework/expression/TypeConverter;
0 44 2 ctx Ljava/lang/Object;
0 44 3 idx I
0 44 4 newValue Ljava/lang/Object;
0 44 5 arrayComponentType Ljava/lang/Class<*>;
2 4 6 array [Z
7 9 6 array [B
12 14 6 array [C
17 19 6 array [D
22 24 6 array [F
27 29 6 array [I
32 34 6 array [J
37 39 6 array [S
41 43 6 array [Ljava/lang/Object;
Exceptions:
throws org.springframework.expression.EvaluationException
Signature: (Lorg/springframework/expression/TypeConverter;Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Class<*>;)V
RuntimeVisibleParameterAnnotations:
0:
1:
2:
3:
org.springframework.lang.Nullable()
4:
MethodParameters:
Name Flags
converter
ctx
idx
newValue
arrayComponentType
private java.lang.Object accessArrayElement(java.lang.Object, int);
descriptor: (Ljava/lang/Object;I)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
astore 3
start local 3 1: aload 3
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
if_acmpne 6
2: aload 1
checkcast boolean[]
astore 4
start local 4 3: aload 0
aload 4
arraylength
iload 2
invokevirtual org.springframework.expression.spel.ast.Indexer.checkAccess:(II)V
4: aload 0
ldc "Z"
putfield org.springframework.expression.spel.ast.Indexer.exitTypeDescriptor:Ljava/lang/String;
5: aload 4
iload 2
baload
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
end local 4 6: StackMap locals: java.lang.Class
StackMap stack:
aload 3
getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
if_acmpne 11
7: aload 1
checkcast byte[]
astore 4
start local 4 8: aload 0
aload 4
arraylength
iload 2
invokevirtual org.springframework.expression.spel.ast.Indexer.checkAccess:(II)V
9: aload 0
ldc "B"
putfield org.springframework.expression.spel.ast.Indexer.exitTypeDescriptor:Ljava/lang/String;
10: aload 4
iload 2
baload
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
areturn
end local 4 11: StackMap locals:
StackMap stack:
aload 3
getstatic java.lang.Character.TYPE:Ljava/lang/Class;
if_acmpne 16
12: aload 1
checkcast char[]
astore 4
start local 4 13: aload 0
aload 4
arraylength
iload 2
invokevirtual org.springframework.expression.spel.ast.Indexer.checkAccess:(II)V
14: aload 0
ldc "C"
putfield org.springframework.expression.spel.ast.Indexer.exitTypeDescriptor:Ljava/lang/String;
15: aload 4
iload 2
caload
invokestatic java.lang.Character.valueOf:(C)Ljava/lang/Character;
areturn
end local 4 16: StackMap locals:
StackMap stack:
aload 3
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
if_acmpne 21
17: aload 1
checkcast double[]
astore 4
start local 4 18: aload 0
aload 4
arraylength
iload 2
invokevirtual org.springframework.expression.spel.ast.Indexer.checkAccess:(II)V
19: aload 0
ldc "D"
putfield org.springframework.expression.spel.ast.Indexer.exitTypeDescriptor:Ljava/lang/String;
20: aload 4
iload 2
daload
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
areturn
end local 4 21: StackMap locals:
StackMap stack:
aload 3
getstatic java.lang.Float.TYPE:Ljava/lang/Class;
if_acmpne 26
22: aload 1
checkcast float[]
astore 4
start local 4 23: aload 0
aload 4
arraylength
iload 2
invokevirtual org.springframework.expression.spel.ast.Indexer.checkAccess:(II)V
24: aload 0
ldc "F"
putfield org.springframework.expression.spel.ast.Indexer.exitTypeDescriptor:Ljava/lang/String;
25: aload 4
iload 2
faload
invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
areturn
end local 4 26: StackMap locals:
StackMap stack:
aload 3
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
if_acmpne 31
27: aload 1
checkcast int[]
astore 4
start local 4 28: aload 0
aload 4
arraylength
iload 2
invokevirtual org.springframework.expression.spel.ast.Indexer.checkAccess:(II)V
29: aload 0
ldc "I"
putfield org.springframework.expression.spel.ast.Indexer.exitTypeDescriptor:Ljava/lang/String;
30: aload 4
iload 2
iaload
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
areturn
end local 4 31: StackMap locals:
StackMap stack:
aload 3
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
if_acmpne 36
32: aload 1
checkcast long[]
astore 4
start local 4 33: aload 0
aload 4
arraylength
iload 2
invokevirtual org.springframework.expression.spel.ast.Indexer.checkAccess:(II)V
34: aload 0
ldc "J"
putfield org.springframework.expression.spel.ast.Indexer.exitTypeDescriptor:Ljava/lang/String;
35: aload 4
iload 2
laload
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
areturn
end local 4 36: StackMap locals:
StackMap stack:
aload 3
getstatic java.lang.Short.TYPE:Ljava/lang/Class;
if_acmpne 41
37: aload 1
checkcast short[]
astore 4
start local 4 38: aload 0
aload 4
arraylength
iload 2
invokevirtual org.springframework.expression.spel.ast.Indexer.checkAccess:(II)V
39: aload 0
ldc "S"
putfield org.springframework.expression.spel.ast.Indexer.exitTypeDescriptor:Ljava/lang/String;
40: aload 4
iload 2
saload
invokestatic java.lang.Short.valueOf:(S)Ljava/lang/Short;
areturn
end local 4 41: StackMap locals:
StackMap stack:
aload 1
checkcast java.lang.Object[]
astore 4
start local 4 42: aload 0
aload 4
arraylength
iload 2
invokevirtual org.springframework.expression.spel.ast.Indexer.checkAccess:(II)V
43: aload 4
iload 2
aaload
astore 5
start local 5 44: aload 0
aload 3
invokestatic org.springframework.expression.spel.CodeFlow.toDescriptor:(Ljava/lang/Class;)Ljava/lang/String;
putfield org.springframework.expression.spel.ast.Indexer.exitTypeDescriptor:Ljava/lang/String;
45: aload 5
areturn
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 46 0 this Lorg/springframework/expression/spel/ast/Indexer;
0 46 1 ctx Ljava/lang/Object;
0 46 2 idx I
1 46 3 arrayComponentType Ljava/lang/Class<*>;
3 6 4 array [Z
8 11 4 array [B
13 16 4 array [C
18 21 4 array [D
23 26 4 array [F
28 31 4 array [I
33 36 4 array [J
38 41 4 array [S
42 46 4 array [Ljava/lang/Object;
44 46 5 retValue Ljava/lang/Object;
Exceptions:
throws org.springframework.expression.spel.SpelEvaluationException
MethodParameters:
Name Flags
ctx
idx
private void checkAccess(int, int);
descriptor: (II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 2
iload 1
if_icmple 4
1: new org.springframework.expression.spel.SpelEvaluationException
dup
aload 0
invokevirtual org.springframework.expression.spel.ast.Indexer.getStartPosition:()I
getstatic org.springframework.expression.spel.SpelMessage.ARRAY_INDEX_OUT_OF_BOUNDS:Lorg/springframework/expression/spel/SpelMessage;
iconst_2
anewarray java.lang.Object
dup
iconst_0
2: iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
3: aastore
invokespecial org.springframework.expression.spel.SpelEvaluationException.<init>:(ILorg/springframework/expression/spel/SpelMessage;[Ljava/lang/Object;)V
athrow
4: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/expression/spel/ast/Indexer;
0 5 1 arrayLength I
0 5 2 index I
Exceptions:
throws org.springframework.expression.spel.SpelEvaluationException
MethodParameters:
Name Flags
arrayLength
index
private <T> T convertValue(org.springframework.expression.TypeConverter, , java.lang.Class<T>);
descriptor: (Lorg/springframework/expression/TypeConverter;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
1: aload 2
aload 2
invokestatic org.springframework.core.convert.TypeDescriptor.forObject:(Ljava/lang/Object;)Lorg/springframework/core/convert/TypeDescriptor;
aload 3
invokestatic org.springframework.core.convert.TypeDescriptor.valueOf:(Ljava/lang/Class;)Lorg/springframework/core/convert/TypeDescriptor;
2: invokeinterface org.springframework.expression.TypeConverter.convertValue:(Ljava/lang/Object;Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/lang/Object;
astore 4
start local 4 3: aload 4
ifnonnull 5
4: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Null conversion result for index ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: java.lang.Object
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/expression/spel/ast/Indexer;
0 6 1 converter Lorg/springframework/expression/TypeConverter;
0 6 2 value Ljava/lang/Object;
0 6 3 targetType Ljava/lang/Class<TT;>;
3 6 4 result TT;
Signature: <T:Ljava/lang/Object;>(Lorg/springframework/expression/TypeConverter;Ljava/lang/Object;Ljava/lang/Class<TT;>;)TT;
RuntimeVisibleParameterAnnotations:
0:
1:
org.springframework.lang.Nullable()
2:
MethodParameters:
Name Flags
converter
value
targetType
}
SourceFile: "Indexer.java"
NestMembers:
org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef org.springframework.expression.spel.ast.Indexer$CollectionIndexingValueRef org.springframework.expression.spel.ast.Indexer$IndexedType org.springframework.expression.spel.ast.Indexer$MapIndexingValueRef org.springframework.expression.spel.ast.Indexer$PropertyIndexingValueRef org.springframework.expression.spel.ast.Indexer$StringIndexingLValue
InnerClasses:
private ArrayIndexingValueRef = org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef of org.springframework.expression.spel.ast.Indexer
private CollectionIndexingValueRef = org.springframework.expression.spel.ast.Indexer$CollectionIndexingValueRef of org.springframework.expression.spel.ast.Indexer
private final IndexedType = org.springframework.expression.spel.ast.Indexer$IndexedType of org.springframework.expression.spel.ast.Indexer
private MapIndexingValueRef = org.springframework.expression.spel.ast.Indexer$MapIndexingValueRef of org.springframework.expression.spel.ast.Indexer
private PropertyIndexingValueRef = org.springframework.expression.spel.ast.Indexer$PropertyIndexingValueRef of org.springframework.expression.spel.ast.Indexer
private StringIndexingLValue = org.springframework.expression.spel.ast.Indexer$StringIndexingLValue of org.springframework.expression.spel.ast.Indexer
public OptimalPropertyAccessor = org.springframework.expression.spel.support.ReflectivePropertyAccessor$OptimalPropertyAccessor of org.springframework.expression.spel.support.ReflectivePropertyAccessor