public class org.springframework.expression.spel.ast.OperatorPower extends org.springframework.expression.spel.ast.Operator
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.expression.spel.ast.OperatorPower
super_class: org.springframework.expression.spel.ast.Operator
{
public void <init>(int, int, org.springframework.expression.spel.ast.SpelNodeImpl[]);
descriptor: (II[Lorg/springframework/expression/spel/ast/SpelNodeImpl;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=5, locals=4, args_size=4
start local 0 // org.springframework.expression.spel.ast.OperatorPower this
start local 1 // int startPos
start local 2 // int endPos
start local 3 // org.springframework.expression.spel.ast.SpelNodeImpl[] operands
0: .line 38
aload 0 /* this */
ldc "^"
iload 1 /* startPos */
iload 2 /* endPos */
aload 3 /* operands */
invokespecial org.springframework.expression.spel.ast.Operator.<init>:(Ljava/lang/String;II[Lorg/springframework/expression/spel/ast/SpelNodeImpl;)V
1: .line 39
return
end local 3 // org.springframework.expression.spel.ast.SpelNodeImpl[] operands
end local 2 // int endPos
end local 1 // int startPos
end local 0 // org.springframework.expression.spel.ast.OperatorPower this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/expression/spel/ast/OperatorPower;
0 2 1 startPos I
0 2 2 endPos I
0 2 3 operands [Lorg/springframework/expression/spel/ast/SpelNodeImpl;
MethodParameters:
Name Flags
startPos
endPos
operands
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=6, locals=10, args_size=2
start local 0 // org.springframework.expression.spel.ast.OperatorPower this
start local 1 // org.springframework.expression.spel.ExpressionState state
0: .line 44
aload 0 /* this */
invokevirtual org.springframework.expression.spel.ast.OperatorPower.getLeftOperand:()Lorg/springframework/expression/spel/ast/SpelNodeImpl;
astore 2 /* leftOp */
start local 2 // org.springframework.expression.spel.ast.SpelNodeImpl leftOp
1: .line 45
aload 0 /* this */
invokevirtual org.springframework.expression.spel.ast.OperatorPower.getRightOperand:()Lorg/springframework/expression/spel/ast/SpelNodeImpl;
astore 3 /* rightOp */
start local 3 // org.springframework.expression.spel.ast.SpelNodeImpl rightOp
2: .line 47
aload 2 /* leftOp */
aload 1 /* state */
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;
astore 4 /* leftOperand */
start local 4 // java.lang.Object leftOperand
3: .line 48
aload 3 /* rightOp */
aload 1 /* state */
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;
astore 5 /* rightOperand */
start local 5 // java.lang.Object rightOperand
4: .line 50
aload 4 /* leftOperand */
instanceof java.lang.Number
ifeq 21
aload 5 /* rightOperand */
instanceof java.lang.Number
ifeq 21
5: .line 51
aload 4 /* leftOperand */
checkcast java.lang.Number
astore 6 /* leftNumber */
start local 6 // java.lang.Number leftNumber
6: .line 52
aload 5 /* rightOperand */
checkcast java.lang.Number
astore 7 /* rightNumber */
start local 7 // java.lang.Number rightNumber
7: .line 54
aload 6 /* leftNumber */
instanceof java.math.BigDecimal
ifeq 10
8: .line 55
aload 6 /* leftNumber */
ldc Ljava/math/BigDecimal;
invokestatic org.springframework.util.NumberUtils.convertNumberToTargetClass:(Ljava/lang/Number;Ljava/lang/Class;)Ljava/lang/Number;
checkcast java.math.BigDecimal
astore 8 /* leftBigDecimal */
start local 8 // java.math.BigDecimal leftBigDecimal
9: .line 56
new org.springframework.expression.TypedValue
dup
aload 8 /* leftBigDecimal */
aload 7 /* rightNumber */
invokevirtual java.lang.Number.intValue:()I
invokevirtual java.math.BigDecimal.pow:(I)Ljava/math/BigDecimal;
invokespecial org.springframework.expression.TypedValue.<init>:(Ljava/lang/Object;)V
areturn
end local 8 // java.math.BigDecimal leftBigDecimal
10: .line 58
StackMap locals: org.springframework.expression.spel.ast.OperatorPower org.springframework.expression.spel.ExpressionState org.springframework.expression.spel.ast.SpelNodeImpl org.springframework.expression.spel.ast.SpelNodeImpl java.lang.Object java.lang.Object java.lang.Number java.lang.Number
StackMap stack:
aload 6 /* leftNumber */
instanceof java.math.BigInteger
ifeq 13
11: .line 59
aload 6 /* leftNumber */
ldc Ljava/math/BigInteger;
invokestatic org.springframework.util.NumberUtils.convertNumberToTargetClass:(Ljava/lang/Number;Ljava/lang/Class;)Ljava/lang/Number;
checkcast java.math.BigInteger
astore 8 /* leftBigInteger */
start local 8 // java.math.BigInteger leftBigInteger
12: .line 60
new org.springframework.expression.TypedValue
dup
aload 8 /* leftBigInteger */
aload 7 /* rightNumber */
invokevirtual java.lang.Number.intValue:()I
invokevirtual java.math.BigInteger.pow:(I)Ljava/math/BigInteger;
invokespecial org.springframework.expression.TypedValue.<init>:(Ljava/lang/Object;)V
areturn
end local 8 // java.math.BigInteger leftBigInteger
13: .line 62
StackMap locals:
StackMap stack:
aload 6 /* leftNumber */
instanceof java.lang.Double
ifne 14
aload 7 /* rightNumber */
instanceof java.lang.Double
ifeq 15
14: .line 63
StackMap locals:
StackMap stack:
new org.springframework.expression.TypedValue
dup
aload 6 /* leftNumber */
invokevirtual java.lang.Number.doubleValue:()D
aload 7 /* rightNumber */
invokevirtual java.lang.Number.doubleValue:()D
invokestatic java.lang.Math.pow:(DD)D
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
invokespecial org.springframework.expression.TypedValue.<init>:(Ljava/lang/Object;)V
areturn
15: .line 65
StackMap locals:
StackMap stack:
aload 6 /* leftNumber */
instanceof java.lang.Float
ifne 16
aload 7 /* rightNumber */
instanceof java.lang.Float
ifeq 17
16: .line 66
StackMap locals:
StackMap stack:
new org.springframework.expression.TypedValue
dup
aload 6 /* leftNumber */
invokevirtual java.lang.Number.floatValue:()F
f2d
aload 7 /* rightNumber */
invokevirtual java.lang.Number.floatValue:()F
f2d
invokestatic java.lang.Math.pow:(DD)D
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
invokespecial org.springframework.expression.TypedValue.<init>:(Ljava/lang/Object;)V
areturn
17: .line 69
StackMap locals:
StackMap stack:
aload 6 /* leftNumber */
invokevirtual java.lang.Number.doubleValue:()D
aload 7 /* rightNumber */
invokevirtual java.lang.Number.doubleValue:()D
invokestatic java.lang.Math.pow:(DD)D
dstore 8 /* d */
start local 8 // double d
18: .line 70
dload 8 /* d */
ldc 2.147483647E9
dcmpl
ifgt 19
aload 6 /* leftNumber */
instanceof java.lang.Long
ifne 19
aload 7 /* rightNumber */
instanceof java.lang.Long
ifeq 20
19: .line 71
StackMap locals: double
StackMap stack:
new org.springframework.expression.TypedValue
dup
dload 8 /* d */
d2l
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokespecial org.springframework.expression.TypedValue.<init>:(Ljava/lang/Object;)V
areturn
20: .line 74
StackMap locals:
StackMap stack:
new org.springframework.expression.TypedValue
dup
dload 8 /* d */
d2i
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokespecial org.springframework.expression.TypedValue.<init>:(Ljava/lang/Object;)V
areturn
end local 8 // double d
end local 7 // java.lang.Number rightNumber
end local 6 // java.lang.Number leftNumber
21: .line 78
StackMap locals:
StackMap stack:
aload 1 /* state */
getstatic org.springframework.expression.Operation.POWER:Lorg/springframework/expression/Operation;
aload 4 /* leftOperand */
aload 5 /* rightOperand */
invokevirtual org.springframework.expression.spel.ExpressionState.operate:(Lorg/springframework/expression/Operation;Ljava/lang/Object;Ljava/lang/Object;)Lorg/springframework/expression/TypedValue;
areturn
end local 5 // java.lang.Object rightOperand
end local 4 // java.lang.Object leftOperand
end local 3 // org.springframework.expression.spel.ast.SpelNodeImpl rightOp
end local 2 // org.springframework.expression.spel.ast.SpelNodeImpl leftOp
end local 1 // org.springframework.expression.spel.ExpressionState state
end local 0 // org.springframework.expression.spel.ast.OperatorPower this
LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lorg/springframework/expression/spel/ast/OperatorPower;
0 22 1 state Lorg/springframework/expression/spel/ExpressionState;
1 22 2 leftOp Lorg/springframework/expression/spel/ast/SpelNodeImpl;
2 22 3 rightOp Lorg/springframework/expression/spel/ast/SpelNodeImpl;
3 22 4 leftOperand Ljava/lang/Object;
4 22 5 rightOperand Ljava/lang/Object;
6 21 6 leftNumber Ljava/lang/Number;
7 21 7 rightNumber Ljava/lang/Number;
9 10 8 leftBigDecimal Ljava/math/BigDecimal;
12 13 8 leftBigInteger Ljava/math/BigInteger;
18 21 8 d D
Exceptions:
throws org.springframework.expression.EvaluationException
MethodParameters:
Name Flags
state
}
SourceFile: "OperatorPower.java"