MethodExpr.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataEntity / System / Data / Common / EntitySql / MethodExpr.cs / 1 / MethodExpr.cs

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

 
namespace System.Data.Common.EntitySql
{
    using System;
    using System.Globalization; 
    using System.Collections;
    using System.Collections.Generic; 
    using System.Data.Common.CommandTrees; 
    using System.Diagnostics;
 
    /// 
    /// represents a method/function/aggregate function/type constructor expression
    /// 
    internal sealed class MethodExpr : Expr 
    {
        private Expr _leftExpr; 
        private Identifier _methodIdentifier; 
        private DistinctKind _distinctKind;
        private ExprList _args; 
        private string _internalAggregateName;
        private DbExpression _dummyExpression = null;
        private ExprList _relationships;
 
        /// 
        /// initializes method ast node 
        ///  
        /// 
        ///  
        /// 
        /// 
        internal MethodExpr( Expr left,
                               Identifier methodId, 
                               DistinctKind distinctKind,
                               ExprList args ) 
        { 
            _leftExpr = left;
            _methodIdentifier = methodId; 
            _distinctKind = distinctKind;
            _args = args;
        }
 
        /// 
        /// intializes a method ast node 
        ///  
        /// 
        ///  
        /// 
        /// 
        /// 
        internal MethodExpr(Expr left, 
                               Identifier methodId,
                               DistinctKind distinctKind, 
                               ExprList args, 
                               ExprList relationships)
        { 
            _leftExpr = left;
            _methodIdentifier = methodId;
            _distinctKind = distinctKind;
            _args = args; 
            _relationships = relationships;
        } 
 
        /// 
        /// left expression 
        /// 
        internal Expr LeftExpr
        {
            get { return _leftExpr; } 
        }
 
        ///  
        /// method identifier
        ///  
        internal Identifier MethodIdentifier
        {
            get { return _methodIdentifier; }
        } 

        ///  
        /// method name 
        /// 
        internal string MethodName 
        {
            get { return MethodIdentifier.Name; }
        }
 
        /// 
        /// returns a dotexpr with the entire prefix 
        ///  
        internal DotExpr MethodPrefixExpr
        { 
            get { return new DotExpr(LeftExpr, MethodIdentifier); }
        }

        ///  
        /// defines if funtion has distict annotation
        ///  
        internal DistinctKind DistinctKind 
        {
            get { return _distinctKind; } 
        }

        /// 
        /// argument list 
        /// 
        internal ExprList Args 
        { 
            get { return _args; }
        } 

        /// 
        /// optional relationship list
        ///  
        internal ExprList Relationships
        { 
            get { return _relationships; } 
        }
 
        /// 
        /// Returns true if there are associated relationship expressions
        /// 
        internal bool HasRelationships 
        {
            get { return null != _relationships && _relationships.Count > 0; } 
        } 

        // 
        // Aggregate helpers
        //

        ///  
        /// defines an internal name to be used as aggregate function
        /// used by semantic conversion 
        ///  
        internal string InternalAggregateName
        { 
            get
            {
                return _internalAggregateName;
            } 
        }
 
        ///  
        /// defines if a given function is aggregate
        /// used by semantic conversion 
        /// 
        internal bool WasResolved
        {
            get 
            {
                return (null != _internalAggregateName); 
            } 
        }
 
        internal DbExpression DummyExpression
        {
            get
            { 
                return _dummyExpression;
            } 
        } 

        internal void SetAggregateInfo( string internalAggregateName, DbExpression dummyExpr ) 
        {
            Debug.Assert(internalAggregateName != null);
            Debug.Assert(dummyExpr != null);
            _internalAggregateName = internalAggregateName; 
            _dummyExpression = dummyExpr;
        } 
 
        internal void ResetDummyExpression()
        { 
            _dummyExpression = null;
        }

        internal void ResetAggregateInfo() 
        {
            _internalAggregateName = null; 
            _dummyExpression = null; 
        }
 
    }

}
 


// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//---------------------------------------------------------------------- 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// 
// @owner  [....]
// @backup [....] 
//--------------------------------------------------------------------- 

 
namespace System.Data.Common.EntitySql
{
    using System;
    using System.Globalization; 
    using System.Collections;
    using System.Collections.Generic; 
    using System.Data.Common.CommandTrees; 
    using System.Diagnostics;
 
    /// 
    /// represents a method/function/aggregate function/type constructor expression
    /// 
    internal sealed class MethodExpr : Expr 
    {
        private Expr _leftExpr; 
        private Identifier _methodIdentifier; 
        private DistinctKind _distinctKind;
        private ExprList _args; 
        private string _internalAggregateName;
        private DbExpression _dummyExpression = null;
        private ExprList _relationships;
 
        /// 
        /// initializes method ast node 
        ///  
        /// 
        ///  
        /// 
        /// 
        internal MethodExpr( Expr left,
                               Identifier methodId, 
                               DistinctKind distinctKind,
                               ExprList args ) 
        { 
            _leftExpr = left;
            _methodIdentifier = methodId; 
            _distinctKind = distinctKind;
            _args = args;
        }
 
        /// 
        /// intializes a method ast node 
        ///  
        /// 
        ///  
        /// 
        /// 
        /// 
        internal MethodExpr(Expr left, 
                               Identifier methodId,
                               DistinctKind distinctKind, 
                               ExprList args, 
                               ExprList relationships)
        { 
            _leftExpr = left;
            _methodIdentifier = methodId;
            _distinctKind = distinctKind;
            _args = args; 
            _relationships = relationships;
        } 
 
        /// 
        /// left expression 
        /// 
        internal Expr LeftExpr
        {
            get { return _leftExpr; } 
        }
 
        ///  
        /// method identifier
        ///  
        internal Identifier MethodIdentifier
        {
            get { return _methodIdentifier; }
        } 

        ///  
        /// method name 
        /// 
        internal string MethodName 
        {
            get { return MethodIdentifier.Name; }
        }
 
        /// 
        /// returns a dotexpr with the entire prefix 
        ///  
        internal DotExpr MethodPrefixExpr
        { 
            get { return new DotExpr(LeftExpr, MethodIdentifier); }
        }

        ///  
        /// defines if funtion has distict annotation
        ///  
        internal DistinctKind DistinctKind 
        {
            get { return _distinctKind; } 
        }

        /// 
        /// argument list 
        /// 
        internal ExprList Args 
        { 
            get { return _args; }
        } 

        /// 
        /// optional relationship list
        ///  
        internal ExprList Relationships
        { 
            get { return _relationships; } 
        }
 
        /// 
        /// Returns true if there are associated relationship expressions
        /// 
        internal bool HasRelationships 
        {
            get { return null != _relationships && _relationships.Count > 0; } 
        } 

        // 
        // Aggregate helpers
        //

        ///  
        /// defines an internal name to be used as aggregate function
        /// used by semantic conversion 
        ///  
        internal string InternalAggregateName
        { 
            get
            {
                return _internalAggregateName;
            } 
        }
 
        ///  
        /// defines if a given function is aggregate
        /// used by semantic conversion 
        /// 
        internal bool WasResolved
        {
            get 
            {
                return (null != _internalAggregateName); 
            } 
        }
 
        internal DbExpression DummyExpression
        {
            get
            { 
                return _dummyExpression;
            } 
        } 

        internal void SetAggregateInfo( string internalAggregateName, DbExpression dummyExpr ) 
        {
            Debug.Assert(internalAggregateName != null);
            Debug.Assert(dummyExpr != null);
            _internalAggregateName = internalAggregateName; 
            _dummyExpression = dummyExpr;
        } 
 
        internal void ResetDummyExpression()
        { 
            _dummyExpression = null;
        }

        internal void ResetAggregateInfo() 
        {
            _internalAggregateName = null; 
            _dummyExpression = null; 
        }
 
    }

}
 


// 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