ObjectPersistData.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 / xsp / System / Web / UI / ObjectPersistData.cs / 1305376 / ObjectPersistData.cs

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

namespace System.Web.UI { 
    using System.Collections; 
    using System.Collections.Specialized;
    using System.Web.Util; 
    using System.Security.Permissions;

    public class ObjectPersistData {
        private Type _objectType; 

        private bool _isCollection; 
        private ArrayList _collectionItems; 

        private bool _localize; 
        private string _resourceKey;

        private IDictionary _propertyTableByFilter;
        private IDictionary _propertyTableByProperty; 
        private ArrayList _allPropertyEntries;
 
        private ArrayList _eventEntries; 

        private IDictionary _builtObjects; 


        public ObjectPersistData(ControlBuilder builder, IDictionary builtObjects) {
            _objectType = builder.ControlType; 
            _localize = builder.Localize;
            _resourceKey = builder.GetResourceKey(); 
 
            _builtObjects = builtObjects;
 
            if (typeof(ICollection).IsAssignableFrom(_objectType)) {
                _isCollection = true;
            }
 
            _collectionItems = new ArrayList();
            _propertyTableByFilter = new HybridDictionary(true); 
            _propertyTableByProperty = new HybridDictionary(true); 
            _allPropertyEntries = new ArrayList();
            _eventEntries = new ArrayList(); 

            foreach (PropertyEntry entry in builder.SimplePropertyEntries) {
                AddPropertyEntry(entry);
            } 

            foreach (PropertyEntry entry in builder.ComplexPropertyEntries) { 
                AddPropertyEntry(entry); 
            }
 
            foreach (PropertyEntry entry in builder.TemplatePropertyEntries) {
                AddPropertyEntry(entry);
            }
 
            foreach (PropertyEntry entry in builder.BoundPropertyEntries) {
                AddPropertyEntry(entry); 
            } 

            foreach (EventEntry entry in builder.EventEntries) { 
                AddEventEntry(entry);
            }
        }
 

        ///  
        /// Get all property entries 
        /// 
        public ICollection AllPropertyEntries { 
            get {
                return _allPropertyEntries;
            }
        } 

        public IDictionary BuiltObjects { 
            get { 
                return _builtObjects;
            } 
        }


        public ICollection CollectionItems { 
            get {
                return _collectionItems; 
            } 
        }
 

        public ICollection EventEntries {
            get {
                return _eventEntries; 
            }
        } 
 

        ///  
        /// True if this persistence data is for a collection
        /// 
        public bool IsCollection {
            get { 
                return _isCollection;
            } 
        } 

        public bool Localize { 
            get {
                return _localize;
            }
        } 

 
        ///  
        /// The type of the object with these properties.
        ///  
        public Type ObjectType {
            get {
                return _objectType;
            } 
        }
 
        public string ResourceKey { 
            get {
                return _resourceKey; 
            }
        }

        ///  
        /// Adds a property to this persistence data, adding it to all necessary
        /// data structures. 
        ///  
        private void AddPropertyEntry(PropertyEntry entry) {
            if (_isCollection && (entry is ComplexPropertyEntry && ((ComplexPropertyEntry)entry).IsCollectionItem)) { 
                _collectionItems.Add(entry);
            }
            else {
                IDictionary filteredProperties = (IDictionary)_propertyTableByFilter[entry.Filter]; 
                if (filteredProperties == null) {
                    filteredProperties = new HybridDictionary(true); 
                    _propertyTableByFilter[entry.Filter] = filteredProperties; 
                }
 
                Debug.Assert((entry.Name != null) && (entry.Name.Length > 0));
                filteredProperties[entry.Name] = entry;

                ArrayList properties = (ArrayList)_propertyTableByProperty[entry.Name]; 
                if (properties == null) {
                    properties = new ArrayList(); 
                    _propertyTableByProperty[entry.Name] = properties; 
                }
 
                properties.Add(entry);
            }

 
            _allPropertyEntries.Add(entry);
        } 
 
        private void AddEventEntry(EventEntry entry) {
            _eventEntries.Add(entry); 
        }


        ///  
        /// 
        public void AddToObjectControlBuilderTable(IDictionary table) { 
            if (_builtObjects != null) { 
                foreach (DictionaryEntry entry in _builtObjects) {
                    table[entry.Key] = entry.Value; 
                }
            }
        }
 

        ///  
        /// Gets a PropertyEntry for the specified filter and property name 
        /// 
        public PropertyEntry GetFilteredProperty(string filter, string name) { 
            IDictionary filteredProperties = GetFilteredProperties(filter);
            if (filteredProperties != null) {
                return (PropertyEntry)filteredProperties[name];
            } 

            return null; 
        } 

 
        /// 
        /// Gets all PropertyEntries for the specified filter
        /// 
        public IDictionary GetFilteredProperties(string filter) { 
            return (IDictionary)_propertyTableByFilter[filter];
        } 
 

        ///  
        /// Gets all filtered PropertiesEntries for a specified property (name uses dot-syntax e.g. Font.Bold)
        /// 
        public ICollection GetPropertyAllFilters(string name) {
            ICollection properties = (ICollection)_propertyTableByProperty[name]; 
            if (properties == null) {
                return new ArrayList(); 
            } 

            return properties; 
        }
    }

} 

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

