EntityTypeEmitter.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWeb / Design / system / Data / EntityModel / Emitters / EntityTypeEmitter.cs / 1305376 / EntityTypeEmitter.cs

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

using System.CodeDom; 
using System.Data.Metadata.Edm;

namespace System.Data.EntityModel.Emitters
{ 
    /// 
    /// Summary description for ItemTypeEmitter. 
    ///  
    internal sealed class EntityTypeEmitter : StructuredTypeEmitter
    { 
        #region Public Methods
        /// 
        ///
        ///  
        /// 
        ///  
        public EntityTypeEmitter(ClientApiGenerator generator, EntityType entity) 
            : base(generator, entity)
        { 
        }
        #endregion

        #region Protected Methods 
        /// 
        /// 
        ///  
        /// 
        protected override void EmitProperties(CodeTypeDeclaration typeDecl) 
        {
            base.EmitProperties(typeDecl);
            foreach (EdmMember member in Item.Members)
            { 
                NavigationProperty navigationProperty = (member as NavigationProperty);
                if ((null != navigationProperty) && (navigationProperty.DeclaringType == Item)) 
                { 
                    NavigationPropertyEmitter navigationPropertyEmitter = new NavigationPropertyEmitter(Generator, navigationProperty, UsingStandardBaseClass);
                    navigationPropertyEmitter.Emit(typeDecl); 
                }
            }
        }
 
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA2204:Literals should be spelled correctly", MessageId = "KeyProperties")]
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = ".ctor")] 
        public override CodeTypeDeclarationCollection EmitApiClass() 
        {
            CodeTypeDeclarationCollection typeDecls = base.EmitApiClass(); 

            if (Item.KeyMembers.Count > 0 && typeDecls.Count == 1)
            {
                // generate xml comments for the key properties 
                CodeTypeDeclaration typeDecl = typeDecls[0];
                typeDecl.Comments.Add(new CodeCommentStatement("", true)); 
                foreach (EdmMember keyProperty in Item.KeyMembers) 
                {
                    string name = keyProperty.Name; 
                    typeDecl.Comments.Add(new CodeCommentStatement(name, true));
                }
                typeDecl.Comments.Add(new CodeCommentStatement("", true));
            } 

            return typeDecls; 
        } 

        ///  
        ///
        /// 
        /// 
        protected override void EmitTypeAttributes(CodeTypeDeclaration typeDecl) 
        {
            Generator.AttributeEmitter.EmitTypeAttributes(this, typeDecl); 
            base.EmitTypeAttributes(typeDecl); 
        }
 
        /// 
        ///
        /// 
        ///  
        protected override CodeTypeReference GetBaseType()
        { 
            CodeTypeReference baseType = base.GetBaseType(); 
            return baseType;
        } 

        protected override ReadOnlyMetadataCollection GetProperties()
        {
            return Item.Properties; 
        }
        #endregion 
 

 
        #region Public Properties
        #endregion

        #region Protected Properties 
        #endregion
 
        #region Private Properties 
        /// 
        /// Gets the SchemaElement that this class is generating code for. 
        /// 
        /// 
        public new EntityType Item
        { 
            get
            { 
                return base.Item as EntityType; 
            }
        } 

        #endregion

 

    } 
} 

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

using System.CodeDom; 
using System.Data.Metadata.Edm;

namespace System.Data.EntityModel.Emitters
{ 
    /// 
    /// Summary description for ItemTypeEmitter. 
    ///  
    internal sealed class EntityTypeEmitter : StructuredTypeEmitter
    { 
        #region Public Methods
        /// 
        ///
        ///  
        /// 
        ///  
        public EntityTypeEmitter(ClientApiGenerator generator, EntityType entity) 
            : base(generator, entity)
        { 
        }
        #endregion

        #region Protected Methods 
        /// 
        /// 
        ///  
        /// 
        protected override void EmitProperties(CodeTypeDeclaration typeDecl) 
        {
            base.EmitProperties(typeDecl);
            foreach (EdmMember member in Item.Members)
            { 
                NavigationProperty navigationProperty = (member as NavigationProperty);
                if ((null != navigationProperty) && (navigationProperty.DeclaringType == Item)) 
                { 
                    NavigationPropertyEmitter navigationPropertyEmitter = new NavigationPropertyEmitter(Generator, navigationProperty, UsingStandardBaseClass);
                    navigationPropertyEmitter.Emit(typeDecl); 
                }
            }
        }
 
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA2204:Literals should be spelled correctly", MessageId = "KeyProperties")]
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = ".ctor")] 
        public override CodeTypeDeclarationCollection EmitApiClass() 
        {
            CodeTypeDeclarationCollection typeDecls = base.EmitApiClass(); 

            if (Item.KeyMembers.Count > 0 && typeDecls.Count == 1)
            {
                // generate xml comments for the key properties 
                CodeTypeDeclaration typeDecl = typeDecls[0];
                typeDecl.Comments.Add(new CodeCommentStatement("", true)); 
                foreach (EdmMember keyProperty in Item.KeyMembers) 
                {
                    string name = keyProperty.Name; 
                    typeDecl.Comments.Add(new CodeCommentStatement(name, true));
                }
                typeDecl.Comments.Add(new CodeCommentStatement("", true));
            } 

            return typeDecls; 
        } 

        ///  
        ///
        /// 
        /// 
        protected override void EmitTypeAttributes(CodeTypeDeclaration typeDecl) 
        {
            Generator.AttributeEmitter.EmitTypeAttributes(this, typeDecl); 
            base.EmitTypeAttributes(typeDecl); 
        }
 
        /// 
        ///
        /// 
        ///  
        protected override CodeTypeReference GetBaseType()
        { 
            CodeTypeReference baseType = base.GetBaseType(); 
            return baseType;
        } 

        protected override ReadOnlyMetadataCollection GetProperties()
        {
            return Item.Properties; 
        }
        #endregion 
 

 
        #region Public Properties
        #endregion

        #region Protected Properties 
        #endregion
 
        #region Private Properties 
        /// 
        /// Gets the SchemaElement that this class is generating code for. 
        /// 
        /// 
        public new EntityType Item
        { 
            get
            { 
                return base.Item as EntityType; 
            }
        } 

        #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