ConstantProjectedSlot.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 / Map / ViewGeneration / Structures / ConstantProjectedSlot.cs / 1305376 / ConstantProjectedSlot.cs

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

using System.Data.Mapping.ViewGeneration.CqlGeneration; 
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
 
namespace System.Data.Mapping.ViewGeneration.Structures
{ 
    // A constant that can be projected in a cell query 
    internal class ConstantProjectedSlot : ProjectedSlot
    { 

        #region Constructors
        // effects: Creates a slot with constant value being "value"
        internal ConstantProjectedSlot(Constant value) 
        {
            Debug.Assert(value != null); 
            m_constant = value; 
            Debug.Assert(value.IsNotNull() == false, "Cannot store NotNull in a slot - NotNull is only for conditions");
        } 
        #endregion

        #region Fields
        private Constant m_constant; // The actual value 
        #endregion
 
        #region Properties 
        // effects: Returns the value stored in this constant
        internal Constant CellConstant 
        {
            get { return m_constant; }
        }
 
        #endregion
 
        #region ProjectedSlot Members 
        internal override ProjectedSlot MakeAliasedSlot(CqlBlock block, MemberPath memberPath, int slotNum)
        { 
            return this; // Nothing to create
        }

        internal override StringBuilder AsCql(StringBuilder builder, MemberPath outputMember, 
                                              string blockAlias, int indentLevel)
        { 
            return m_constant.AsCql(builder, outputMember, blockAlias); 
        }
 
        protected override bool IsEqualTo(ProjectedSlot right)
        {
            ConstantProjectedSlot rightSlot = right as ConstantProjectedSlot;
            if (rightSlot == null) 
            {
                return false; 
            } 
            return Constant.EqualityComparer.Equals(m_constant, rightSlot.m_constant);
        } 

        protected override int GetHash()
        {
            return Constant.EqualityComparer.GetHashCode(m_constant); 
        }
 
        #endregion 

        internal override void ToCompactString(StringBuilder builder) 
        {
            m_constant.ToCompactString(builder);
        }
    } 
}

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