ReadOnlyMetadataCollection.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 / DataEntity / System / Data / Metadata / Edm / ReadOnlyMetadataCollection.cs / 1305376 / ReadOnlyMetadataCollection.cs

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

using System; 
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Data.Common; 
using System.Diagnostics;
using System.Reflection; 
using System.Text; 

namespace System.Data.Metadata.Edm 
{
    /// 
    /// Class representing a read-only wrapper around MetadataCollection
    ///  
    /// The type of items in this collection
    public class ReadOnlyMetadataCollection : System.Collections.ObjectModel.ReadOnlyCollection where T : MetadataItem 
    { 
        #region Constructors
        ///  
        /// The constructor for constructing a read-only metadata collection to wrap another MetadataCollection.
        /// 
        /// The metadata collection to wrap
        /// Thrown if collection argument is null 
        internal ReadOnlyMetadataCollection(IList collection) : base(collection)
        { 
        } 
        #endregion
 
        #region InnerClasses
        // On the surface, this Enumerator doesn't do anything but delegating to the underlying enumerator

        ///  
        /// The enumerator for MetadataCollection
        ///  
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1815:OverrideEqualsAndOperatorEqualsOnValueTypes")] 
        public struct Enumerator : IEnumerator
        { 
            /// 
            /// Constructor for the enumerator
            /// 
            /// The collection that this enumerator should enumerate on 
            internal Enumerator(IList collection)
            { 
                _parent = collection; 
                _nextIndex = 0;
                _current = null; 
            }

            private int _nextIndex;
            private IList _parent; 
            private T _current;
 
            ///  
            /// Gets the member at the current position
            ///  
            public T Current
            {
                get
                { 
                    return _current;
                } 
            } 

            ///  
            /// Gets the member at the current position
            /// 
            object IEnumerator.Current
            { 
                get
                { 
                    return this.Current; 
                }
            } 

            /// 
            /// Dispose this enumerator
            ///  
            public void Dispose()
            { 
            } 

            ///  
            /// Move to the next member in the collection
            /// 
            /// True if the enumerator is moved
            public bool MoveNext() 
            {
                if ((uint)_nextIndex < (uint)_parent.Count) 
                { 
                    _current = _parent[_nextIndex];
                    _nextIndex++; 
                    return true;
                }

                _current = null; 
                return false;
            } 
 
            /// 
            /// Sets the enumerator to the initial position before the first member 
            /// 
            public void Reset()
            {
                _current = null; 
                _nextIndex = 0;
            } 
        } 
        #endregion
 
        #region Properties
        /// 
        /// Gets whether the collection is a readonly collection
        ///  
        public bool IsReadOnly
        { 
            get 
            {
                return true; 
            }
        }

        ///  
        /// Gets an item from the collection with the given identity
        ///  
        /// The identity of the item to search for 
        /// An item from the collection
        /// Thrown if identity argument passed in is null 
        /// Thrown if setter is called
        public virtual T this[string identity]
        {
            get 
            {
                return (((MetadataCollection)this.Items)[identity]); 
            } 
        }
 
        /// 
        /// Returns the metadata collection over which this collection is the view
        /// 
        internal MetadataCollection Source 
        {
            get 
            { 
                return (MetadataCollection)this.Items;
            } 
        }
        #endregion

        #region Methods 
        /// 
        /// Gets an item from the collection with the given identity 
        ///  
        /// The identity of the item to search for
        /// Whether case is ignore in the search 
        /// An item from the collection
        /// Thrown if identity argument passed in is null
        /// Thrown if the Collection does not have an item with the given identity
        public virtual T GetValue(string identity, bool ignoreCase) 
        {
            return ((MetadataCollection)this.Items).GetValue(identity, ignoreCase); 
        } 

        ///  
        /// Determines if this collection contains an item of the given identity
        /// 
        /// The identity of the item to check for
        /// True if the collection contains the item with the given identity 
        /// Thrown if identity argument passed in is null
        /// Thrown if identity argument passed in is empty string 
        public virtual bool Contains(string identity) 
        {
            return ((MetadataCollection)this.Items).ContainsIdentity(identity); 
        }

        /// 
        /// Gets an item from the collection with the given identity 
        /// 
        /// The identity of the item to search for 
        /// Whether case is ignore in the search 
        /// An item from the collection, null if the item is not found
        /// True an item is retrieved 
        /// if identity argument is null
        public virtual bool TryGetValue(string identity, bool ignoreCase, out T item)
        {
            return ((MetadataCollection)this.Items).TryGetValue(identity, ignoreCase, out item); 
        }
 
 
        /// 
        /// Gets the enumerator over this collection 
        /// 
        /// 
        public new Enumerator GetEnumerator()
        { 
            return new Enumerator(this.Items);
        } 
 
        /// 
        /// Workaround for bug 
        /// 
        /// 
        /// 
        public new virtual int IndexOf(T value) 
        {
            return base.IndexOf(value); 
        } 

