public abstract class ExprSubselectNode extends ExprNodeBase implements ExprEvaluator, ExprEnumerationForge, ExprTypableReturnForge, ExprForgeInstrumentable
Modifier and Type | Class and Description |
---|---|
static class |
ExprSubselectNode.SubqueryAggregationType |
Modifier and Type | Field and Description |
---|---|
static ExprSubselectNode[] |
EMPTY_SUBSELECT_ARRAY |
protected ExprForge |
filterExpr |
protected ExprForge |
havingExpr |
protected EventType |
rawEventType |
protected String[] |
selectAsNames |
protected ExprNode[] |
selectClause |
Constructor and Description |
---|
ExprSubselectNode(StatementSpecRaw statementSpec)
Ctor.
|
accept, accept, acceptChildnodes, addChildNode, addChildNodes, addChildNodeToFront, checkValidated, checkValidatedException, getChildNodes, replaceUnlistedChildNode, setChildNode, setChildNodes, toEPL
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getComponentTypeCollection, getEventTypeCollection, getEventTypeSingle
getEvaluationType
public static final ExprSubselectNode[] EMPTY_SUBSELECT_ARRAY
protected ExprNode[] selectClause
protected String[] selectAsNames
protected ExprForge filterExpr
protected ExprForge havingExpr
protected EventType rawEventType
public ExprSubselectNode(StatementSpecRaw statementSpec)
statementSpec
- is the lookup statement spec from the parser, unvalidatedpublic abstract boolean isAllowMultiColumnSelect()
public abstract void validateSubquery(ExprValidationContext validationContext) throws ExprValidationException
ExprValidationException
public abstract LinkedHashMap<String,Object> typableGetRowProperties() throws ExprValidationException
ExprValidationException
protected abstract CodegenExpression evalMatchesPlainCodegen(CodegenMethodScope parent, ExprSubselectEvalMatchSymbol symbols, CodegenClassScope classScope)
protected abstract CodegenExpression evalMatchesGetCollEventsCodegen(CodegenMethodScope parent, ExprSubselectEvalMatchSymbol symbols, CodegenClassScope classScope)
protected abstract CodegenExpression evalMatchesGetCollScalarCodegen(CodegenMethodScope parent, ExprSubselectEvalMatchSymbol symbols, CodegenClassScope classScope)
protected abstract CodegenExpression evalMatchesGetEventBeanCodegen(CodegenMethodScope parent, ExprSubselectEvalMatchSymbol symbols, CodegenClassScope classScope)
protected abstract CodegenExpression evalMatchesTypableSingleCodegen(CodegenMethodScope parent, ExprSubselectEvalMatchSymbol symbols, CodegenClassScope classScope)
protected abstract CodegenExpression evalMatchesTypableMultiCodegen(CodegenMethodScope parent, ExprSubselectEvalMatchSymbol symbols, CodegenClassScope classScope)
public ExprEvaluator getExprEvaluator()
getExprEvaluator
in interface ExprForge
public boolean isConstantResult()
public ExprNodeRenderable getForgeRenderable()
getForgeRenderable
in interface ExprEnumerationForge
getForgeRenderable
in interface ExprForge
public ExprNode validate(ExprValidationContext validationContext) throws ExprValidationException
validate
in interface ExprValidator
ExprValidationException
public void setStatementSpecCompiled(StatementSpecCompiled statementSpecCompiled, int subselectNumber)
statementSpecCompiled
- compiled validated filterssubselectNumber
- subselect assigned numberpublic StatementSpecCompiled getStatementSpecCompiled()
public void setSelectClause(ExprNode[] selectClause)
selectClause
- is the expression representing the select clausepublic 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 evaluationpublic Object evaluate(EventBean[] eventsPerStream, boolean isNewData, Collection<EventBean> matchingEvents, ExprEvaluatorContext exprEvaluatorContext)
public CodegenExpression evaluateCodegenUninstrumented(Class requiredType, CodegenMethodScope codegenMethodScope, ExprForgeCodegenSymbol exprSymbol, CodegenClassScope codegenClassScope)
evaluateCodegenUninstrumented
in interface ExprForgeInstrumentable
public CodegenExpression evaluateCodegen(Class requiredType, CodegenMethodScope parent, ExprForgeCodegenSymbol exprSymbol, CodegenClassScope codegenClassScope)
evaluateCodegen
in interface ExprForge
public CodegenExpression evaluateGetROCollectionEventsCodegen(CodegenMethodScope parent, ExprForgeCodegenSymbol exprSymbol, CodegenClassScope codegenClassScope)
evaluateGetROCollectionEventsCodegen
in interface ExprEnumerationForge
public CodegenExpression evaluateGetROCollectionScalarCodegen(CodegenMethodScope parent, ExprForgeCodegenSymbol exprSymbol, CodegenClassScope codegenClassScope)
evaluateGetROCollectionScalarCodegen
in interface ExprEnumerationForge
public CodegenExpression evaluateGetEventBeanCodegen(CodegenMethodScope parent, ExprForgeCodegenSymbol exprSymbol, CodegenClassScope codegenClassScope)
evaluateGetEventBeanCodegen
in interface ExprEnumerationForge
public CodegenExpression evaluateTypableSingleCodegen(CodegenMethodScope codegenMethodScope, ExprForgeCodegenSymbol exprSymbol, CodegenClassScope codegenClassScope)
evaluateTypableSingleCodegen
in interface ExprTypableReturnForge
public CodegenExpression evaluateTypableMultiCodegen(CodegenMethodScope parent, ExprForgeCodegenSymbol exprSymbol, CodegenClassScope codegenClassScope)
evaluateTypableMultiCodegen
in interface ExprTypableReturnForge
public ExprForgeConstantType getForgeConstantType()
getForgeConstantType
in interface ExprForge
public LinkedHashMap<String,Object> getRowProperties() throws ExprValidationException
ExprTypableReturnForge
getRowProperties
in interface ExprTypableReturnForge
ExprValidationException
- if the expression is invalidpublic Boolean isMultirow()
ExprTypableReturnForge
isMultirow
in interface ExprTypableReturnForge
public StatementSpecRaw getStatementSpecRaw()
public void setSelectAsNames(String[] selectAsNames)
selectAsNames
- is the as-name(s)public void setFilterExpr(ExprForge filterExpr)
filterExpr
- is the filterpublic void setHavingExpr(ExprForge havingExpr)
public void toPrecedenceFreeEPL(StringWriter writer)
toPrecedenceFreeEPL
in class ExprNodeBase
public ExprPrecedenceEnum getPrecedence()
ExprNode
getPrecedence
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 setRawEventType(EventType rawEventType)
rawEventType
- is the wildcard type (parent view)public ExprNode[] getSelectClause()
public EventType getRawEventType()
public StreamTypeService getFilterSubqueryStreamTypes()
public void setFilterSubqueryStreamTypes(StreamTypeService filterSubqueryStreamTypes)
filterSubqueryStreamTypes
- typespublic ExprSubselectNode.SubqueryAggregationType getSubselectAggregationType()
public void setSubselectAggregationType(ExprSubselectNode.SubqueryAggregationType subselectAggregationType)
public int getSubselectNumber()
public void setFilterStreamSubselect(boolean filterStreamSubselect)
public boolean isFilterStreamSubselect()
public ExprEnumerationEval getExprEvaluatorEnumeration()
getExprEvaluatorEnumeration
in interface ExprEnumerationForge
public static ExprSubselectNode[] toArray(List<ExprSubselectNode> subselectNodes)
Copyright © 2005–2018. All rights reserved.