namespace System.Web.UI { 
    using System.Collections; 
    using System.Collections.Specialized;
    using System.Web.Util; 
    using System.Security.Permissions;

    public class ObjectPersistData {
        private Type _objectType; 

        private bool _isCollection; 
        private ArrayList _collectionItems; 

        private bool _localize; 
        private string _resourceKey;

        private IDictionary _propertyTableByFilter;
        private IDictionary _propertyTableByProperty; 
        private ArrayList _allPropertyEntries;
 
        private ArrayList _eventEntries; 

        private IDictionary _builtObjects; 


        public ObjectPersistData(ControlBuilder builder, IDictionary builtObjects) {
            _objectType = builder.ControlType; 
            _localize = builder.Localize;
            _resourceKey = builder.GetResourceKey(); 
 
            _builtObjects = builtObjects;
 
            if (typeof(ICollection).IsAssignableFrom(_objectType)) {
                _isCollection = true;
            }
 
            _collectionItems = new ArrayList();
            _propertyTableByFilter = new HybridDictionary(true); 
            _propertyTableByProperty = new HybridDictionary(true); 
            _allPropertyEntries = new ArrayList();
            _eventEntries = new ArrayList(); 

            foreach (PropertyEntry entry in builder.SimplePropertyEntries) {
                AddPropertyEntry(entry);
            } 

            foreach (PropertyEntry entry in builder.ComplexPropertyEntries) { 
                AddPropertyEntry(entry); 
            }
 
            foreach (PropertyEntry entry in builder.TemplatePropertyEntries) {
                AddPropertyEntry(entry);
            }
 
            foreach (PropertyEntry entry in builder.BoundPropertyEntries) {
                AddPropertyEntry(entry); 
            } 

            foreach (EventEntry entry in builder.EventEntries) { 
                AddEventEntry(entry);
            }
        }
 

        ///  
        /// Get all property entries 
        /// 
        public ICollection AllPropertyEntries { 
            get {
                return _allPropertyEntries;
            }
        } 

        public IDictionary BuiltObjects { 
            get { 
                return _builtObjects;
            } 
        }


        public ICollection CollectionItems { 
            get {
                return _collectionItems; 
            } 
        }
 

        public ICollection EventEntries {
            get {
                return _eventEntries; 
            }
        } 
 

        ///  
        /// True if this persistence data is for a collection
        /// 
        public bool IsCollection {
            get { 
                return _isCollection;
            } 
        } 

        public bool Localize { 
            get {
                return _localize;
            }
        } 

 
        ///  
        /// The type of the object with these properties.
        ///  
        public Type ObjectType {
            get {
                return _objectType;
            } 
        }
 
        public string ResourceKey { 
            get {
                return _resourceKey; 
            }
        }

        ///  
        /// Adds a property to this persistence data, adding it to all necessary
        /// data structures. 
        ///  
        private void AddPropertyEntry(PropertyEntry entry) {
            if (_isCollection && (entry is ComplexPropertyEntry && ((ComplexPropertyEntry)entry).IsCollectionItem)) { 
                _collectionItems.Add(entry);
            }
            else {
                IDictionary filteredProperties = (IDictionary)_propertyTableByFilter[entry.Filter]; 
                if (filteredProperties == null) {
                    filteredProperties = new HybridDictionary(true); 
                    _propertyTableByFilter[entry.Filter] = filteredProperties; 
                }
 
                Debug.Assert((entry.Name != null) && (entry.Name.Length > 0));
                filteredProperties[entry.Name] = entry;

                ArrayList properties = (ArrayList)_propertyTableByProperty[entry.Name]; 
                if (properties == null) {
                    properties = new ArrayList(); 
                    _propertyTableByProperty[entry.Name] = properties; 
                }
 
                properties.Add(entry);
            }

 
            _allPropertyEntries.Add(entry);
        } 
 
        private void AddEventEntry(EventEntry entry) {
            _eventEntries.Add(entry); 
        }


        ///  
        /// 
        public void AddToObjectControlBuilderTable(IDictionary table) { 
            if (_builtObjects != null) { 
                foreach (DictionaryEntry entry in _builtObjects) {
                    table[entry.Key] = entry.Value; 
                }
            }
        }
 

        ///  
        /// Gets a PropertyEntry for the specified filter and property name 
        /// 
        public PropertyEntry GetFilteredProperty(string filter, string name) { 
            IDictionary filteredProperties = GetFilteredProperties(filter);
            if (filteredProperties != null) {
                return (PropertyEntry)filteredProperties[name];
            } 

            return null; 
        } 

 
        /// 
        /// Gets all PropertyEntries for the specified filter
        /// 
        public IDictionary GetFilteredProperties(string filter) { 
            return (IDictionary)_propertyTableByFilter[filter];
        } 
 

        ///  
        /// Gets all filtered PropertiesEntries for a specified property (name uses dot-syntax e.g. Font.Bold)
        /// 
        public ICollection GetPropertyAllFilters(string name) {
            ICollection properties = (ICollection)_propertyTableByProperty[name]; 
            if (properties == null) {
                return new ArrayList(); 
            } 

            return properties; 
        }
    }

} 

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