public override void ExitQuery([NotNull] QueryBuilderQueriesParser.QueryContext context) { QueryableEntity qEntity = context.entity().qEntity; StartArg = getStartArg(qEntity); List <RelationshipJoinOperator> rjoinOps = getRelationshipJoinOperators(qEntity); rjoinOps.ForEach(rjo => PipelineOperators.Add(rjo)); if (ProjectOp != null) { PipelineOperators.Add(ProjectOp); } if (context.where () != null) { SelectStage2 SelectOp = new SelectStage2(); SelectOp.LogicalExpression = getLogicalExpression(context.where ().logicalExpression()); PipelineOperators.Add(SelectOp); } }
/// <summary> /// Exit a parse tree produced by <see cref="QueryBuilderQueriesParser.query"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitQuery([NotNull] QueryBuilderQueriesParser.QueryContext context) { }
/// <summary> /// Visit a parse tree produced by <see cref="QueryBuilderQueriesParser.query"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitQuery([NotNull] QueryBuilderQueriesParser.QueryContext context) { return(VisitChildren(context)); }