FunctionParameter.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 / Metadata / Edm / FunctionParameter.cs / 1305376 / FunctionParameter.cs

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

using System; 
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
 
namespace System.Data.Metadata.Edm
{ 
    ///  
    /// Class representing a function parameter
    ///  
    public sealed class FunctionParameter : MetadataItem
    {
        internal static Func> DeclaringFunctionLinker = fp => fp._declaringFunction;
 
        #region Constructors
        ///  
        /// The constructor for FunctionParameter taking in a name and a TypeUsage object 
        /// 
        /// The name of this FunctionParameter 
        /// The TypeUsage describing the type of this FunctionParameter
        /// Mode of the parameter
        /// Thrown if name or typeUsage arguments are null
        /// Thrown if name argument is empty string 
        internal FunctionParameter(string name, TypeUsage typeUsage, ParameterMode parameterMode)
        { 
            EntityUtil.CheckStringArgument(name, "name"); 
            EntityUtil.GenericCheckArgumentNull(typeUsage, "typeUsage");
            _name = name; 
            _typeUsage = typeUsage;
            SetParameterMode(parameterMode);
        }
        #endregion 

        #region Fields 
        private readonly TypeUsage _typeUsage; 
        private readonly string _name;
        private readonly SafeLink _declaringFunction = new SafeLink(); 
        #endregion

        #region Properties
        ///  
        /// Returns the kind of the type
        ///  
        public override BuiltInTypeKind BuiltInTypeKind { get { return BuiltInTypeKind.FunctionParameter; } } 

        ///  
        /// Gets/Sets the mode of this parameter
        /// 
        /// Thrown if value passed into setter is null
        /// Thrown if the FunctionParameter instance is in ReadOnly state 
        [MetadataProperty(BuiltInTypeKind.ParameterMode, false)]
        public ParameterMode Mode 
        { 
            get
            { 
                return GetParameterMode();
            }
        }
 
        /// 
        /// Returns the identity of the member 
        ///  
        internal override string Identity
        { 
            get
            {
                return _name;
            } 
        }
 
        ///  
        /// Returns the name of the member
        ///  
        [MetadataProperty(PrimitiveTypeKind.String, false)]
        public String Name
        {
            get 
            {
                return _name; 
            } 
        }
 
        /// 
        /// Returns the TypeUsage object containing the type information and facets
        /// about the type
        ///  
        [MetadataProperty(BuiltInTypeKind.TypeUsage, false)]
        public TypeUsage TypeUsage 
        { 
            get
            { 
                return _typeUsage;
            }
        }
 
        /// 
        /// Returns the declaring function of this parameter 
        ///  
        public EdmFunction DeclaringFunction
        { 
            get
            {
                return _declaringFunction.Value;
            } 
        }
        #endregion 
 
        #region Methods
        ///  
        /// Overriding System.Object.ToString to provide better String representation
        /// for this type.
        /// 
        public override string ToString() 
        {
            return Name; 
        } 

 
        /// 
        /// Sets the member to read only mode. Once this is done, there are no changes
        /// that can be done to this class
        ///  
        internal override void SetReadOnly()
        { 
            if (!IsReadOnly) 
            {
                base.SetReadOnly(); 
                // TypeUsage is always readonly, no reason to set it
            }
        }
        #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