com.espertech.esper.epl.expression.core
Interface ExprNode

All Superinterfaces:
ExprValidator, MetaDefItem, java.io.Serializable
All Known Subinterfaces:
ExprAggregateNode, ExprAndNode, ExprBetweenNode, ExprConstantNode, ExprDeclaredNode, ExprEqualsNode, ExprIdentNode, ExprInNode, ExprRelationalOpNode, ExprStreamRefNode, ExprStreamUnderlyingNode, ExprTimePeriod, ExprVariableNode
All Known Implementing Classes:
ExprAggCountMinSketchNode, ExprAggMultiFunctionLinearAccessNode, ExprAggMultiFunctionSortedMinMaxByNode, ExprAggregateNodeBase, ExprAggregateNodeGroupKey, ExprAndNodeImpl, ExprArrayNode, ExprAvedevNode, ExprAvgNode, ExprBetweenNodeImpl, ExprBitWiseNode, ExprCaseNode, ExprCastNode, ExprCoalesceNode, ExprConcatNode, ExprConstantNodeImpl, ExprContextPropertyNode, ExprCountEverNode, ExprCountNode, ExprCurrentEvaluationContextNode, ExprDeclaredNodeImpl, ExprDotNode, ExprEqualsAllAnyNode, ExprEqualsNodeImpl, ExprFirstEverNode, ExprGroupingIdNode, ExprGroupingNode, ExprIdentNodeImpl, ExprInNodeImpl, ExprInstanceofNode, ExprIStreamNode, ExprLambdaGoesNode, ExprLastEverNode, ExprLeavingAggNode, ExprLikeNode, ExprMathNode, ExprMedianNode, ExprMinMaxAggrNode, ExprMinMaxRowNode, ExprNamedParameterNodeImpl, ExprNewInstanceNode, ExprNewStructNode, ExprNodeBase, ExprNodeScript, ExprNodeValidated, ExprNotNode, ExprNthAggNode, ExprNumberSetCronParam, ExprNumberSetFrequency, ExprNumberSetList, ExprNumberSetRange, ExprOrderedExpr, ExprOrNode, ExprPlugInAggMultiFunctionNode, ExprPlugInAggNode, ExprPlugInSingleRowNode, ExprPreviousMatchRecognizeNode, ExprPreviousNode, ExprPriorNode, ExprPropertyExistsNode, ExprRateAggNode, ExprRegexpNode, ExprRelationalOpAllAnyNode, ExprRelationalOpNodeImpl, ExprStddevNode, ExprStreamUnderlyingNodeImpl, ExprSubselectAllSomeAnyNode, ExprSubselectExistsNode, ExprSubselectInNode, ExprSubselectNode, ExprSubselectRowNode, ExprSubstitutionNode, ExprSumNode, ExprTableAccessNode, ExprTableAccessNodeKeys, ExprTableAccessNodeSubprop, ExprTableAccessNodeSubpropAccessor, ExprTableAccessNodeTopLevel, ExprTableIdentNode, ExprTableIdentNodeSubpropAccessor, ExprTimePeriodImpl, ExprTimestampNode, ExprTypedNoEvalNode, ExprTypeofNode, ExprVariableNodeImpl, ExprWildcardImpl

public interface ExprNode
extends ExprValidator, MetaDefItem, java.io.Serializable


Method Summary
 void accept(ExprNodeVisitor visitor)
          Accept the visitor.
 void accept(ExprNodeVisitorWithParent visitor)
          Accept the visitor.
 void acceptChildnodes(ExprNodeVisitorWithParent visitor, ExprNode parent)
          Accept a visitor that receives both parent and child node.
 void addChildNode(ExprNode childNode)
          Adds a child node.
 void addChildNodes(java.util.Collection<ExprNode> childNodes)
          Adds child nodes.
 boolean equalsNode(ExprNode node)
          Return true if a expression node semantically equals the current node, or false if not.
 ExprNode[] getChildNodes()
          Returns list of child nodes.
 ExprEvaluator getExprEvaluator()
           
 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.
 void replaceUnlistedChildNode(ExprNode nodeToReplace, ExprNode newNode)
           
 void setChildNode(int index, ExprNode newNode)
           
 void setChildNodes(ExprNode... nodes)
           
 void toEPL(java.io.StringWriter writer, ExprPrecedenceEnum parentPrecedence)
           
 
Methods inherited from interface com.espertech.esper.epl.expression.core.ExprValidator
validate
 

Method Detail

getExprEvaluator

ExprEvaluator getExprEvaluator()

toEPL

void toEPL(java.io.StringWriter writer,
           ExprPrecedenceEnum parentPrecedence)

getPrecedence

ExprPrecedenceEnum getPrecedence()
Returns precedence.

Returns:
precedence

isConstantResult

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.

Returns:
true for constant evaluation value, false for non-constant evaluation value

equalsNode

boolean equalsNode(ExprNode node)
Return true if a expression node semantically equals the current node, or false if not.

Concrete implementations should compare the type and any additional information that impact the evaluation of a node.

Parameters:
node - to compare to
Returns:
true if semantically equal, or false if not equals

accept

void accept(ExprNodeVisitor visitor)
Accept the visitor. The visitor will first visit the parent then visit all child nodes, then their child nodes.

The visitor can decide to skip child nodes by returning false in isVisit.

Parameters:
visitor - to visit each node and each child node.

accept

void accept(ExprNodeVisitorWithParent visitor)
Accept the visitor. The visitor will first visit the parent then visit all child nodes, then their child nodes.

The visitor can decide to skip child nodes by returning false in isVisit.

Parameters:
visitor - to visit each node and each child node.

acceptChildnodes

void acceptChildnodes(ExprNodeVisitorWithParent visitor,
                      ExprNode parent)
Accept a visitor that receives both parent and child node.

Parameters:
visitor - to apply
parent - node

addChildNode

void addChildNode(ExprNode childNode)
Adds a child node.

Parameters:
childNode - is the child evaluation tree node to add

addChildNodes

void addChildNodes(java.util.Collection<ExprNode> childNodes)
Adds child nodes.

Parameters:
childNodes - are the child evaluation tree node to add

getChildNodes

ExprNode[] getChildNodes()
Returns list of child nodes.

Returns:
list of child nodes

replaceUnlistedChildNode

void replaceUnlistedChildNode(ExprNode nodeToReplace,
                              ExprNode newNode)

setChildNode

void setChildNode(int index,
                  ExprNode newNode)

setChildNodes

void setChildNodes(ExprNode... nodes)

© 2006-2016 EsperTech Inc.
All rights reserved.
Visit us at espertech.com