/[xmltv_parser]/trunk/libxmltv/Core/PropertyDictionary.cs
ViewVC logotype

Diff of /trunk/libxmltv/Core/PropertyDictionary.cs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

--- trunk/libxmltv/Core/PropertyDictionary.cs	2013/03/10 10:13:16	98
+++ trunk/libxmltv/Core/PropertyDictionary.cs	2013/03/10 17:41:52	118
@@ -10,8 +10,8 @@
 
 namespace libxmltv.Core
 {
-
-    public class PropertyCollection<T> : IPropertyCollection<T>
+    [Serializable]
+    internal class PropertyCollection<T> : IPropertyCollection<T>
     {
         private List<T> items = new List<T>();
         public PropertyCollection() : this(new List<T>()) { }
@@ -38,8 +38,14 @@
         public bool RemoveProperty(T item) { return items.Remove(item); }
         public IEnumerator<T> GetEnumerator() { return items.GetEnumerator(); }
         System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return items.GetEnumerator(); }
+
+        public override string ToString()
+        {
+            return string.Format("Property Count: {0}", PropertyCount);
+        }
     }
-    public class PropertyDictionary : PropertyDictionary<string, object>, IPropertyDictionary
+    [Serializable]
+    internal class PropertyDictionary : PropertyDictionary<string, object>, IPropertyDictionary
     {
         public PropertyDictionary() : base() { }
         public PropertyDictionary(IPropertyDictionary dictionary) : base(dictionary) { }
@@ -49,7 +55,8 @@
         public PropertyDictionary(int capacity, IEqualityComparer<string> comparer) : base(capacity, comparer) { }
         protected PropertyDictionary(SerializationInfo info, StreamingContext context) : base(info, context) { }
     }
-    public class PropertyDictionary<TKey, TValue> : IPropertyDictionary<TKey, TValue>
+    [Serializable]
+    internal class PropertyDictionary<TKey, TValue> : IPropertyDictionary<TKey, TValue>
     {
         [StructLayout(LayoutKind.Sequential)]
         private struct Entry
@@ -58,6 +65,10 @@
             public int next;
             public TKey name;
             public TValue value;
+            public override string ToString()
+            {
+                return new PropertyValuePair<TKey, TValue>(name, value).ToString();
+            }
         }
         private Entry[] entries
         {
@@ -141,24 +152,28 @@
                 return collection.IsReadOnly;
             }
         }
-        public void AddProperty(PropertyValuePair<TKey, TValue> item) { AddProperty(item.Name, item.Value); }
+        public void AddProperty(IPropertyValuePair<TKey, TValue> item) { AddProperty(item.Name, item.Value); }
         public void ClearProperties() { properties.Clear(); }
-        public bool ContainsProperty(PropertyValuePair<TKey, TValue> item) { return ContainsProperty(item.Name); }
-        public void CopyPropertiesTo(PropertyValuePair<TKey, TValue>[] array, int arrayIndex) 
+        public bool ContainsProperty(IPropertyValuePair<TKey, TValue> item) { return ContainsProperty(item.Name); }
+        public void CopyPropertiesTo(IPropertyValuePair<TKey, TValue>[] array, int arrayIndex) 
         {
-            var list = properties.ToList().Cast<PropertyValuePair<TKey, TValue>>().ToList();
+            var list = properties.ToList().Cast<IPropertyValuePair<TKey, TValue>>().ToList();
             list.CopyTo(array, arrayIndex); 
         }
-        public bool RemoveProperty(PropertyValuePair<TKey, TValue> item) { return RemoveProperty(item.Name); }
-        IEnumerator<PropertyValuePair<TKey, TValue>> IEnumerable<PropertyValuePair<TKey, TValue>>.GetEnumerator() { return new PropertyDictionaryEnumerator(this, 2); }
+        public bool RemoveProperty(IPropertyValuePair<TKey, TValue> item) { return RemoveProperty(item.Name); }
+        IEnumerator<IPropertyValuePair<TKey, TValue>> IEnumerable<IPropertyValuePair<TKey, TValue>>.GetEnumerator() { return new PropertyDictionaryEnumerator(this, 2); }
         System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return properties.GetEnumerator(); }
 
+        public override string ToString()
+        {
+            return string.Format("Property Count: {0}", PropertyCount);
+        }
         #region enumerator support
-        public class PropertyDictionaryEnumerator: IEnumerator<PropertyValuePair<TKey,TValue>>, IDisposable
+        public class PropertyDictionaryEnumerator : IEnumerator<IPropertyValuePair<TKey, TValue>>, IDisposable
         {
             private PropertyDictionary<TKey, TValue> dictionary;
             private int index;
-            private PropertyValuePair<TKey, TValue> current;
+            private IPropertyValuePair<TKey, TValue> current;
             private int getEnumeratorRetType;
             internal const int DictEntry = 1;
             internal const int KeyValuePair = 2;
@@ -172,7 +187,7 @@
                 this.current = new PropertyValuePair<TKey, TValue>();
             }
 
-            public PropertyValuePair<TKey, TValue> Current
+            public IPropertyValuePair<TKey, TValue> Current
             {
                 get { return this.current; }
             }
@@ -207,7 +222,7 @@
                 {
                     if (this.dictionary.entries[this.index].hashCode >= 0)
                     {
-                        this.current = new KeyValuePair<TKey, TValue>(this.dictionary.entries[this.index].name, this.dictionary.entries[this.index].value);
+                        this.current =(IPropertyValuePair<TKey,TValue>)(PropertyValuePair<TKey,TValue>)new KeyValuePair<TKey, TValue>(this.dictionary.entries[this.index].name, this.dictionary.entries[this.index].value);
                         this.index++;
                         return true;
                     }
@@ -224,7 +239,7 @@
                     ThrowHelper.ThrowInvalidOperationException(ExceptionResource.InvalidOperation_EnumFailedVersion);
                 }
                 this.index = 0;
-                this.current = new KeyValuePair<TKey, TValue>();
+                this.current = (IPropertyValuePair<TKey, TValue>)(PropertyValuePair<TKey, TValue>)new KeyValuePair<TKey, TValue>();
             }
         }
         #endregion   

 

  ViewVC Help
Powered by ViewVC 1.1.22