private FilterValueSetParam[][] ComputePathsWithNegate(EventBean[] eventsPerStream, FilterSpecPlan plan, MatchedEventMap matchedEvents, ExprEvaluatorContext exprEvaluatorContext, StatementContextFilterEvalEnv filterEvalEnv) { var paths = plan.Paths; IList<FilterValueSetParam[]> pathList = new List<FilterValueSetParam[]>(paths.Length); foreach (var path in paths) { var controlResult = path.PathNegate?.Evaluate(eventsPerStream, true, exprEvaluatorContext); if (controlResult != null && false.Equals(controlResult)) { continue; } var triplets = path.Triplets; var valueList = new FilterValueSetParam[triplets.Length]; PopulateValueSet(valueList, matchedEvents, path.Triplets, exprEvaluatorContext, filterEvalEnv); pathList.Add(valueList); } if (pathList.IsEmpty()) { return null; // all path negated } return pathList.ToArray(); }
public FilterValueSetParam[][] Compute( FilterSpecPlan plan, MatchedEventMap matchedEvents, ExprEvaluatorContext exprEvaluatorContext, StatementContextFilterEvalEnv filterEvalEnv) { return ComputeFixedLength(plan.Paths, matchedEvents, exprEvaluatorContext, filterEvalEnv); }
public FilterValueSetParam[][] Compute( FilterSpecPlan plan, MatchedEventMap matchedEvents, ExprEvaluatorContext exprEvaluatorContext, StatementContextFilterEvalEnv filterEvalEnv) { EventBean[] eventsPerStream = plan.Convertor.Invoke(matchedEvents); return Compute(eventsPerStream, plan, matchedEvents, exprEvaluatorContext, filterEvalEnv); }
protected override FilterValueSetParam[][] Compute(EventBean[] eventsPerStream, FilterSpecPlan plan, MatchedEventMap matchedEvents, ExprEvaluatorContext exprEvaluatorContext, StatementContextFilterEvalEnv filterEvalEnv) { if (plan.FilterNegate != null) { var controlResult = plan.FilterNegate.Evaluate(eventsPerStream, true, exprEvaluatorContext); if (controlResult != null && false.Equals(controlResult)) { return null; } } if (plan.FilterConfirm != null) { var controlResult = plan.FilterConfirm.Evaluate(eventsPerStream, true, exprEvaluatorContext); if (controlResult != null && true.Equals(controlResult)) { return FilterValueSetParamConstants.EMPTY; } } return ComputePathsWithNegate(eventsPerStream, plan, matchedEvents, exprEvaluatorContext, filterEvalEnv); }
protected abstract FilterValueSetParam[][] Compute(EventBean[] eventsPerStream, FilterSpecPlan plan, MatchedEventMap matchedEvents, ExprEvaluatorContext exprEvaluatorContext, StatementContextFilterEvalEnv filterEvalEnv);
static FilterSpecPlan() { EMPTY_PLAN = new FilterSpecPlan(FilterSpecPlanPath.EMPTY_ARRAY, null, null); EMPTY_PLAN.Initialize(); }