MethodExpr.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Common / EntitySql / AST / MethodExpr.cs / 1305376 / MethodExpr.cs

                            //---------------------------------------------------------------------- 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// 
// @owner  [....]
// @backupOwner [....] 
//--------------------------------------------------------------------- 

namespace System.Data.Common.EntitySql.AST 
{
    using System;
    using System.Globalization;
    using System.Collections; 
    using System.Collections.Generic;
    using System.Data.Common.CommandTrees; 
    using System.Diagnostics; 

    ///  
    /// Represents invocation expression: expr(...)
    /// 
    internal sealed class MethodExpr : GroupAggregateExpr
    { 
        private readonly Node _expr;
        private readonly NodeList _args; 
        private readonly NodeList _relationships; 

        ///  
        /// Initializes method ast node.
        /// 
        internal MethodExpr(Node expr,
                            DistinctKind distinctKind, 
                            NodeList args) : this (expr, distinctKind, args, null)
        { } 
 
        /// 
        /// Intializes a method ast node with relationships. 
        /// 
        internal MethodExpr(Node expr,
                            DistinctKind distinctKind,
                            NodeList args, 
                            NodeList relationships) : base(distinctKind)
        { 
            Debug.Assert(expr != null, "expr != null"); 
            Debug.Assert(args == null || args.Count > 0, "args must be null or a non-empty list");
 
            _expr = expr;
            _args = args;
            _relationships = relationships;
        } 

        ///  
        /// For the following expression: "a.b.c.Foo()", returns "a.b.c.Foo". 
        /// 
        internal Node Expr 
        {
            get { return _expr; }
        }
 
        /// 
        /// Argument list. 
        ///  
        internal NodeList Args
        { 
            get { return _args; }
        }

        ///  
        /// True if there are associated relationship expressions.
        ///  
        internal bool HasRelationships 
        {
            get { return null != _relationships && _relationships.Count > 0; } 
        }

        /// 
        /// Optional relationship list. 
        /// 
        internal NodeList Relationships 
        { 
            get { return _relationships; }
        } 
    }
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK