public virtual void VisitGroupJoinClause (GroupJoinClause groupJoinClause, QueryModel queryModel, int index)
    {
      ArgumentUtility.CheckNotNull ("groupJoinClause", groupJoinClause);
      ArgumentUtility.CheckNotNull ("queryModel", queryModel);

      groupJoinClause.JoinClause.Accept (this, queryModel, groupJoinClause);
    }
    public virtual void VisitJoinClause (JoinClause joinClause, QueryModel queryModel, GroupJoinClause groupJoinClause)
    {
      ArgumentUtility.CheckNotNull ("joinClause", joinClause);
      ArgumentUtility.CheckNotNull ("queryModel", queryModel);
      ArgumentUtility.CheckNotNull ("groupJoinClause", groupJoinClause);

      // nothing to do here
    }
        /// <summary>
        /// Clones this clause, registering its clone with the <paramref name="cloneContext"/>.
        /// </summary>
        /// <param name="cloneContext">The clones of all query source clauses are registered with this <see cref="CloneContext"/>.</param>
        /// <returns>A clone of this clause.</returns>
        public GroupJoinClause Clone(CloneContext cloneContext)
        {
            ArgumentUtility.CheckNotNull("cloneContext", cloneContext);

            var clone = new GroupJoinClause(ItemName, ItemType, JoinClause.Clone(cloneContext));

            cloneContext.QuerySourceMapping.AddMapping(this, new QuerySourceReferenceExpression(clone));
            return(clone);
        }
Example #4
0
        /// <summary>
        /// Accepts the specified visitor by calling its <see cref="IQueryModelVisitor.VisitJoinClause(ArangoDB.Client.Common.Remotion.Linq.Clauses.JoinClause,ArangoDB.Client.Common.Remotion.Linq.QueryModel,ArangoDB.Client.Common.Remotion.Linq.Clauses.GroupJoinClause)"/>
        /// method. This overload is used when visiting a <see cref="JoinClause"/> that is held by a <see cref="GroupJoinClause"/>.
        /// </summary>
        /// <param name="visitor">The visitor to accept.</param>
        /// <param name="queryModel">The query model in whose context this clause is visited.</param>
        /// <param name="groupJoinClause">The <see cref="GroupJoinClause"/> holding this <see cref="JoinClause"/> instance.</param>
        public virtual void Accept(IQueryModelVisitor visitor, QueryModel queryModel, GroupJoinClause groupJoinClause)
        {
            ArgumentUtility.CheckNotNull("visitor", visitor);
            ArgumentUtility.CheckNotNull("queryModel", queryModel);
            ArgumentUtility.CheckNotNull("groupJoinClause", groupJoinClause);

            visitor.VisitJoinClause(this, queryModel, groupJoinClause);
        }
Example #5
0
   /// <summary>
   /// Accepts the specified visitor by calling its <see cref="IQueryModelVisitor.VisitJoinClause(ArangoDB.Client.Common.Remotion.Linq.Clauses.JoinClause,ArangoDB.Client.Common.Remotion.Linq.QueryModel,ArangoDB.Client.Common.Remotion.Linq.Clauses.GroupJoinClause)"/> 
   /// method. This overload is used when visiting a <see cref="JoinClause"/> that is held by a <see cref="GroupJoinClause"/>.
   /// </summary>
   /// <param name="visitor">The visitor to accept.</param>
   /// <param name="queryModel">The query model in whose context this clause is visited.</param>
   /// <param name="groupJoinClause">The <see cref="GroupJoinClause"/> holding this <see cref="JoinClause"/> instance.</param>
   public virtual void Accept (IQueryModelVisitor visitor, QueryModel queryModel, GroupJoinClause groupJoinClause)
   {
     ArgumentUtility.CheckNotNull ("visitor", visitor);
     ArgumentUtility.CheckNotNull ("queryModel", queryModel);
     ArgumentUtility.CheckNotNull ("groupJoinClause", groupJoinClause);

     visitor.VisitJoinClause (this, queryModel, groupJoinClause);
   }
        public override void VisitGroupJoinClause(GroupJoinClause groupJoinClause, QueryModel queryModel, int index)
        {

        }
    /// <summary>
    /// Clones this clause, registering its clone with the <paramref name="cloneContext"/>.
    /// </summary>
    /// <param name="cloneContext">The clones of all query source clauses are registered with this <see cref="CloneContext"/>.</param>
    /// <returns>A clone of this clause.</returns>
    public GroupJoinClause Clone (CloneContext cloneContext)
    {
      ArgumentUtility.CheckNotNull ("cloneContext", cloneContext);

      var clone = new GroupJoinClause (ItemName, ItemType, JoinClause.Clone (cloneContext));
      cloneContext.QuerySourceMapping.AddMapping (this, new QuerySourceReferenceExpression (clone));
      return clone;
    }
    protected override QueryModel ApplyNodeSpecificSemantics (QueryModel queryModel, ClauseGenerationContext clauseGenerationContext)
    {
      ArgumentUtility.CheckNotNull ("queryModel", queryModel);

      var joinClause = JoinExpressionNode.CreateJoinClause (clauseGenerationContext);
      var groupJoinClause = new GroupJoinClause (ResultSelector.Parameters[1].Name, ResultSelector.Parameters[1].Type, joinClause);

      clauseGenerationContext.AddContextInfo (this, groupJoinClause);
      queryModel.BodyClauses.Add (groupJoinClause);

      var selectClause = queryModel.SelectClause;
      selectClause.Selector = GetResolvedResultSelector (clauseGenerationContext);

      return queryModel;
    }