public class ExprBetweenNodeImpl extends ExprNodeBase implements ExprBetweenNode
Modifier and Type | Class and Description |
---|---|
protected static interface |
ExprBetweenNodeImpl.ExprBetweenComp |
protected static class |
ExprBetweenNodeImpl.ExprBetweenCompBigDecimal |
protected static class |
ExprBetweenNodeImpl.ExprBetweenCompBigInteger |
protected static class |
ExprBetweenNodeImpl.ExprBetweenCompDouble |
protected static class |
ExprBetweenNodeImpl.ExprBetweenCompLong |
protected static class |
ExprBetweenNodeImpl.ExprBetweenCompString |
Constructor and Description |
---|
ExprBetweenNodeImpl(boolean lowEndpointIncluded,
boolean highEndpointIncluded,
boolean notBetween)
Ctor.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equalsNode(ExprNode node,
boolean ignoreStreamPrefix)
Return true if a expression node semantically equals the current node, or false if not.
|
ExprEvaluator |
getExprEvaluator() |
ExprForge |
getForge() |
ExprPrecedenceEnum |
getPrecedence()
Returns precedence.
|
boolean |
isConstantResult()
Returns true if the expression node's evaluation value doesn't depend on any events data,
as must be determined at validation time, which is bottom-up and therefore
reliably allows each node to determine constant value.
|
boolean |
isHighEndpointIncluded()
Returns true if the high endpoint is included, false if not
|
boolean |
isLowEndpointIncluded()
Returns true if the low endpoint is included, false if not
|
boolean |
isNotBetween()
Returns true for inverted range, or false for regular (openn/close/half-open/half-closed) ranges.
|
void |
toPrecedenceFreeEPL(StringWriter writer) |
ExprNode |
validate(ExprValidationContext validationContext) |
accept, accept, acceptChildnodes, addChildNode, addChildNodes, addChildNodeToFront, getChildNodes, replaceUnlistedChildNode, setChildNode, setChildNodes, toEPL
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
accept, accept, acceptChildnodes, addChildNode, addChildNodes, getChildNodes, replaceUnlistedChildNode, setChildNode, setChildNodes
toEPL
public ExprBetweenNodeImpl(boolean lowEndpointIncluded, boolean highEndpointIncluded, boolean notBetween)
lowEndpointIncluded
- is true for the regular 'between' or false for "val in (a:b)" (open range), or
false if the endpoint is not includedhighEndpointIncluded
- indicates whether the high endpoint is includednotBetween
- is true for 'not between' or 'not in (a:b), or false for a regular betweenpublic ExprEvaluator getExprEvaluator()
public boolean isConstantResult()
ExprNode
isConstantResult
in interface ExprNode
public boolean isLowEndpointIncluded()
isLowEndpointIncluded
in interface ExprBetweenNode
public boolean isHighEndpointIncluded()
isHighEndpointIncluded
in interface ExprBetweenNode
public boolean isNotBetween()
isNotBetween
in interface ExprBetweenNode
public ExprNode validate(ExprValidationContext validationContext) throws ExprValidationException
validate
in interface ExprValidator
ExprValidationException
public boolean equalsNode(ExprNode node, boolean ignoreStreamPrefix)
ExprNode
Concrete implementations should compare the type and any additional information that impact the evaluation of a node.
equalsNode
in interface ExprNode
node
- to compare toignoreStreamPrefix
- when the equals-comparison can ignore prefix of event propertiespublic void toPrecedenceFreeEPL(StringWriter writer)
toPrecedenceFreeEPL
in class ExprNodeBase
public ExprPrecedenceEnum getPrecedence()
ExprNode
getPrecedence
in interface ExprNode