public class ExprNodeUtility
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static ExprDeclaredNode[] |
EMPTY_DECLARED_ARR |
static ExprNode[] |
EMPTY_EXPR_ARRAY |
Constructor and Description |
---|
ExprNodeUtility() |
Modifier and Type | Method and Description |
---|---|
static void |
acceptChain(ExprNodeVisitor visitor,
java.util.List<ExprChainedSpec> chainSpec) |
static void |
acceptChain(ExprNodeVisitorWithParent visitor,
java.util.List<ExprChainedSpec> chainSpec) |
static void |
acceptChain(ExprNodeVisitorWithParent visitor,
java.util.List<ExprChainedSpec> chainSpec,
ExprNode parent) |
static void |
addNonAggregatedProps(ExprNode exprNode,
java.util.Set<Pair<java.lang.Integer,java.lang.String>> set) |
static boolean |
applyFilterExpression(ExprEvaluator filter,
EventBean[] eventsPerStream,
ExprEvaluatorContext exprEvaluatorContext)
Apply a filter expression returning a pass indicator.
|
static EventBean[] |
applyFilterExpression(ExprEvaluator filter,
EventBean streamZeroEvent,
EventBean[] streamOneEvents,
ExprEvaluatorContext exprEvaluatorContext)
Apply a filter expression.
|
static void |
applyFilterExpressionIterable(java.lang.Iterable<EventBean> iterable,
ExprEvaluator filterExpression,
ExprEvaluatorContext exprEvaluatorContext,
java.util.Collection<EventBean> eventsInWindow) |
static void |
applyFilterExpressionsIterable(java.lang.Iterable<EventBean> iterable,
java.util.List<ExprNode> filterExpressions,
ExprEvaluatorContext exprEvaluatorContext,
java.util.Collection<EventBean> eventsInWindow) |
static Pair<java.lang.String,ExprNode> |
checkGetAssignmentToProp(ExprNode node) |
static Pair<java.lang.String,ExprNode> |
checkGetAssignmentToVariableOrProp(ExprNode node) |
static java.util.List<ExprNode> |
collectChainParameters(java.util.List<ExprChainedSpec> chainSpec) |
static ExprAndNode |
connectExpressionsByLogicalAnd(java.util.List<ExprNode> nodes) |
static boolean |
deepEquals(ExprNode[] one,
ExprNode[] two)
Compares two expression nodes via deep comparison, considering all
child nodes of either side.
|
static boolean |
deepEquals(ExprNode nodeOne,
ExprNode nodeTwo)
Compare two expression nodes and their children in exact child-node sequence,
returning true if the 2 expression nodes trees are equals, or false if they are not equals.
|
static boolean |
deepEquals(java.util.List<ExprNode> one,
java.util.List<ExprNode> two) |
static java.lang.Object[] |
evaluateExpressions(ExprEvaluator[] parameters,
ExprEvaluatorContext exprEvaluatorContext) |
static java.util.List<Pair<ExprNode,ExprNode>> |
findExpression(ExprNode selectExpression,
ExprNode searchExpression) |
static java.util.Set<Pair<java.lang.Integer,java.lang.String>> |
getAggregatedProperties(java.util.List<ExprAggregateNode> aggregateNodes) |
static java.util.Map<ExprDeclaredNode,java.util.List<ExprDeclaredNode>> |
getDeclaredExpressionCallHierarchy(ExprDeclaredNode[] declaredExpressions) |
static ExprEvaluator[] |
getEvaluators(ExprNode[] exprNodes) |
static ExprEvaluator[] |
getEvaluators(java.util.List<ExprNode> childNodes) |
static java.util.List<Pair<java.lang.Integer,java.lang.String>> |
getExpressionProperties(ExprNode exprNode,
boolean visitAggregateNodes)
Walk expression returning properties used.
|
static ExprIdentNode |
getExprIdentNode(EventType[] typesPerStream,
int streamId,
java.lang.String property) |
static java.lang.Class[] |
getExprResultTypes(ExprEvaluator[] evaluators) |
static java.lang.Class[] |
getExprResultTypes(java.util.List<ExprNode> expressions) |
static java.util.Set<Pair<java.lang.Integer,java.lang.String>> |
getGroupByPropertiesValidateHasOne(ExprNode[] groupByNodes) |
static java.lang.String[] |
getIdentResolvedPropertyNames(ExprNode[] nodes) |
static java.util.Set<java.lang.Integer> |
getIdentStreamNumbers(ExprNode child) |
static java.util.Set<Pair<java.lang.Integer,java.lang.String>> |
getNonAggregatedProps(EventType[] types,
java.util.List<ExprNode> exprNodes,
ContextPropertyRegistry contextPropertyRegistry) |
static java.util.Set<java.lang.String> |
getPropertyNamesIfAllProps(ExprNode[] expressions) |
static ExprNode |
getValidatedAssignment(OnTriggerSetAssignment assignment,
ExprValidationContext validationContext) |
static void |
getValidatedSubtree(ExprNodeOrigin origin,
ExprNode[][] exprNode,
ExprValidationContext validationContext) |
static void |
getValidatedSubtree(ExprNodeOrigin origin,
ExprNode[] exprNode,
ExprValidationContext validationContext) |
static ExprNode |
getValidatedSubtree(ExprNodeOrigin origin,
ExprNode exprNode,
ExprValidationContext validationContext)
Validates the expression node subtree that has this
node as root.
|
static boolean |
hasRemoveStream(ExprNode child,
StreamTypeService streamTypeService)
Returns true if all properties within the expression are witin data window'd streams.
|
static boolean |
isAllConstants(java.util.List<ExprNode> parameters) |
static boolean |
isConstantValueExpr(ExprNode exprNode) |
static java.lang.String |
isMinimalExpression(ExprNode expression)
Check if the expression is minimal: does not have a subselect, aggregation and does not need view resources
|
static java.lang.String |
printEvaluators(ExprEvaluator[] evaluators) |
static void |
replaceChainChildNode(ExprNode nodeToReplace,
ExprNode newNode,
java.util.List<ExprChainedSpec> chainSpec) |
static void |
replaceChildNode(ExprNode parentNode,
ExprNode nodeToReplace,
ExprNode newNode) |
static ExprNodeUtilMethodDesc |
resolveMethodAllowWildcardAndStream(java.lang.String className,
java.lang.Class optionalClass,
java.lang.String methodName,
java.util.List<ExprNode> parameters,
MethodResolutionService methodResolutionService,
EventAdapterService eventAdapterService,
java.lang.String statementId,
boolean allowWildcard,
EventType wildcardType,
ExprNodeUtilResolveExceptionHandler exceptionHandler,
java.lang.String functionName) |
static ExprNode[] |
toArray(java.util.Collection<ExprNode> expressions) |
static ExprDeclaredNode[] |
toArray(java.util.List<ExprDeclaredNode> declaredNodes) |
static ScheduleSpec |
toCrontabSchedule(ExprNodeOrigin origin,
java.util.List<ExprNode> scheduleSpecExpressionList,
StatementContext context) |
static void |
toExpressionStringIncludeParen(java.util.List<ExprNode> parameters,
java.io.StringWriter buffer) |
static java.lang.String |
toExpressionStringMinPrecedence(ExprNode node) |
static java.lang.String |
toExpressionStringMinPrecedence(ExprNode[] nodes) |
static void |
toExpressionStringParameterList(ExprNode[] childNodes,
java.io.StringWriter buffer) |
static void |
toExpressionStringParameterList(java.util.List<ExprNode> parameters,
java.io.StringWriter buffer) |
static java.lang.String[] |
toExpressionStringsMinPrecedence(ExprNode[] expressions) |
static void |
toExpressionStringWFunctionName(java.lang.String functionName,
ExprNode[] childNodes,
java.io.StringWriter writer) |
static void |
toExpressionStringWWildcardParams(java.io.StringWriter writer,
ExprNode[] params,
boolean isWildcard,
java.lang.String streamWildcard,
boolean firstParamOnly) |
static void |
validate(ExprNodeOrigin origin,
java.util.List<ExprChainedSpec> chainSpec,
ExprValidationContext validationContext) |
static void |
validatePlainExpression(ExprNodeOrigin origin,
java.lang.String expressionTextualName,
ExprNode expression) |
static ExprNode |
validateSimpleGetSubtree(ExprNodeOrigin origin,
ExprNode expression,
StatementContext statementContext,
EventType optionalEventType) |
public static final ExprNode[] EMPTY_EXPR_ARRAY
public static final ExprDeclaredNode[] EMPTY_DECLARED_ARR
public static java.util.Map<ExprDeclaredNode,java.util.List<ExprDeclaredNode>> getDeclaredExpressionCallHierarchy(ExprDeclaredNode[] declaredExpressions)
public static java.lang.String toExpressionStringMinPrecedence(ExprNode node)
public static java.lang.String toExpressionStringMinPrecedence(ExprNode[] nodes)
public static Pair<java.lang.String,ExprNode> checkGetAssignmentToProp(ExprNode node)
public static Pair<java.lang.String,ExprNode> checkGetAssignmentToVariableOrProp(ExprNode node)
public static void applyFilterExpressionsIterable(java.lang.Iterable<EventBean> iterable, java.util.List<ExprNode> filterExpressions, ExprEvaluatorContext exprEvaluatorContext, java.util.Collection<EventBean> eventsInWindow)
public static void applyFilterExpressionIterable(java.lang.Iterable<EventBean> iterable, ExprEvaluator filterExpression, ExprEvaluatorContext exprEvaluatorContext, java.util.Collection<EventBean> eventsInWindow)
public static ExprAndNode connectExpressionsByLogicalAnd(java.util.List<ExprNode> nodes)
public static java.util.List<Pair<java.lang.Integer,java.lang.String>> getExpressionProperties(ExprNode exprNode, boolean visitAggregateNodes)
exprNode
- to walkvisitAggregateNodes
- true to visit aggregation nodespublic static boolean isConstantValueExpr(ExprNode exprNode)
public static ExprNode getValidatedSubtree(ExprNodeOrigin origin, ExprNode exprNode, ExprValidationContext validationContext) throws ExprValidationException
ExprValidationException
- when the validation failspublic static void getValidatedSubtree(ExprNodeOrigin origin, ExprNode[] exprNode, ExprValidationContext validationContext) throws ExprValidationException
ExprValidationException
public static void getValidatedSubtree(ExprNodeOrigin origin, ExprNode[][] exprNode, ExprValidationContext validationContext) throws ExprValidationException
ExprValidationException
public static ExprNode getValidatedAssignment(OnTriggerSetAssignment assignment, ExprValidationContext validationContext) throws ExprValidationException
ExprValidationException
public static boolean isAllConstants(java.util.List<ExprNode> parameters)
public static ExprIdentNode getExprIdentNode(EventType[] typesPerStream, int streamId, java.lang.String property)
public static java.lang.Class[] getExprResultTypes(ExprEvaluator[] evaluators)
public static java.lang.Class[] getExprResultTypes(java.util.List<ExprNode> expressions)
public static ExprNodeUtilMethodDesc resolveMethodAllowWildcardAndStream(java.lang.String className, java.lang.Class optionalClass, java.lang.String methodName, java.util.List<ExprNode> parameters, MethodResolutionService methodResolutionService, EventAdapterService eventAdapterService, java.lang.String statementId, boolean allowWildcard, EventType wildcardType, ExprNodeUtilResolveExceptionHandler exceptionHandler, java.lang.String functionName) throws ExprValidationException
ExprValidationException
public static void validatePlainExpression(ExprNodeOrigin origin, java.lang.String expressionTextualName, ExprNode expression) throws ExprValidationException
ExprValidationException
public static ExprNode validateSimpleGetSubtree(ExprNodeOrigin origin, ExprNode expression, StatementContext statementContext, EventType optionalEventType) throws ExprValidationException
ExprValidationException
public static java.util.Set<java.lang.String> getPropertyNamesIfAllProps(ExprNode[] expressions)
public static java.lang.String[] toExpressionStringsMinPrecedence(ExprNode[] expressions)
public static java.util.List<Pair<ExprNode,ExprNode>> findExpression(ExprNode selectExpression, ExprNode searchExpression)
public static void toExpressionStringParameterList(ExprNode[] childNodes, java.io.StringWriter buffer)
public static void toExpressionStringWFunctionName(java.lang.String functionName, ExprNode[] childNodes, java.io.StringWriter writer)
public static java.lang.String[] getIdentResolvedPropertyNames(ExprNode[] nodes)
public static void acceptChain(ExprNodeVisitor visitor, java.util.List<ExprChainedSpec> chainSpec)
public static void acceptChain(ExprNodeVisitorWithParent visitor, java.util.List<ExprChainedSpec> chainSpec)
public static void acceptChain(ExprNodeVisitorWithParent visitor, java.util.List<ExprChainedSpec> chainSpec, ExprNode parent)
public static void replaceChildNode(ExprNode parentNode, ExprNode nodeToReplace, ExprNode newNode)
public static void replaceChainChildNode(ExprNode nodeToReplace, ExprNode newNode, java.util.List<ExprChainedSpec> chainSpec)
public static java.util.Set<Pair<java.lang.Integer,java.lang.String>> getNonAggregatedProps(EventType[] types, java.util.List<ExprNode> exprNodes, ContextPropertyRegistry contextPropertyRegistry)
public static void addNonAggregatedProps(ExprNode exprNode, java.util.Set<Pair<java.lang.Integer,java.lang.String>> set)
public static java.util.Set<Pair<java.lang.Integer,java.lang.String>> getAggregatedProperties(java.util.List<ExprAggregateNode> aggregateNodes)
public static ExprEvaluator[] getEvaluators(ExprNode[] exprNodes)
public static ExprEvaluator[] getEvaluators(java.util.List<ExprNode> childNodes)
public static java.util.Set<java.lang.Integer> getIdentStreamNumbers(ExprNode child)
public static boolean hasRemoveStream(ExprNode child, StreamTypeService streamTypeService)
child
- expression to interrogatestreamTypeService
- streamspublic static EventBean[] applyFilterExpression(ExprEvaluator filter, EventBean streamZeroEvent, EventBean[] streamOneEvents, ExprEvaluatorContext exprEvaluatorContext)
filter
- expressionstreamZeroEvent
- the event that represents stream zerostreamOneEvents
- all events thate are stream one eventsexprEvaluatorContext
- context for expression evaluationpublic static boolean applyFilterExpression(ExprEvaluator filter, EventBean[] eventsPerStream, ExprEvaluatorContext exprEvaluatorContext)
filter
- to applyeventsPerStream
- events per streamexprEvaluatorContext
- context for expression evaluationpublic static boolean deepEquals(ExprNode nodeOne, ExprNode nodeTwo)
Recursive call since it uses this method to compare child nodes in the same exact sequence. Nodes are compared using the equalsNode method.
nodeOne
- - first expression top node of the tree to comparenodeTwo
- - second expression top node of the tree to comparepublic static boolean deepEquals(ExprNode[] one, ExprNode[] two)
one
- array of expressionstwo
- array of expressionspublic static boolean deepEquals(java.util.List<ExprNode> one, java.util.List<ExprNode> two)
public static java.lang.String isMinimalExpression(ExprNode expression)
expression
- to inspectpublic static void toExpressionStringParameterList(java.util.List<ExprNode> parameters, java.io.StringWriter buffer)
public static void toExpressionStringIncludeParen(java.util.List<ExprNode> parameters, java.io.StringWriter buffer)
public static void validate(ExprNodeOrigin origin, java.util.List<ExprChainedSpec> chainSpec, ExprValidationContext validationContext) throws ExprValidationException
ExprValidationException
public static java.util.List<ExprNode> collectChainParameters(java.util.List<ExprChainedSpec> chainSpec)
public static void toExpressionStringWWildcardParams(java.io.StringWriter writer, ExprNode[] params, boolean isWildcard, java.lang.String streamWildcard, boolean firstParamOnly)
public static java.lang.String printEvaluators(ExprEvaluator[] evaluators)
public static ScheduleSpec toCrontabSchedule(ExprNodeOrigin origin, java.util.List<ExprNode> scheduleSpecExpressionList, StatementContext context) throws ExprValidationException
ExprValidationException
public static java.lang.Object[] evaluateExpressions(ExprEvaluator[] parameters, ExprEvaluatorContext exprEvaluatorContext)
public static ExprDeclaredNode[] toArray(java.util.List<ExprDeclaredNode> declaredNodes)
public static java.util.Set<Pair<java.lang.Integer,java.lang.String>> getGroupByPropertiesValidateHasOne(ExprNode[] groupByNodes) throws ExprValidationException
ExprValidationException