SiteMapNodeCollection.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 / whidbey / NetFxQFE / ndp / fx / src / xsp / System / Web / SiteMapNodeCollection.cs / 1 / SiteMapNodeCollection.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

/* 
 * Copyright (c) 2002 Microsoft Corporation 
 */
 
namespace System.Web {

    using System;
    using System.Collections; 
    using System.Diagnostics;
    using System.Security.Permissions; 
    using System.Web.UI; 
    using System.Web.UI.WebControls;
 

    [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
    [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
    public class SiteMapNodeCollection : IHierarchicalEnumerable, IList { 

        internal static SiteMapNodeCollection Empty = new ReadOnlySiteMapNodeCollection(new SiteMapNodeCollection()); 
        private int _initialSize = 10; 
        private ArrayList _innerList;
 

        public SiteMapNodeCollection() {
        }
 
        // Create the collection with initial capacity.
        public SiteMapNodeCollection(int capacity) { 
            _initialSize = capacity; 
        }
 
        public SiteMapNodeCollection(SiteMapNode value) {
            if (value == null) {
                throw new ArgumentNullException("value");
            } 

            _initialSize = 1; 
            List.Add(value); 
        }
 

        public SiteMapNodeCollection(SiteMapNode[] value) {
            if (value == null) {
                throw new ArgumentNullException("value"); 
            }
 
            _initialSize = value.Length; 
            AddRangeInternal(value);
        } 


        public SiteMapNodeCollection(SiteMapNodeCollection value) {
            if (value == null) { 
                throw new ArgumentNullException("value");
            } 
 
            _initialSize = value.Count;
            AddRangeInternal(value); 
        }

        public virtual int Count {
            get { 
                return List.Count;
            } 
        } 

        public virtual bool IsSynchronized { 
            get {
                return List.IsSynchronized;
            }
        } 

        public virtual object SyncRoot { 
            get { 
                return List.SyncRoot;
            } 
        }

        private ArrayList List {
            get { 
                Debug.Assert(!(this is ReadOnlySiteMapNodeCollection), "List should not be called on ReadOnlySiteMapNodeCollection.");
 
                if (_innerList == null) { 
                    _innerList = new ArrayList(_initialSize);
                } 

                return _innerList;
            }
        } 

 
        public virtual bool IsFixedSize { 
            get { return false; }
        } 


        public virtual bool IsReadOnly {
            get { return false; } 
        }
 
 
        public virtual SiteMapNode this[int index] {
            get { 
                return (SiteMapNode)List[index];
            }
            set {
                if (value == null) { 
                    throw new ArgumentNullException("value");
                } 
                List[index] = value; 
            }
        } 


        public virtual int Add(SiteMapNode value) {
            if (value == null) { 
                throw new ArgumentNullException("value");
            } 
            return List.Add(value); 
        }
 

        public virtual void AddRange(SiteMapNode[] value) {
            AddRangeInternal(value);
        } 

 
        public virtual void AddRange(SiteMapNodeCollection value) { 
            AddRangeInternal(value);
        } 

        private void AddRangeInternal(IList value) {
            if (value == null) {
                throw new ArgumentNullException("value"); 
            }
 
            List.AddRange(value); 
        }
 
        public virtual void Clear() {
            List.Clear();
        }
 
        public virtual bool Contains(SiteMapNode value) {
            return List.Contains(value); 
        } 

 
        public virtual void CopyTo(SiteMapNode[] array, int index) {
            CopyToInternal(array, index);
        }
 
        internal virtual void CopyToInternal(Array array, int index) {
            List.CopyTo(array, index); 
        } 

        public SiteMapDataSourceView GetDataSourceView(SiteMapDataSource owner, string viewName) { 
            return new SiteMapDataSourceView(owner, viewName, this);
        }

        public virtual IEnumerator GetEnumerator() { 
            return List.GetEnumerator();
        } 
 

        public SiteMapHierarchicalDataSourceView GetHierarchicalDataSourceView() { 
            return new SiteMapHierarchicalDataSourceView(this);
        }

 
        public virtual IHierarchyData GetHierarchyData(object enumeratedItem) {
            return enumeratedItem as IHierarchyData; 
        } 

 
        public virtual int IndexOf(SiteMapNode value) {
            return List.IndexOf(value);
        }
 

        public virtual void Insert(int index, SiteMapNode value) { 
            if (value == null) { 
                throw new ArgumentNullException("value");
            } 

            List.Insert(index, value);
        }
 

        protected virtual void OnValidate(object value) { 
            if (value == null) { 
                throw new ArgumentNullException("value");
            } 

            if (!(value is SiteMapNode)) {
                throw new ArgumentException(
                    SR.GetString(SR.SiteMapNodeCollection_Invalid_Type, value.GetType().ToString())); 
            }
        } 
 

        public static SiteMapNodeCollection ReadOnly(SiteMapNodeCollection collection) { 
            if (collection == null) {
                throw new ArgumentNullException("collection");
            }
 
            return new ReadOnlySiteMapNodeCollection(collection);
        } 
 

        public virtual void Remove(SiteMapNode value) { 
            if (value == null) {
                throw new ArgumentNullException("value");
            }
 
            List.Remove(value);
        } 
 
        public virtual void RemoveAt(int index) {
            List.RemoveAt(index); 
        }

        #region ICollection implementation
        int ICollection.Count { 
            get {
                return Count; 
            } 
        }
 
        bool ICollection.IsSynchronized {
            get {
                return IsSynchronized;
            } 
        }
 
        object ICollection.SyncRoot { 
            get {
                return SyncRoot; 
            }
        }

        void ICollection.CopyTo(Array array, int index) { 
            CopyToInternal(array, index);
        } 
        #endregion 

        #region IEnumerable implementation 
        IEnumerator IEnumerable.GetEnumerator() {
            return GetEnumerator();
        }
        #endregion 

        #region IHierarchicalEnumerable implementation 
 
        /// 
        IHierarchyData IHierarchicalEnumerable.GetHierarchyData(object enumeratedItem) { 
            return GetHierarchyData(enumeratedItem);
        }
        #endregion
 
        #region IList implementation
        ///  
        bool IList.IsFixedSize { 
            get { return IsFixedSize; }
        } 

        /// 
        bool IList.IsReadOnly {
            get { return IsReadOnly; } 
        }
 
 
        /// 
        object IList.this[int index] { 
            get {
                return this[index];
            }
            set { 
                OnValidate(value);
                this[index] = (SiteMapNode)value; 
            } 
        }
 
        int IList.Add(object value) {
            OnValidate(value);
            return Add((SiteMapNode)value);
        } 

        void IList.Clear() { 
            Clear(); 
        }
 
        bool IList.Contains(object value) {
            OnValidate(value);
            return Contains((SiteMapNode)value);
        } 

        int IList.IndexOf(object value) { 
            OnValidate(value); 
            return IndexOf((SiteMapNode)value);
        } 

        void IList.Insert(int index, object value) {
            OnValidate(value);
            Insert(index, (SiteMapNode)value); 
        }
 
        void IList.Remove(object value) { 
            OnValidate(value);
            Remove((SiteMapNode)value); 
        }

        void IList.RemoveAt(int index) {
            RemoveAt(index); 
        }
        #endregion 
 
        private sealed class ReadOnlySiteMapNodeCollection : SiteMapNodeCollection {
            private SiteMapNodeCollection _internalCollection; 

            internal ReadOnlySiteMapNodeCollection(SiteMapNodeCollection collection) {
                if (collection == null) {
                    throw new ArgumentNullException("collection"); 
                }
 
                _internalCollection = collection; 
            }
 
            public override int Count {
                get {
                    return _internalCollection.Count;
                } 
            }
 
            public override bool IsFixedSize { 
                get { return true; }
            } 

            public override bool IsReadOnly {
                get { return true; }
            } 

            public override bool IsSynchronized { 
                get { 
                    return _internalCollection.IsSynchronized;
                } 
            }

            public override object SyncRoot {
                get { 
                    return _internalCollection.SyncRoot;
                } 
            } 

 
            public override int Add(SiteMapNode value) {
                throw new NotSupportedException(SR.GetString(SR.Collection_readonly));
            }
 

            public override void AddRange(SiteMapNode[] value) { 
                throw new NotSupportedException(SR.GetString(SR.Collection_readonly)); 
            }
 

            public override void AddRange(SiteMapNodeCollection value) {
                throw new NotSupportedException(SR.GetString(SR.Collection_readonly));
            } 

            public override void Clear() { 
                throw new NotSupportedException(SR.GetString(SR.Collection_readonly)); 
            }
 
            public override bool Contains(SiteMapNode node) {
                return _internalCollection.Contains(node);
            }
 
            internal override void CopyToInternal(Array array, int index) {
                _internalCollection.List.CopyTo(array, index); 
            } 

            public override SiteMapNode this[int index] { 
                get {
                    return _internalCollection[index];
                }
                set { 
                    throw new NotSupportedException(SR.GetString(SR.Collection_readonly));
                } 
            } 

            public override IEnumerator GetEnumerator() { 
                return _internalCollection.GetEnumerator();
            }

            public override int IndexOf(SiteMapNode value) { 
                return _internalCollection.IndexOf(value);
            } 
 
            public override void Insert(int index, SiteMapNode value) {
                throw new NotSupportedException(SR.GetString(SR.Collection_readonly)); 
            }

            public override void Remove(SiteMapNode value) {
                throw new NotSupportedException(SR.GetString(SR.Collection_readonly)); 
            }
 
            public override void RemoveAt(int index) { 
                throw new NotSupportedException(SR.GetString(SR.Collection_readonly));
            } 
        }
    }
}

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

/* 
 * Copyright (c) 2002 Microsoft Corporation 
 */
 
namespace System.Web {

    using System;
    using System.Collections; 
    using System.Diagnostics;
    using System.Security.Permissions; 
    using System.Web.UI; 
    using System.Web.UI.WebControls;
 

    [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
    [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
    public class SiteMapNodeCollection : IHierarchicalEnumerable, IList { 

        internal static SiteMapNodeCollection Empty = new ReadOnlySiteMapNodeCollection(new SiteMapNodeCollection()); 
        private int _initialSize = 10; 
        private ArrayList _innerList;
 

        public SiteMapNodeCollection() {
        }
 
        // Create the collection with initial capacity.
        public SiteMapNodeCollection(int capacity) { 
            _initialSize = capacity; 
        }
 
        public SiteMapNodeCollection(SiteMapNode value) {
            if (value == null) {
                throw new ArgumentNullException("value");
            } 

            _initialSize = 1; 
            List.Add(value); 
        }
 

        public SiteMapNodeCollection(SiteMapNode[] value) {
            if (value == null) {
                throw new ArgumentNullException("value"); 
            }
 
            _initialSize = value.Length; 
            AddRangeInternal(value);
        } 


        public SiteMapNodeCollection(SiteMapNodeCollection value) {
            if (value == null) { 
                throw new ArgumentNullException("value");
            } 
 
            _initialSize = value.Count;
            AddRangeInternal(value); 
        }

        public virtual int Count {
            get { 
                return List.Count;
            } 
        } 

        public virtual bool IsSynchronized { 
            get {
                return List.IsSynchronized;
            }
        } 

        public virtual object SyncRoot { 
            get { 
                return List.SyncRoot;
            } 
        }

        private ArrayList List {
            get { 
                Debug.Assert(!(this is ReadOnlySiteMapNodeCollection), "List should not be called on ReadOnlySiteMapNodeCollection.");
 
                if (_innerList == null) { 
                    _innerList = new ArrayList(_initialSize);
                } 

                return _innerList;
            }
        } 

 
        public virtual bool IsFixedSize { 
            get { return false; }
        } 


        public virtual bool IsReadOnly {
            get { return false; } 
        }
 
 
        public virtual SiteMapNode this[int index] {
            get { 
                return (SiteMapNode)List[index];
            }
            set {
                if (value == null) { 
                    throw new ArgumentNullException("value");
                } 
                List[index] = value; 
            }
        } 


        public virtual int Add(SiteMapNode value) {
            if (value == null) { 
                throw new ArgumentNullException("value");
            } 
            return List.Add(value); 
        }
 

        public virtual void AddRange(SiteMapNode[] value) {
            AddRangeInternal(value);
        } 

 
        public virtual void AddRange(SiteMapNodeCollection value) { 
            AddRangeInternal(value);
        } 

        private void AddRangeInternal(IList value) {
            if (value == null) {
                throw new ArgumentNullException("value"); 
            }
 
            List.AddRange(value); 
        }
 
        public virtual void Clear() {
            List.Clear();
        }
 
        public virtual bool Contains(SiteMapNode value) {
            return List.Contains(value); 
        } 

 
        public virtual void CopyTo(SiteMapNode[] array, int index) {
            CopyToInternal(array, index);
        }
 
        internal virtual void CopyToInternal(Array array, int index) {
            List.CopyTo(array, index); 
        } 

        public SiteMapDataSourceView GetDataSourceView(SiteMapDataSource owner, string viewName) { 
            return new SiteMapDataSourceView(owner, viewName, this);
        }

        public virtual IEnumerator GetEnumerator() { 
            return List.GetEnumerator();
        } 
 

        public SiteMapHierarchicalDataSourceView GetHierarchicalDataSourceView() { 
            return new SiteMapHierarchicalDataSourceView(this);
        }

 
        public virtual IHierarchyData GetHierarchyData(object enumeratedItem) {
            return enumeratedItem as IHierarchyData; 
        } 

 
        public virtual int IndexOf(SiteMapNode value) {
            return List.IndexOf(value);
        }
 

        public virtual void Insert(int index, SiteMapNode value) { 
            if (value == null) { 
                throw new ArgumentNullException("value");
            } 

            List.Insert(index, value);
        }
 

        protected virtual void OnValidate(object value) { 
            if (value == null) { 
                throw new ArgumentNullException("value");
            } 

            if (!(value is SiteMapNode)) {
                throw new ArgumentException(
                    SR.GetString(SR.SiteMapNodeCollection_Invalid_Type, value.GetType().ToString())); 
            }
        } 
 

        public static SiteMapNodeCollection ReadOnly(SiteMapNodeCollection collection) { 
            if (collection == null) {
                throw new ArgumentNullException("collection");
            }
 
            return new ReadOnlySiteMapNodeCollection(collection);
        } 
 

        public virtual void Remove(SiteMapNode value) { 
            if (value == null) {
                throw new ArgumentNullException("value");
            }
 
            List.Remove(value);
        } 
 
        public virtual void RemoveAt(int index) {
            List.RemoveAt(index); 
        }

        #region ICollection implementation
        int ICollection.Count { 
            get {
                return Count; 
            } 
        }
 
        bool ICollection.IsSynchronized {
            get {
                return IsSynchronized;
            } 
        }
 
        object ICollection.SyncRoot { 
            get {
                return SyncRoot; 
            }
        }

        void ICollection.CopyTo(Array array, int index) { 
            CopyToInternal(array, index);
        } 
        #endregion 

        #region IEnumerable implementation 
        IEnumerator IEnumerable.GetEnumerator() {
            return GetEnumerator();
        }
        #endregion 

        #region IHierarchicalEnumerable implementation 
 
        /// 
        IHierarchyData IHierarchicalEnumerable.GetHierarchyData(object enumeratedItem) { 
            return GetHierarchyData(enumeratedItem);
        }
        #endregion
 
        #region IList implementation
        ///  
        bool IList.IsFixedSize { 
            get { return IsFixedSize; }
        } 

        /// 
        bool IList.IsReadOnly {
            get { return IsReadOnly; } 
        }
 
 
        /// 
        object IList.this[int index] { 
            get {
                return this[index];
            }
            set { 
                OnValidate(value);
                this[index] = (SiteMapNode)value; 
            } 
        }
 
        int IList.Add(object value) {
            OnValidate(value);
            return Add((SiteMapNode)value);
        } 

        void IList.Clear() { 
            Clear(); 
        }
 
        bool IList.Contains(object value) {
            OnValidate(value);
            return Contains((SiteMapNode)value);
        } 

        int IList.IndexOf(object value) { 
            OnValidate(value); 
            return IndexOf((SiteMapNode)value);
        } 

        void IList.Insert(int index, object value) {
            OnValidate(value);
            Insert(index, (SiteMapNode)value); 
        }
 
        void IList.Remove(object value) { 
            OnValidate(value);
            Remove((SiteMapNode)value); 
        }

        void IList.RemoveAt(int index) {
            RemoveAt(index); 
        }
        #endregion 
 
        private sealed class ReadOnlySiteMapNodeCollection : SiteMapNodeCollection {
            private SiteMapNodeCollection _internalCollection; 

            internal ReadOnlySiteMapNodeCollection(SiteMapNodeCollection collection) {
                if (collection == null) {
                    throw new ArgumentNullException("collection"); 
                }
 
                _internalCollection = collection; 
            }
 
            public override int Count {
                get {
                    return _internalCollection.Count;
                } 
            }
 
            public override bool IsFixedSize { 
                get { return true; }
            } 

            public override bool IsReadOnly {
                get { return true; }
            } 

            public override bool IsSynchronized { 
                get { 
                    return _internalCollection.IsSynchronized;
                } 
            }

            public override object SyncRoot {
                get { 
                    return _internalCollection.SyncRoot;
                } 
            } 

 
            public override int Add(SiteMapNode value) {
                throw new NotSupportedException(SR.GetString(SR.Collection_readonly));
            }
 

            public override void AddRange(SiteMapNode[] value) { 
                throw new NotSupportedException(SR.GetString(SR.Collection_readonly)); 
            }
 

            public override void AddRange(SiteMapNodeCollection value) {
                throw new NotSupportedException(SR.GetString(SR.Collection_readonly));
            } 

            public override void Clear() { 
                throw new NotSupportedException(SR.GetString(SR.Collection_readonly)); 
            }
 
            public override bool Contains(SiteMapNode node) {
                return _internalCollection.Contains(node);
            }
 
            internal override void CopyToInternal(Array array, int index) {
                _internalCollection.List.CopyTo(array, index); 
            } 

            public override SiteMapNode this[int index] { 
                get {
                    return _internalCollection[index];
                }
                set { 
                    throw new NotSupportedException(SR.GetString(SR.Collection_readonly));
                } 
            } 

            public override IEnumerator GetEnumerator() { 
                return _internalCollection.GetEnumerator();
            }

            public override int IndexOf(SiteMapNode value) { 
                return _internalCollection.IndexOf(value);
            } 
 
            public override void Insert(int index, SiteMapNode value) {
                throw new NotSupportedException(SR.GetString(SR.Collection_readonly)); 
            }

            public override void Remove(SiteMapNode value) {
                throw new NotSupportedException(SR.GetString(SR.Collection_readonly)); 
            }
 
            public override void RemoveAt(int index) { 
                throw new NotSupportedException(SR.GetString(SR.Collection_readonly));
            } 
        }
    }
}

// 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