WithStatement.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 / DataEntity / System / Data / Map / ViewGeneration / Structures / WithStatement.cs / 1 / WithStatement.cs

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

 
using System.Data.Common.Utils;
using System.Text;
using System.Collections.Generic;
using System.Data.Mapping.ViewGeneration.CqlGeneration; 
using System.Data.Metadata.Edm;
using System.Diagnostics; 
 
namespace System.Data.Mapping.ViewGeneration.Structures
{ 

    // effects: A class to denote a With statement
    internal class WithStatement : InternalBase
    { 

        #region Constructors 
        ///  
        /// effects: Creates a case statement for the field "memberPath"
        /// with no clauses 
        /// 
        internal WithStatement(EntitySet entitySetForToEnd, EntityType entityTypeForToEnd,
            EntityType entityTypeForFromEnd, AssociationSet associationSet,
            string fromRoleName, string toRoleName, 
            IEnumerable memberPathsForEndMembers)
        { 
            m_entitySetForToEnd = entitySetForToEnd; 
            m_entityTypeForToEnd = entityTypeForToEnd;
            m_entityTypeForFromEnd = entityTypeForFromEnd; 
            m_memberPathsForEndMembers = memberPathsForEndMembers;
            m_associationSet = associationSet;
            m_fromRoleName = fromRoleName;
            m_toRoleName = toRoleName; 
        }
        #endregion 
 
        #region Fields
        private EntitySet m_entitySetForToEnd; 
        private EntityType m_entityTypeForToEnd;
        private EntityType m_entityTypeForFromEnd;
        private AssociationSet m_associationSet;
        private string m_fromRoleName; 
        private string m_toRoleName;
        private IEnumerable m_memberPathsForEndMembers; 
        #endregion 

        #region Properties 
        internal EntityType EntityTypeForFromEnd
        {
            get { return m_entityTypeForFromEnd; }
        } 
        #endregion
 
        #region Methods 
        // effects: For the given With Statement, generates the CQL for
        // it. 
        internal StringBuilder AsCql(StringBuilder builder, string blockAlias, int indentLevel)
        {
            StringUtil.IndentNewLine(builder, indentLevel + 1);
            builder.Append("RELATIONSHIP("); 
            List fields = new List();
            // If the variable is a relation end, we will gets it scope Extent, e.g., CPerson1 for an 
            // the CPerson end of CPersonAddress1 
            builder.Append("CREATEREF(");
            CqlWriter.AppendEscapedQualifiedName(builder, m_entitySetForToEnd.EntityContainer.Name, m_entitySetForToEnd.Name); 
            builder.Append(", ROW(");
            foreach (MemberPath memberPath in m_memberPathsForEndMembers)
            {
                string fullFieldAlias = CqlWriter.GetQualifiedName(blockAlias, memberPath.CqlFieldAlias); 
                fields.Add(fullFieldAlias);
            } 
            StringUtil.ToSeparatedString(builder, fields, ", ", null); 
            builder.Append(')');
            builder.Append(","); 
            CqlWriter.AppendEscapedTypeName(builder, m_entityTypeForToEnd);
            builder.Append(')');

            builder.Append(','); 
            CqlWriter.AppendEscapedTypeName(builder, m_associationSet.ElementType);
            builder.Append(','); 
            CqlWriter.AppendEscapedName(builder, m_fromRoleName); 
            builder.Append(',');
            CqlWriter.AppendEscapedName(builder, m_toRoleName); 
            builder.Append(')');
            builder.Append(' ');
            return builder;
        } 

        // Repeat of AsCql but don't have all the info 
        internal override void ToCompactString(StringBuilder builder) 
        {
            throw new NotImplementedException(); 
        }
        #endregion

    } 
}

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

 
using System.Data.Common.Utils;
using System.Text;
using System.Collections.Generic;
using System.Data.Mapping.ViewGeneration.CqlGeneration; 
using System.Data.Metadata.Edm;
using System.Diagnostics; 
 
namespace System.Data.Mapping.ViewGeneration.Structures
{ 

    // effects: A class to denote a With statement
    internal class WithStatement : InternalBase
    { 

        #region Constructors 
        ///  
        /// effects: Creates a case statement for the field "memberPath"
        /// with no clauses 
        /// 
        internal WithStatement(EntitySet entitySetForToEnd, EntityType entityTypeForToEnd,
            EntityType entityTypeForFromEnd, AssociationSet associationSet,
            string fromRoleName, string toRoleName, 
            IEnumerable memberPathsForEndMembers)
        { 
            m_entitySetForToEnd = entitySetForToEnd; 
            m_entityTypeForToEnd = entityTypeForToEnd;
            m_entityTypeForFromEnd = entityTypeForFromEnd; 
            m_memberPathsForEndMembers = memberPathsForEndMembers;
            m_associationSet = associationSet;
            m_fromRoleName = fromRoleName;
            m_toRoleName = toRoleName; 
        }
        #endregion 
 
        #region Fields
        private EntitySet m_entitySetForToEnd; 
        private EntityType m_entityTypeForToEnd;
        private EntityType m_entityTypeForFromEnd;
        private AssociationSet m_associationSet;
        private string m_fromRoleName; 
        private string m_toRoleName;
        private IEnumerable m_memberPathsForEndMembers; 
        #endregion 

        #region Properties 
        internal EntityType EntityTypeForFromEnd
        {
            get { return m_entityTypeForFromEnd; }
        } 
        #endregion
 
        #region Methods 
        // effects: For the given With Statement, generates the CQL for
        // it. 
        internal StringBuilder AsCql(StringBuilder builder, string blockAlias, int indentLevel)
        {
            StringUtil.IndentNewLine(builder, indentLevel + 1);
            builder.Append("RELATIONSHIP("); 
            List fields = new List();
            // If the variable is a relation end, we will gets it scope Extent, e.g., CPerson1 for an 
            // the CPerson end of CPersonAddress1 
            builder.Append("CREATEREF(");
            CqlWriter.AppendEscapedQualifiedName(builder, m_entitySetForToEnd.EntityContainer.Name, m_entitySetForToEnd.Name); 
            builder.Append(", ROW(");
            foreach (MemberPath memberPath in m_memberPathsForEndMembers)
            {
                string fullFieldAlias = CqlWriter.GetQualifiedName(blockAlias, memberPath.CqlFieldAlias); 
                fields.Add(fullFieldAlias);
            } 
            StringUtil.ToSeparatedString(builder, fields, ", ", null); 
            builder.Append(')');
            builder.Append(","); 
            CqlWriter.AppendEscapedTypeName(builder, m_entityTypeForToEnd);
            builder.Append(')');

            builder.Append(','); 
            CqlWriter.AppendEscapedTypeName(builder, m_associationSet.ElementType);
            builder.Append(','); 
            CqlWriter.AppendEscapedName(builder, m_fromRoleName); 
            builder.Append(',');
            CqlWriter.AppendEscapedName(builder, m_toRoleName); 
            builder.Append(')');
            builder.Append(' ');
            return builder;
        } 

        // Repeat of AsCql but don't have all the info 
        internal override void ToCompactString(StringBuilder builder) 
        {
            throw new NotImplementedException(); 
        }
        #endregion

    } 
}

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