Exemple #1
0
        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));
 }