public class ExprCaseNode extends ExprNodeBase
Modifier and Type | Class and Description |
---|---|
static class |
ExprCaseNode.CaseAnalysis |
Constructor and Description |
---|
ExprCaseNode(boolean isCase2)
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 |
isCase2()
Returns true if this is a switch-type case.
|
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.
|
void |
toPrecedenceFreeEPL(StringWriter writer) |
ExprNode |
validate(ExprValidationContext validationContext) |
accept, accept, acceptChildnodes, addChildNode, addChildNodes, addChildNodeToFront, getChildNodes, replaceUnlistedChildNode, setChildNode, setChildNodes, toEPL
public ExprCaseNode(boolean isCase2)
isCase2
- is an indicator of which Case statement we are working on.
True indicates a 'Case2' statement with syntax "case a when a1 then b1 else b2".
False indicates a 'Case1' statement with syntax "case when a=a1 then b1 else b2".
public ExprEvaluator getExprEvaluator()
public ExprForge getForge()
public boolean isCase2()
public ExprNode validate(ExprValidationContext validationContext) throws ExprValidationException
ExprValidationException
public boolean isConstantResult()
ExprNode
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.
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