Clarify semantics of SpEL's between operator
See gh-32140
This commit is contained in:
parent
d4401cc69a
commit
a82108ec73
|
@ -162,15 +162,13 @@ Kotlin::
|
||||||
----
|
----
|
||||||
======
|
======
|
||||||
|
|
||||||
[NOTE]
|
[CAUTION]
|
||||||
====
|
====
|
||||||
The left operand to the `between` operator must be a single value, and the right operand
|
The syntax for the `between` operator is `<input> between {<range_begin>, <range_end>}`,
|
||||||
must be a 2-element list which defines the range.
|
which is effectively a shortcut for `<input> >= <range_begin> && <input> \<= <range_end>}`.
|
||||||
|
|
||||||
The `between` operator returns `true` if the left operand is _between_ the two elements
|
Consequently, `1 between {1, 5}` evaluates to `true`, while `1 between {5, 1}` evaluates
|
||||||
in the range, inclusive (using a comparison algorithm based on `java.lang.Comparable`).
|
to `false`.
|
||||||
In addition, the first element in the range must be less than or equal to the second
|
|
||||||
element in the range.
|
|
||||||
====
|
====
|
||||||
|
|
||||||
CAUTION: Be careful with primitive types, as they are immediately boxed up to their
|
CAUTION: Be careful with primitive types, as they are immediately boxed up to their
|
||||||
|
|
|
@ -29,12 +29,12 @@ import org.springframework.expression.spel.support.BooleanTypedValue;
|
||||||
* Represents the {@code between} operator.
|
* Represents the {@code between} operator.
|
||||||
*
|
*
|
||||||
* <p>The left operand must be a single value, and the right operand must be a
|
* <p>The left operand must be a single value, and the right operand must be a
|
||||||
* 2-element list which defines the range.
|
* 2-element list which defines a range from a lower bound to an upper bound.
|
||||||
*
|
*
|
||||||
* <p>This operator returns {@code true} if the left operand is between the two
|
* <p>This operator returns {@code true} if the left operand is greater than or
|
||||||
* elements in the range, inclusive (using the registered {@link TypeComparator}
|
* equal to the lower bound and less than or equal to the upper bound. Consequently,
|
||||||
* for comparison). In addition, the first element in the range must be less than
|
* {@code 1 between {1, 5}} evaluates to {@code true}, while {@code 1 between {5, 1}}
|
||||||
* or equal to the second element in the range.
|
* evaluates to {@code false}.
|
||||||
*
|
*
|
||||||
* @author Andy Clement
|
* @author Andy Clement
|
||||||
* @author Sam Brannen
|
* @author Sam Brannen
|
||||||
|
@ -50,7 +50,7 @@ public class OperatorBetween extends Operator {
|
||||||
/**
|
/**
|
||||||
* Returns a boolean based on whether a value is in the range expressed. The first
|
* Returns a boolean based on whether a value is in the range expressed. The first
|
||||||
* operand is any value whilst the second is a list of two values - those two values
|
* operand is any value whilst the second is a list of two values - those two values
|
||||||
* being the bounds allowed for the first operand (inclusive).
|
* being the lower and upper bounds allowed for the first operand (inclusive).
|
||||||
* @param state the expression state
|
* @param state the expression state
|
||||||
* @return true if the left operand is in the range specified, false otherwise
|
* @return true if the left operand is in the range specified, false otherwise
|
||||||
* @throws EvaluationException if there is a problem evaluating the expression
|
* @throws EvaluationException if there is a problem evaluating the expression
|
||||||
|
|
Loading…
Reference in New Issue