public class ExprDeclaredNodeImpl extends ExprNodeBase implements ExprDeclaredNode, ExprDeclaredOrLambdaNode, ExprFilterOptimizableNode, ExprNodeInnerNodeProvider, ExprConstantNode
Constructor and Description |
---|
ExprDeclaredNodeImpl(ExpressionDeclItem prototype,
List<ExprNode> chainParameters,
ContextDescriptor contextDescriptor) |
Modifier and Type | Method and Description |
---|---|
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.
|
CodegenExpression |
codegen(CodegenParamSetExprPremade params,
CodegenContext context) |
boolean |
equalsNode(ExprNode node,
boolean ignoreStreamPrefix)
Return true if a expression node semantically equals the current node, or false if not.
|
List<ExprNode> |
getAdditionalNodes() |
ExprNode |
getBody() |
List<ExprNode> |
getChainParameters() |
Class |
getConstantType() |
Object |
getConstantValue(ExprEvaluatorContext context) |
ExprNode |
getExpressionBodyCopy() |
ExprEvaluator |
getExprEvaluator() |
FilterSpecLookupable |
getFilterLookupable() |
boolean |
getFilterLookupEligible() |
ExprForge |
getForge() |
LinkedHashMap<String,Integer> |
getOuterStreamNames(Map<String,Integer> outerStreamNames) |
ExprPrecedenceEnum |
getPrecedence()
Returns precedence.
|
ExpressionDeclItem |
getPrototype() |
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 |
isConstantValue() |
void |
toPrecedenceFreeEPL(StringWriter writer) |
ExprNode |
validate(ExprValidationContext validationContext) |
boolean |
validated() |
addChildNode, addChildNodes, addChildNodeToFront, getChildNodes, replaceUnlistedChildNode, setChildNode, setChildNodes, toEPL
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addChildNode, addChildNodes, getChildNodes, replaceUnlistedChildNode, setChildNode, setChildNodes
toEPL
public ExprDeclaredNodeImpl(ExpressionDeclItem prototype, List<ExprNode> chainParameters, ContextDescriptor contextDescriptor)
public CodegenExpression codegen(CodegenParamSetExprPremade params, CodegenContext context)
public ExprNode getBody()
getBody
in interface ExprDeclaredNode
public List<ExprNode> getAdditionalNodes()
getAdditionalNodes
in interface ExprNodeInnerNodeProvider
public boolean validated()
validated
in interface ExprDeclaredOrLambdaNode
public Class getConstantType()
getConstantType
in interface ExprConstantNode
public Object getConstantValue(ExprEvaluatorContext context)
getConstantValue
in interface ExprConstantNode
public boolean isConstantValue()
isConstantValue
in interface ExprConstantNode
public LinkedHashMap<String,Integer> getOuterStreamNames(Map<String,Integer> outerStreamNames) throws ExprValidationException
getOuterStreamNames
in interface ExprDeclaredNode
ExprValidationException
public ExprNode validate(ExprValidationContext validationContext) throws ExprValidationException
validate
in interface ExprValidator
ExprValidationException
public boolean getFilterLookupEligible()
getFilterLookupEligible
in interface ExprFilterOptimizableNode
public FilterSpecLookupable getFilterLookupable()
getFilterLookupable
in interface ExprFilterOptimizableNode
public boolean isConstantResult()
ExprNode
isConstantResult
in interface 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.
equalsNode
in interface ExprNode
node
- to compare toignoreStreamPrefix
- when the equals-comparison can ignore prefix of event propertiespublic void accept(ExprNodeVisitor visitor)
ExprNode
The visitor can decide to skip child nodes by returning false in isVisit.
accept
in interface ExprNode
accept
in class ExprNodeBase
visitor
- to visit each node and each child node.public void accept(ExprNodeVisitorWithParent visitor)
ExprNode
The visitor can decide to skip child nodes by returning false in isVisit.
accept
in interface ExprNode
accept
in class ExprNodeBase
visitor
- to visit each node and each child node.public void acceptChildnodes(ExprNodeVisitorWithParent visitor, ExprNode parent)
ExprNode
acceptChildnodes
in interface ExprNode
acceptChildnodes
in class ExprNodeBase
visitor
- to applyparent
- nodepublic ExprNode getExpressionBodyCopy()
public ExpressionDeclItem getPrototype()
getPrototype
in interface ExprDeclaredNode
public List<ExprNode> getChainParameters()
getChainParameters
in interface ExprDeclaredNode
public ExprEvaluator getExprEvaluator()
public void toPrecedenceFreeEPL(StringWriter writer)
toPrecedenceFreeEPL
in class ExprNodeBase
public ExprPrecedenceEnum getPrecedence()
ExprNode
getPrecedence
in interface ExprNode