TakeQueryOptionExpression.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataWeb / Client / System / Data / Services / Client / ALinq / TakeQueryOptionExpression.cs / 2 / TakeQueryOptionExpression.cs

                            //---------------------------------------------------------------------- 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//  
//      Respresents a take query option in resource bound expression tree.
//  
// 
// @owner  [....]
//--------------------------------------------------------------------- 

namespace System.Data.Services.Client
{
    using System; 
    using System.Diagnostics;
    using System.Linq.Expressions; 
 
    /// 
    /// An resource specific expression representing a take query option. 
    /// 
    [DebuggerDisplay("TakeQueryOptionExpression {TakeAmount}")]
    internal class TakeQueryOptionExpression : QueryOptionExpression
    { 
        /// amount to skip
        private ConstantExpression takeAmount; 
 
        /// 
        /// Creates a TakeQueryOption expression 
        /// 
        /// the return type of the expression
        /// the query option value
        internal TakeQueryOptionExpression(Type type, ConstantExpression takeAmount) 
            : base((ExpressionType)ResourceExpressionType.TakeQueryOption, type)
        { 
            this.takeAmount = takeAmount; 
        }
 
        /// 
        /// query option value
        /// 
        internal ConstantExpression TakeAmount 
        {
            get 
            { 
                return this.takeAmount;
            } 
        }

        /// 
        /// Composes the  expression with this one when it's specified multiple times. 
        /// 
        ///  to compose. 
        ///  
        /// The expression that results from composing the  expression with this one.
        ///  
        internal override QueryOptionExpression ComposeMultipleSpecification(QueryOptionExpression previous)
        {
            Debug.Assert(previous != null, "other != null");
            Debug.Assert(previous.GetType() == this.GetType(), "other.GetType == this.GetType() -- otherwise it's not the same specification"); 
            Debug.Assert(this.takeAmount != null, "this.takeAmount != null");
            Debug.Assert( 
                this.takeAmount.Type == typeof(int), 
                "this.takeAmount.Type == typeof(int) -- otherwise it wouldn't have matched the Enumerable.Take(source, int count) signature");
            int thisValue = (int)this.takeAmount.Value; 
            int previousValue = (int)((TakeQueryOptionExpression)previous).takeAmount.Value;
            return (thisValue < previousValue) ? this : previous;
        }
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//---------------------------------------------------------------------- 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//  
//      Respresents a take query option in resource bound expression tree.
//  
// 
// @owner  [....]
//--------------------------------------------------------------------- 

namespace System.Data.Services.Client
{
    using System; 
    using System.Diagnostics;
    using System.Linq.Expressions; 
 
    /// 
    /// An resource specific expression representing a take query option. 
    /// 
    [DebuggerDisplay("TakeQueryOptionExpression {TakeAmount}")]
    internal class TakeQueryOptionExpression : QueryOptionExpression
    { 
        /// amount to skip
        private ConstantExpression takeAmount; 
 
        /// 
        /// Creates a TakeQueryOption expression 
        /// 
        /// the return type of the expression
        /// the query option value
        internal TakeQueryOptionExpression(Type type, ConstantExpression takeAmount) 
            : base((ExpressionType)ResourceExpressionType.TakeQueryOption, type)
        { 
            this.takeAmount = takeAmount; 
        }
 
        /// 
        /// query option value
        /// 
        internal ConstantExpression TakeAmount 
        {
            get 
            { 
                return this.takeAmount;
            } 
        }

        /// 
        /// Composes the  expression with this one when it's specified multiple times. 
        /// 
        ///  to compose. 
        ///  
        /// The expression that results from composing the  expression with this one.
        ///  
        internal override QueryOptionExpression ComposeMultipleSpecification(QueryOptionExpression previous)
        {
            Debug.Assert(previous != null, "other != null");
            Debug.Assert(previous.GetType() == this.GetType(), "other.GetType == this.GetType() -- otherwise it's not the same specification"); 
            Debug.Assert(this.takeAmount != null, "this.takeAmount != null");
            Debug.Assert( 
                this.takeAmount.Type == typeof(int), 
                "this.takeAmount.Type == typeof(int) -- otherwise it wouldn't have matched the Enumerable.Take(source, int count) signature");
            int thisValue = (int)this.takeAmount.Value; 
            int previousValue = (int)((TakeQueryOptionExpression)previous).takeAmount.Value;
            return (thisValue < previousValue) ? this : previous;
        }
    } 
}

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