Support prefix notation for SpEL increment/decrement in AST representation
Closes gh-32144
This commit is contained in:
parent
179b976964
commit
e34ad6bf5f
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2021 the original author or authors.
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -39,11 +39,13 @@ import org.springframework.util.Assert;
|
|||
*/
|
||||
public class OpDec extends Operator {
|
||||
|
||||
private static final String DEC = "--";
|
||||
|
||||
private final boolean postfix; // false means prefix
|
||||
|
||||
|
||||
public OpDec(int startPos, int endPos, boolean postfix, SpelNodeImpl... operands) {
|
||||
super("--", startPos, endPos, operands);
|
||||
super(DEC, startPos, endPos, operands);
|
||||
this.postfix = postfix;
|
||||
Assert.notEmpty(operands, "Operands must not be empty");
|
||||
}
|
||||
|
@ -133,7 +135,8 @@ public class OpDec extends Operator {
|
|||
|
||||
@Override
|
||||
public String toStringAST() {
|
||||
return getLeftOperand().toStringAST() + "--";
|
||||
String ast = getLeftOperand().toStringAST();
|
||||
return (this.postfix ? ast + DEC : DEC + ast);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2021 the original author or authors.
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -39,11 +39,13 @@ import org.springframework.util.Assert;
|
|||
*/
|
||||
public class OpInc extends Operator {
|
||||
|
||||
private static final String INC = "++";
|
||||
|
||||
private final boolean postfix; // false means prefix
|
||||
|
||||
|
||||
public OpInc(int startPos, int endPos, boolean postfix, SpelNodeImpl... operands) {
|
||||
super("++", startPos, endPos, operands);
|
||||
super(INC, startPos, endPos, operands);
|
||||
this.postfix = postfix;
|
||||
Assert.notEmpty(operands, "Operands must not be empty");
|
||||
}
|
||||
|
@ -128,7 +130,8 @@ public class OpInc extends Operator {
|
|||
|
||||
@Override
|
||||
public String toStringAST() {
|
||||
return getLeftOperand().toStringAST() + "++";
|
||||
String ast = getLeftOperand().toStringAST();
|
||||
return (this.postfix ? ast + INC : INC + ast);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
|
||||
package org.springframework.expression.spel;
|
||||
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Nested;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
|
@ -370,7 +369,6 @@ class ParsingTests {
|
|||
parseCheck("7 % 4", "(7 % 4)");
|
||||
}
|
||||
|
||||
@Disabled("Disabled due to a bug in OpInc.toStringAST()")
|
||||
@Test
|
||||
void mathOperatorIncrementPrefix() {
|
||||
parseCheck("++7", "++7");
|
||||
|
@ -383,7 +381,6 @@ class ParsingTests {
|
|||
parseCheck("foo++", "foo++");
|
||||
}
|
||||
|
||||
@Disabled("Disabled due to a bug in OpDec.toStringAST()")
|
||||
@Test
|
||||
void mathOperatorDecrementPrefix() {
|
||||
parseCheck("--7", "--7");
|
||||
|
|
Loading…
Reference in New Issue