public class org.springframework.expression.spel.support.StandardTypeComparator implements org.springframework.expression.TypeComparator
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.expression.spel.support.StandardTypeComparator
super_class: java.lang.Object
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/expression/spel/support/StandardTypeComparator;
public boolean canCompare(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnull 1
aload 2
ifnonnull 2
1: StackMap locals:
StackMap stack:
iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.Number
ifeq 4
aload 2
instanceof java.lang.Number
ifeq 4
3: iconst_1
ireturn
4: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.Comparable
ifeq 6
5: iconst_1
ireturn
6: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/springframework/expression/spel/support/StandardTypeComparator;
0 7 1 left Ljava/lang/Object;
0 7 2 right Ljava/lang/Object;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
left
right
public int compare(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 4
1: aload 2
ifnonnull 2
iconst_0
goto 3
StackMap locals:
StackMap stack:
2: iconst_m1
StackMap locals:
StackMap stack: int
3: ireturn
4: StackMap locals:
StackMap stack:
aload 2
ifnonnull 6
5: iconst_1
ireturn
6: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.Number
ifeq 30
aload 2
instanceof java.lang.Number
ifeq 30
7: aload 1
checkcast java.lang.Number
astore 3
start local 3 8: aload 2
checkcast java.lang.Number
astore 4
start local 4 9: aload 3
instanceof java.math.BigDecimal
ifne 10
aload 4
instanceof java.math.BigDecimal
ifeq 13
10: 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 11: 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 12: aload 5
aload 6
invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
ireturn
end local 6 end local 5 13: StackMap locals:
StackMap stack:
aload 3
instanceof java.lang.Double
ifne 14
aload 4
instanceof java.lang.Double
ifeq 15
14: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.Number.doubleValue:()D
aload 4
invokevirtual java.lang.Number.doubleValue:()D
invokestatic java.lang.Double.compare:(DD)I
ireturn
15: StackMap locals:
StackMap stack:
aload 3
instanceof java.lang.Float
ifne 16
aload 4
instanceof java.lang.Float
ifeq 17
16: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.Number.floatValue:()F
aload 4
invokevirtual java.lang.Number.floatValue:()F
invokestatic java.lang.Float.compare:(FF)I
ireturn
17: StackMap locals:
StackMap stack:
aload 3
instanceof java.math.BigInteger
ifne 18
aload 4
instanceof java.math.BigInteger
ifeq 21
18: 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 19: 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 20: aload 5
aload 6
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
ireturn
end local 6 end local 5 21: StackMap locals:
StackMap stack:
aload 3
instanceof java.lang.Long
ifne 22
aload 4
instanceof java.lang.Long
ifeq 23
22: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.Number.longValue:()J
aload 4
invokevirtual java.lang.Number.longValue:()J
invokestatic org.springframework.expression.spel.support.StandardTypeComparator.compare:(JJ)I
ireturn
23: StackMap locals:
StackMap stack:
aload 3
instanceof java.lang.Integer
ifne 24
aload 4
instanceof java.lang.Integer
ifeq 25
24: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.Number.intValue:()I
aload 4
invokevirtual java.lang.Number.intValue:()I
invokestatic org.springframework.expression.spel.support.StandardTypeComparator.compare:(II)I
ireturn
25: StackMap locals:
StackMap stack:
aload 3
instanceof java.lang.Short
ifne 26
aload 4
instanceof java.lang.Short
ifeq 27
26: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.Number.shortValue:()S
aload 4
invokevirtual java.lang.Number.shortValue:()S
invokestatic org.springframework.expression.spel.support.StandardTypeComparator.compare:(SS)I
ireturn
27: StackMap locals:
StackMap stack:
aload 3
instanceof java.lang.Byte
ifne 28
aload 4
instanceof java.lang.Byte
ifeq 29
28: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.Number.byteValue:()B
aload 4
invokevirtual java.lang.Number.byteValue:()B
invokestatic org.springframework.expression.spel.support.StandardTypeComparator.compare:(BB)I
ireturn
29: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.Number.doubleValue:()D
aload 4
invokevirtual java.lang.Number.doubleValue:()D
invokestatic java.lang.Double.compare:(DD)I
ireturn
end local 4 end local 3 30: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.Comparable
ifeq 35
31: aload 1
checkcast java.lang.Comparable
aload 2
invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
32: ireturn
33: StackMap locals:
StackMap stack: java.lang.ClassCastException
astore 3
start local 3 34: new org.springframework.expression.spel.SpelEvaluationException
dup
aload 3
getstatic org.springframework.expression.spel.SpelMessage.NOT_COMPARABLE:Lorg/springframework/expression/spel/SpelMessage;
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aastore
dup
iconst_1
aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aastore
invokespecial org.springframework.expression.spel.SpelEvaluationException.<init>:(Ljava/lang/Throwable;Lorg/springframework/expression/spel/SpelMessage;[Ljava/lang/Object;)V
athrow
end local 3 35: StackMap locals:
StackMap stack:
new org.springframework.expression.spel.SpelEvaluationException
dup
getstatic org.springframework.expression.spel.SpelMessage.NOT_COMPARABLE:Lorg/springframework/expression/spel/SpelMessage;
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aastore
dup
iconst_1
aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aastore
invokespecial org.springframework.expression.spel.SpelEvaluationException.<init>:(Lorg/springframework/expression/spel/SpelMessage;[Ljava/lang/Object;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lorg/springframework/expression/spel/support/StandardTypeComparator;
0 36 1 left Ljava/lang/Object;
0 36 2 right Ljava/lang/Object;
8 30 3 leftNumber Ljava/lang/Number;
9 30 4 rightNumber Ljava/lang/Number;
11 13 5 leftBigDecimal Ljava/math/BigDecimal;
12 13 6 rightBigDecimal Ljava/math/BigDecimal;
19 21 5 leftBigInteger Ljava/math/BigInteger;
20 21 6 rightBigInteger Ljava/math/BigInteger;
34 35 3 ex Ljava/lang/ClassCastException;
Exception table:
from to target type
30 32 33 Class java.lang.ClassCastException
Exceptions:
throws org.springframework.expression.spel.SpelEvaluationException
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
left
right
private static int compare(long, long);
descriptor: (JJ)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 2 0: lload 0
lload 2
lcmp
ifge 1
iconst_m1
goto 3
StackMap locals:
StackMap stack:
1: lload 0
lload 2
lcmp
ifle 2
iconst_1
goto 3
StackMap locals:
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: ireturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 x J
0 4 2 y J
MethodParameters:
Name Flags
x
y
private static int compare(int, int);
descriptor: (II)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 0
iload 1
if_icmpge 1
iconst_m1
goto 3
StackMap locals:
StackMap stack:
1: iload 0
iload 1
if_icmple 2
iconst_1
goto 3
StackMap locals:
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 x I
0 4 1 y I
MethodParameters:
Name Flags
x
y
private static int compare(short, short);
descriptor: (SS)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 0
iload 1
isub
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 x S
0 1 1 y S
MethodParameters:
Name Flags
x
y
private static int compare(byte, byte);
descriptor: (BB)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 0
iload 1
isub
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 x B
0 1 1 y B
MethodParameters:
Name Flags
x
y
}
SourceFile: "StandardTypeComparator.java"