|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.espertech.esper.epl.expression.core.ExprNodeBase
com.espertech.esper.epl.expression.funcs.ExprCaseNode
public class ExprCaseNode
Represents the case-when-then-else control flow function is an expression tree.
Nested Class Summary | |
---|---|
static class |
ExprCaseNode.CaseAnalysis
|
Constructor Summary | |
---|---|
ExprCaseNode(boolean isCase2)
Ctor. |
Method Summary | |
---|---|
boolean |
equalsNode(ExprNode node_)
Return true if a expression node semantically equals the current node, or false if not. |
java.lang.Object |
evaluate(EventBean[] eventsPerStream,
boolean isNewData,
ExprEvaluatorContext exprEvaluatorContext)
Evaluate event tuple and return result. |
java.lang.Object[][] |
evaluateTypableMulti(EventBean[] eventsPerStream,
boolean isNewData,
ExprEvaluatorContext context)
|
java.lang.Object[] |
evaluateTypableSingle(EventBean[] eventsPerStream,
boolean isNewData,
ExprEvaluatorContext context)
|
ExprEvaluator |
getExprEvaluator()
|
ExprPrecedenceEnum |
getPrecedence()
Returns precedence. |
java.util.LinkedHashMap<java.lang.String,java.lang.Object> |
getRowProperties()
Return null to indicate no row-type result available, or a map of property names and types to indicate a row-type result is available. |
java.lang.Class |
getType()
Returns the type that the node's evaluate method returns an instance of. |
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. |
java.lang.Boolean |
isMultirow()
Return true for multi-row return, return false for return of single row only |
void |
toPrecedenceFreeEPL(java.io.StringWriter writer)
|
ExprNode |
validate(ExprValidationContext validationContext)
|
Methods inherited from class com.espertech.esper.epl.expression.core.ExprNodeBase |
---|
accept, accept, acceptChildnodes, addChildNode, addChildNodes, addChildNodeToFront, getChildNodes, replaceUnlistedChildNode, setChildNode, setChildNodes, toEPL |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
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".
Method Detail |
---|
public ExprEvaluator getExprEvaluator()
getExprEvaluator
in interface ExprNode
public boolean isCase2()
public ExprNode validate(ExprValidationContext validationContext) throws ExprValidationException
validate
in interface ExprValidator
ExprValidationException
public boolean isConstantResult()
ExprNode
isConstantResult
in interface ExprNode
public java.lang.Class getType()
ExprEvaluator
getType
in interface ExprEvaluator
public java.util.LinkedHashMap<java.lang.String,java.lang.Object> getRowProperties() throws ExprValidationException
ExprEvaluatorTypableReturn
getRowProperties
in interface ExprEvaluatorTypableReturn
ExprValidationException
- if the expression is invalidpublic java.lang.Object evaluate(EventBean[] eventsPerStream, boolean isNewData, ExprEvaluatorContext exprEvaluatorContext)
ExprEvaluator
evaluate
in interface ExprEvaluator
eventsPerStream
- - event tupleisNewData
- - indicates whether we are dealing with new data (istream) or old data (rstream)exprEvaluatorContext
- context for expression evaluation
public java.lang.Boolean isMultirow()
ExprEvaluatorTypableReturn
isMultirow
in interface ExprEvaluatorTypableReturn
public java.lang.Object[] evaluateTypableSingle(EventBean[] eventsPerStream, boolean isNewData, ExprEvaluatorContext context)
evaluateTypableSingle
in interface ExprEvaluatorTypableReturn
public java.lang.Object[][] evaluateTypableMulti(EventBean[] eventsPerStream, boolean isNewData, ExprEvaluatorContext context)
evaluateTypableMulti
in interface ExprEvaluatorTypableReturn
public boolean equalsNode(ExprNode node_)
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 to
public void toPrecedenceFreeEPL(java.io.StringWriter writer)
toPrecedenceFreeEPL
in class ExprNodeBase
public ExprPrecedenceEnum getPrecedence()
ExprNode
getPrecedence
in interface ExprNode
|
© 2006-2015 EsperTech Inc. All rights reserved. Visit us at espertech.com |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |