File: System\Data\EntityModel\TypeGeneratedEventArgs.cs
Project: ndp\fx\src\DataWeb\Design\System.Data.Services.Design.csproj (System.Data.Services.Design)
//---------------------------------------------------------------------
// <copyright file="TypeGeneratedEventArgs.cs" company="Microsoft">
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>
//
// @owner       Microsoft
// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.CodeDom;
using System.Collections.Generic;
using System.Data.Metadata.Edm;
 
namespace System.Data.Services.Design
{
    /// <summary>
    /// This class encapsulates the EventArgs dispatched as part of the event
    /// raised when a type is generated.
    /// </summary>
    public sealed class TypeGeneratedEventArgs : EventArgs
    {
        #region Private Data
 
        private GlobalItem _typeSource;
        private CodeTypeReference _baseType;
        private List<Type> _additionalInterfaces = new List<Type>();
        private List<CodeTypeMember> _additionalMembers = new List<CodeTypeMember>();
        private List<CodeAttributeDeclaration> _additionalAttributes = new List<CodeAttributeDeclaration>();
 
        #endregion
 
        #region Constructors
 
        /// <summary>
        /// Default constructor
        /// </summary>
        public TypeGeneratedEventArgs()
        {
        }
 
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="typeSource">The source of the event</param>
        /// <param name="baseType">The base type of the type being generated</param>
        public TypeGeneratedEventArgs(GlobalItem typeSource, CodeTypeReference baseType)
        {
            this._typeSource = typeSource;
            this._baseType = baseType;
        }
 
        #endregion
 
        #region Properties
 
        public GlobalItem TypeSource
        {
            get
            {
                return this._typeSource;
            }
        }
 
        /// <summary>
        /// The type appropriate for the TypeSource
        /// </summary>
        public CodeTypeReference BaseType
        {
            get
            {
                return this._baseType;
            }
            set
            {
                this._baseType = value;
            }
        }
 
        /// <summary>
        /// Interfaces to be included in the new type's definition
        /// </summary>
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1002", Justification = "Same as System.Data.Entity.Design")]
        public List<Type> AdditionalInterfaces
        {
            get
            {
                return this._additionalInterfaces;
            }
        }
 
        /// <summary>
        /// Members to be included in the new type's definition
        /// </summary>
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1002", Justification = "Same as System.Data.Entity.Design")]
        public List<CodeTypeMember> AdditionalMembers
        {
            get
            {
                return this._additionalMembers;
            }
        }
 
        /// <summary>
        /// Attributes to be added to the property's CustomAttributes collection
        /// </summary>
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1002", Justification = "Same as System.Data.Entity.Design")]
        public List<CodeAttributeDeclaration> AdditionalAttributes
        {
            get
            {
                return this._additionalAttributes;
            }
        }
 
        #endregion
    }
}