EntityTypeEmitter.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / ndp / fx / src / DataWeb / Design / system / Data / EntityModel / Emitters / EntityTypeEmitter.cs / 1 / 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); 
                }
            }
        }
 
        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); 
                }
            }
        }
 
        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