public abstract class org.springframework.expression.spel.ast.Operator extends org.springframework.expression.spel.ast.SpelNodeImpl
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.springframework.expression.spel.ast.Operator
super_class: org.springframework.expression.spel.ast.SpelNodeImpl
{
private final java.lang.String operatorName;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
protected java.lang.String leftActualDescriptor;
descriptor: Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
protected java.lang.String rightActualDescriptor;
descriptor: Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
public void <init>(java.lang.String, int, org.springframework.expression.spel.ast.SpelNodeImpl[]);
descriptor: (Ljava/lang/String;I[Lorg/springframework/expression/spel/ast/SpelNodeImpl;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 2
aload 3
invokespecial org.springframework.expression.spel.ast.SpelNodeImpl.<init>:(I[Lorg/springframework/expression/spel/ast/SpelNodeImpl;)V
1: aload 0
aload 1
putfield org.springframework.expression.spel.ast.Operator.operatorName:Ljava/lang/String;
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/expression/spel/ast/Operator;
0 3 1 payload Ljava/lang/String;
0 3 2 pos I
0 3 3 operands [Lorg/springframework/expression/spel/ast/SpelNodeImpl;
MethodParameters:
Name Flags
payload
pos
operands
public org.springframework.expression.spel.ast.SpelNodeImpl getLeftOperand();
descriptor: ()Lorg/springframework/expression/spel/ast/SpelNodeImpl;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.expression.spel.ast.Operator.children:[Lorg/springframework/expression/spel/ast/SpelNodeImpl;
iconst_0
aaload
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/expression/spel/ast/Operator;
public org.springframework.expression.spel.ast.SpelNodeImpl getRightOperand();
descriptor: ()Lorg/springframework/expression/spel/ast/SpelNodeImpl;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.expression.spel.ast.Operator.children:[Lorg/springframework/expression/spel/ast/SpelNodeImpl;
iconst_1
aaload
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/expression/spel/ast/Operator;
public final java.lang.String getOperatorName();
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.Operator.operatorName:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/expression/spel/ast/Operator;
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: aload 1
aload 0
iconst_0
invokevirtual org.springframework.expression.spel.ast.Operator.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
2: iconst_1
istore 2
start local 2 3: goto 7
4: StackMap locals: java.lang.StringBuilder int
StackMap stack:
aload 1
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual org.springframework.expression.spel.ast.Operator.getOperatorName:()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;
pop
5: aload 1
aload 0
iload 2
invokevirtual org.springframework.expression.spel.ast.Operator.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.Operator.getChildCount:()I
if_icmplt 4
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/Operator;
1 10 1 sb Ljava/lang/StringBuilder;
3 8 2 i I
protected boolean isCompilableOperatorUsingNumerics();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=6, args_size=1
start local 0 0: aload 0
invokevirtual org.springframework.expression.spel.ast.Operator.getLeftOperand:()Lorg/springframework/expression/spel/ast/SpelNodeImpl;
astore 1
start local 1 1: aload 0
invokevirtual org.springframework.expression.spel.ast.Operator.getRightOperand:()Lorg/springframework/expression/spel/ast/SpelNodeImpl;
astore 2
start local 2 2: aload 1
invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.isCompilable:()Z
ifeq 3
aload 2
invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.isCompilable:()Z
ifne 4
3: StackMap locals: org.springframework.expression.spel.ast.SpelNodeImpl org.springframework.expression.spel.ast.SpelNodeImpl
StackMap stack:
iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 1
getfield org.springframework.expression.spel.ast.SpelNodeImpl.exitTypeDescriptor:Ljava/lang/String;
astore 3
start local 3 5: aload 2
getfield org.springframework.expression.spel.ast.SpelNodeImpl.exitTypeDescriptor:Ljava/lang/String;
astore 4
start local 4 6: aload 3
aload 4
aload 0
getfield org.springframework.expression.spel.ast.Operator.leftActualDescriptor:Ljava/lang/String;
aload 0
getfield org.springframework.expression.spel.ast.Operator.rightActualDescriptor:Ljava/lang/String;
7: invokestatic org.springframework.expression.spel.ast.Operator$DescriptorComparison.checkNumericCompatibility:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/springframework/expression/spel/ast/Operator$DescriptorComparison;
astore 5
start local 5 8: aload 5
getfield org.springframework.expression.spel.ast.Operator$DescriptorComparison.areNumbers:Z
ifeq 9
aload 5
getfield org.springframework.expression.spel.ast.Operator$DescriptorComparison.areCompatible:Z
ifeq 9
iconst_1
ireturn
StackMap locals: java.lang.String java.lang.String org.springframework.expression.spel.ast.Operator$DescriptorComparison
StackMap stack:
9: iconst_0
ireturn
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 10 0 this Lorg/springframework/expression/spel/ast/Operator;
1 10 1 left Lorg/springframework/expression/spel/ast/SpelNodeImpl;
2 10 2 right Lorg/springframework/expression/spel/ast/SpelNodeImpl;
5 10 3 leftDesc Ljava/lang/String;
6 10 4 rightDesc Ljava/lang/String;
8 10 5 dc Lorg/springframework/expression/spel/ast/Operator$DescriptorComparison;
protected void generateComparisonCode(org.springframework.asm.MethodVisitor, org.springframework.expression.spel.CodeFlow, int, int);
descriptor: (Lorg/springframework/asm/MethodVisitor;Lorg/springframework/expression/spel/CodeFlow;II)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=15, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokevirtual org.springframework.expression.spel.ast.Operator.getLeftOperand:()Lorg/springframework/expression/spel/ast/SpelNodeImpl;
astore 5
start local 5 1: aload 0
invokevirtual org.springframework.expression.spel.ast.Operator.getRightOperand:()Lorg/springframework/expression/spel/ast/SpelNodeImpl;
astore 6
start local 6 2: aload 5
getfield org.springframework.expression.spel.ast.SpelNodeImpl.exitTypeDescriptor:Ljava/lang/String;
astore 7
start local 7 3: aload 6
getfield org.springframework.expression.spel.ast.SpelNodeImpl.exitTypeDescriptor:Ljava/lang/String;
astore 8
start local 8 4: aload 7
invokestatic org.springframework.expression.spel.CodeFlow.isPrimitive:(Ljava/lang/String;)Z
ifeq 5
iconst_0
goto 6
StackMap locals: org.springframework.expression.spel.ast.Operator org.springframework.asm.MethodVisitor org.springframework.expression.spel.CodeFlow int int org.springframework.expression.spel.ast.SpelNodeImpl org.springframework.expression.spel.ast.SpelNodeImpl java.lang.String java.lang.String
StackMap stack:
5: iconst_1
StackMap locals:
StackMap stack: int
6: istore 9
start local 9 7: aload 8
invokestatic org.springframework.expression.spel.CodeFlow.isPrimitive:(Ljava/lang/String;)Z
ifeq 8
iconst_0
goto 9
StackMap locals: int
StackMap stack:
8: iconst_1
StackMap locals:
StackMap stack: int
9: istore 10
start local 10 10: aload 7
aload 8
aload 0
getfield org.springframework.expression.spel.ast.Operator.leftActualDescriptor:Ljava/lang/String;
aload 0
getfield org.springframework.expression.spel.ast.Operator.rightActualDescriptor:Ljava/lang/String;
11: invokestatic org.springframework.expression.spel.ast.Operator$DescriptorComparison.checkNumericCompatibility:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/springframework/expression/spel/ast/Operator$DescriptorComparison;
astore 11
start local 11 12: aload 11
getfield org.springframework.expression.spel.ast.Operator$DescriptorComparison.compatibleType:C
istore 12
start local 12 13: aload 2
invokevirtual org.springframework.expression.spel.CodeFlow.enterCompilationScope:()V
14: aload 5
aload 1
aload 2
invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.generateCode:(Lorg/springframework/asm/MethodVisitor;Lorg/springframework/expression/spel/CodeFlow;)V
15: aload 2
invokevirtual org.springframework.expression.spel.CodeFlow.exitCompilationScope:()V
16: iload 9
ifeq 18
17: aload 1
iload 12
aload 7
invokestatic org.springframework.expression.spel.CodeFlow.insertUnboxInsns:(Lorg/springframework/asm/MethodVisitor;CLjava/lang/String;)V
18: StackMap locals: int org.springframework.expression.spel.ast.Operator$DescriptorComparison int
StackMap stack:
aload 2
invokevirtual org.springframework.expression.spel.CodeFlow.enterCompilationScope:()V
19: aload 6
aload 1
aload 2
invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.generateCode:(Lorg/springframework/asm/MethodVisitor;Lorg/springframework/expression/spel/CodeFlow;)V
20: aload 2
invokevirtual org.springframework.expression.spel.CodeFlow.exitCompilationScope:()V
21: iload 10
ifeq 23
22: aload 1
iload 12
aload 8
invokestatic org.springframework.expression.spel.CodeFlow.insertUnboxInsns:(Lorg/springframework/asm/MethodVisitor;CLjava/lang/String;)V
23: StackMap locals:
StackMap stack:
new org.springframework.asm.Label
dup
invokespecial org.springframework.asm.Label.<init>:()V
astore 13
start local 13 24: new org.springframework.asm.Label
dup
invokespecial org.springframework.asm.Label.<init>:()V
astore 14
start local 14 25: iload 12
bipush 68
if_icmpne 29
26: aload 1
sipush 152
invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
27: aload 1
iload 3
aload 13
invokevirtual org.springframework.asm.MethodVisitor.visitJumpInsn:(ILorg/springframework/asm/Label;)V
28: goto 41
29: StackMap locals: org.springframework.asm.Label org.springframework.asm.Label
StackMap stack:
iload 12
bipush 70
if_icmpne 33
30: aload 1
sipush 150
invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
31: aload 1
iload 3
aload 13
invokevirtual org.springframework.asm.MethodVisitor.visitJumpInsn:(ILorg/springframework/asm/Label;)V
32: goto 41
33: StackMap locals:
StackMap stack:
iload 12
bipush 74
if_icmpne 37
34: aload 1
sipush 148
invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
35: aload 1
iload 3
aload 13
invokevirtual org.springframework.asm.MethodVisitor.visitJumpInsn:(ILorg/springframework/asm/Label;)V
36: goto 41
37: StackMap locals:
StackMap stack:
iload 12
bipush 73
if_icmpne 40
38: aload 1
iload 4
aload 13
invokevirtual org.springframework.asm.MethodVisitor.visitJumpInsn:(ILorg/springframework/asm/Label;)V
39: goto 41
40: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Unexpected descriptor "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
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
41: StackMap locals:
StackMap stack:
aload 1
iconst_4
invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
42: aload 1
sipush 167
aload 14
invokevirtual org.springframework.asm.MethodVisitor.visitJumpInsn:(ILorg/springframework/asm/Label;)V
43: aload 1
aload 13
invokevirtual org.springframework.asm.MethodVisitor.visitLabel:(Lorg/springframework/asm/Label;)V
44: aload 1
iconst_3
invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
45: aload 1
aload 14
invokevirtual org.springframework.asm.MethodVisitor.visitLabel:(Lorg/springframework/asm/Label;)V
46: aload 2
ldc "Z"
invokevirtual org.springframework.expression.spel.CodeFlow.pushDescriptor:(Ljava/lang/String;)V
47: return
end local 14 end local 13 end local 12 end local 11 end local 10 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 48 0 this Lorg/springframework/expression/spel/ast/Operator;
0 48 1 mv Lorg/springframework/asm/MethodVisitor;
0 48 2 cf Lorg/springframework/expression/spel/CodeFlow;
0 48 3 compInstruction1 I
0 48 4 compInstruction2 I
1 48 5 left Lorg/springframework/expression/spel/ast/SpelNodeImpl;
2 48 6 right Lorg/springframework/expression/spel/ast/SpelNodeImpl;
3 48 7 leftDesc Ljava/lang/String;
4 48 8 rightDesc Ljava/lang/String;
7 48 9 unboxLeft Z
10 48 10 unboxRight Z
12 48 11 dc Lorg/springframework/expression/spel/ast/Operator$DescriptorComparison;
13 48 12 targetType C
24 48 13 elseTarget Lorg/springframework/asm/Label;
25 48 14 endOfIf Lorg/springframework/asm/Label;
MethodParameters:
Name Flags
mv
cf
compInstruction1
compInstruction2
public static boolean equalityCheck(org.springframework.expression.EvaluationContext, java.lang.Object, java.lang.Object);
descriptor: (Lorg/springframework/expression/EvaluationContext;Ljava/lang/Object;Ljava/lang/Object;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
instanceof java.lang.Number
ifeq 33
aload 2
instanceof java.lang.Number
ifeq 33
1: aload 1
checkcast java.lang.Number
astore 3
start local 3 2: aload 2
checkcast java.lang.Number
astore 4
start local 4 3: aload 3
instanceof java.math.BigDecimal
ifne 4
aload 4
instanceof java.math.BigDecimal
ifeq 8
4: StackMap locals: java.lang.Number java.lang.Number
StackMap stack:
aload 3
ldc Ljava/math/BigDecimal;
invokestatic org.springframework.util.NumberUtils.convertNumberToTargetClass:(Ljava/lang/Number;Ljava/lang/Class;)Ljava/lang/Number;
checkcast java.math.BigDecimal
astore 5
start local 5 5: aload 4
ldc Ljava/math/BigDecimal;
invokestatic org.springframework.util.NumberUtils.convertNumberToTargetClass:(Ljava/lang/Number;Ljava/lang/Class;)Ljava/lang/Number;
checkcast java.math.BigDecimal
astore 6
start local 6 6: aload 5
aload 6
invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
ifne 7
iconst_1
ireturn
StackMap locals: java.math.BigDecimal java.math.BigDecimal
StackMap stack:
7: iconst_0
ireturn
end local 6 end local 5 8: StackMap locals:
StackMap stack:
aload 3
instanceof java.lang.Double
ifne 9
aload 4
instanceof java.lang.Double
ifeq 11
9: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.Number.doubleValue:()D
aload 4
invokevirtual java.lang.Number.doubleValue:()D
dcmpl
ifne 10
iconst_1
ireturn
StackMap locals:
StackMap stack:
10: iconst_0
ireturn
11: StackMap locals:
StackMap stack:
aload 3
instanceof java.lang.Float
ifne 12
aload 4
instanceof java.lang.Float
ifeq 14
12: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.Number.floatValue:()F
aload 4
invokevirtual java.lang.Number.floatValue:()F
fcmpl
ifne 13
iconst_1
ireturn
StackMap locals:
StackMap stack:
13: iconst_0
ireturn
14: StackMap locals:
StackMap stack:
aload 3
instanceof java.math.BigInteger
ifne 15
aload 4
instanceof java.math.BigInteger
ifeq 19
15: StackMap locals:
StackMap stack:
aload 3
ldc Ljava/math/BigInteger;
invokestatic org.springframework.util.NumberUtils.convertNumberToTargetClass:(Ljava/lang/Number;Ljava/lang/Class;)Ljava/lang/Number;
checkcast java.math.BigInteger
astore 5
start local 5 16: aload 4
ldc Ljava/math/BigInteger;
invokestatic org.springframework.util.NumberUtils.convertNumberToTargetClass:(Ljava/lang/Number;Ljava/lang/Class;)Ljava/lang/Number;
checkcast java.math.BigInteger
astore 6
start local 6 17: aload 5
aload 6
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
ifne 18
iconst_1
ireturn
StackMap locals: java.math.BigInteger java.math.BigInteger
StackMap stack:
18: iconst_0
ireturn
end local 6 end local 5 19: StackMap locals:
StackMap stack:
aload 3
instanceof java.lang.Long
ifne 20
aload 4
instanceof java.lang.Long
ifeq 22
20: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.Number.longValue:()J
aload 4
invokevirtual java.lang.Number.longValue:()J
lcmp
ifne 21
iconst_1
ireturn
StackMap locals:
StackMap stack:
21: iconst_0
ireturn
22: StackMap locals:
StackMap stack:
aload 3
instanceof java.lang.Integer
ifne 23
aload 4
instanceof java.lang.Integer
ifeq 25
23: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.Number.intValue:()I
aload 4
invokevirtual java.lang.Number.intValue:()I
if_icmpne 24
iconst_1
ireturn
StackMap locals:
StackMap stack:
24: iconst_0
ireturn
25: StackMap locals:
StackMap stack:
aload 3
instanceof java.lang.Short
ifne 26
aload 4
instanceof java.lang.Short
ifeq 28
26: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.Number.shortValue:()S
aload 4
invokevirtual java.lang.Number.shortValue:()S
if_icmpne 27
iconst_1
ireturn
StackMap locals:
StackMap stack:
27: iconst_0
ireturn
28: StackMap locals:
StackMap stack:
aload 3
instanceof java.lang.Byte
ifne 29
aload 4
instanceof java.lang.Byte
ifeq 31
29: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.Number.byteValue:()B
aload 4
invokevirtual java.lang.Number.byteValue:()B
if_icmpne 30
iconst_1
ireturn
StackMap locals:
StackMap stack:
30: iconst_0
ireturn
31: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.Number.doubleValue:()D
aload 4
invokevirtual java.lang.Number.doubleValue:()D
dcmpl
ifne 32
iconst_1
ireturn
StackMap locals:
StackMap stack:
32: iconst_0
ireturn
end local 4 end local 3 33: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.CharSequence
ifeq 35
aload 2
instanceof java.lang.CharSequence
ifeq 35
34: aload 1
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
aload 2
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ireturn
35: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.Boolean
ifeq 37
aload 2
instanceof java.lang.Boolean
ifeq 37
36: aload 1
aload 2
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ireturn
37: StackMap locals:
StackMap stack:
aload 1
aload 2
invokestatic org.springframework.util.ObjectUtils.nullSafeEquals:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 39
38: iconst_1
ireturn
39: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.Comparable
ifeq 44
aload 2
instanceof java.lang.Comparable
ifeq 44
40: aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokestatic org.springframework.util.ClassUtils.determineCommonAncestor:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/Class;
astore 3
start local 3 41: aload 3
ifnull 44
ldc Ljava/lang/Comparable;
aload 3
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 44
42: aload 0
invokeinterface org.springframework.expression.EvaluationContext.getTypeComparator:()Lorg/springframework/expression/TypeComparator;
aload 1
aload 2
invokeinterface org.springframework.expression.TypeComparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
ifne 43
iconst_1
ireturn
StackMap locals: java.lang.Class
StackMap stack:
43: iconst_0
ireturn
end local 3 44: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 45 0 context Lorg/springframework/expression/EvaluationContext;
0 45 1 left Ljava/lang/Object;
0 45 2 right Ljava/lang/Object;
2 33 3 leftNumber Ljava/lang/Number;
3 33 4 rightNumber Ljava/lang/Number;
5 8 5 leftBigDecimal Ljava/math/BigDecimal;
6 8 6 rightBigDecimal Ljava/math/BigDecimal;
16 19 5 leftBigInteger Ljava/math/BigInteger;
17 19 6 rightBigInteger Ljava/math/BigInteger;
41 44 3 ancestor Ljava/lang/Class<*>;
RuntimeVisibleParameterAnnotations:
0:
1:
org.springframework.lang.Nullable()
2:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
context
left
right
}
SourceFile: "Operator.java"
NestMembers:
org.springframework.expression.spel.ast.Operator$DescriptorComparison
InnerClasses:
protected final DescriptorComparison = org.springframework.expression.spel.ast.Operator$DescriptorComparison of org.springframework.expression.spel.ast.Operator