        #endregion 
    }
}

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

using System; 
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Data.Common; 
using System.Diagnostics;
using System.Reflection; 
using System.Text; 

namespace System.Data.Metadata.Edm 
{
    /// 
    /// Class representing a read-only wrapper around MetadataCollection
    ///  
    /// The type of items in this collection
    public class ReadOnlyMetadataCollection : System.Collections.ObjectModel.ReadOnlyCollection where T : MetadataItem 
    { 
        #region Constructors
        ///  
        /// The constructor for constructing a read-only metadata collection to wrap another MetadataCollection.
        /// 
        /// The metadata collection to wrap
        /// Thrown if collection argument is null 
        internal ReadOnlyMetadataCollection(IList collection) : base(collection)
        { 
        } 
        #endregion
 
        #region InnerClasses
        // On the surface, this Enumerator doesn't do anything but delegating to the underlying enumerator

        ///  
        /// The enumerator for MetadataCollection
        ///  
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1815:OverrideEqualsAndOperatorEqualsOnValueTypes")] 
        public struct Enumerator : IEnumerator
        { 
            /// 
            /// Constructor for the enumerator
            /// 
            /// The collection that this enumerator should enumerate on 
            internal Enumerator(IList collection)
            { 
                _parent = collection; 
                _nextIndex = 0;
                _current = null; 
            }

            private int _nextIndex;
            private IList _parent; 
            private T _current;
 
            ///  
            /// Gets the member at the current position
            ///  
            public T Current
            {
                get
                { 
                    return _current;
                } 
            } 

            ///  
            /// Gets the member at the current position
            /// 
            object IEnumerator.Current
            { 
                get
                { 
                    return this.Current; 
                }
            } 

            /// 
            /// Dispose this enumerator
            ///  
            public void Dispose()
            { 
            } 

            ///  
            /// Move to the next member in the collection
            /// 
            /// True if the enumerator is moved
            public bool MoveNext() 
            {
                if ((uint)_nextIndex < (uint)_parent.Count) 
                { 
                    _current = _parent[_nextIndex];
                    _nextIndex++; 
                    return true;
                }

                _current = null; 
                return false;
            } 
 
            /// 
            /// Sets the enumerator to the initial position before the first member 
            /// 
            public void Reset()
            {
                _current = null; 
                _nextIndex = 0;
            } 
        } 
        #endregion
 
        #region Properties
        /// 
        /// Gets whether the collection is a readonly collection
        ///  
        public bool IsReadOnly
        { 
            get 
            {
                return true; 
            }
        }

        ///  
        /// Gets an item from the collection with the given identity
        ///  
        /// The identity of the item to search for 
        /// An item from the collection
        /// Thrown if identity argument passed in is null 
        /// Thrown if setter is called
        public virtual T this[string identity]
        {
            get 
            {
                return (((MetadataCollection)this.Items)[identity]); 
            } 
        }
 
        /// 
        /// Returns the metadata collection over which this collection is the view
        /// 
        internal MetadataCollection Source 
        {
            get 
            { 
                return (MetadataCollection)this.Items;
            } 
        }
        #endregion

        #region Methods 
        /// 
        /// Gets an item from the collection with the given identity 
        ///  
        /// The identity of the item to search for
        /// Whether case is ignore in the search 
        /// An item from the collection
        /// Thrown if identity argument passed in is null
        /// Thrown if the Collection does not have an item with the given identity
        public virtual T GetValue(string identity, bool ignoreCase) 
        {
            return ((MetadataCollection)this.Items).GetValue(identity, ignoreCase); 
        } 

        ///  
        /// Determines if this collection contains an item of the given identity
        /// 
        /// The identity of the item to check for
        /// True if the collection contains the item with the given identity 
        /// Thrown if identity argument passed in is null
        /// Thrown if identity argument passed in is empty string 
        public virtual bool Contains(string identity) 
        {
            return ((MetadataCollection)this.Items).ContainsIdentity(identity); 
        }

        /// 
        /// Gets an item from the collection with the given identity 
        /// 
        /// The identity of the item to search for 
        /// Whether case is ignore in the search 
        /// An item from the collection, null if the item is not found
        /// True an item is retrieved 
        /// if identity argument is null
        public virtual bool TryGetValue(string identity, bool ignoreCase, out T item)
        {
            return ((MetadataCollection)this.Items).TryGetValue(identity, ignoreCase, out item); 
        }
 
 
        /// 
        /// Gets the enumerator over this collection 
        /// 
        /// 
        public new Enumerator GetEnumerator()
        { 
            return new Enumerator(this.Items);
        } 
 
        /// 
        /// Workaround for bug 
        /// 
        /// 
        /// 
        public new virtual int IndexOf(T value) 
        {
            return base.IndexOf(value); 
        } 

        #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