/[xmltv_parser]/trunk/libxmltv/Interfaces/Interfaces.cs
ViewVC logotype

Diff of /trunk/libxmltv/Interfaces/Interfaces.cs

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

--- trunk/libxmltv/Interfaces/Interfaces.cs	2013/03/10 10:34:07	100
+++ trunk/libxmltv/Interfaces/Interfaces.cs	2013/03/10 11:35:26	105
@@ -44,6 +44,12 @@
         PropertyDictionary MetaData { get; }
     }
 
+    public interface IExtraMetaData
+    {
+    }
+    //public interface IExtraMetaData : IPro
+    //{
+    //}
     public interface IXMLTVProgramCollection : IXMLTVDictionaryCollection<string, IXMLTVProgram> { }
     public interface IXMLTVChannelCollection : IXMLTVDictionaryCollection<string, IXMLTVChannel> { }
     public interface IXMLTVDictionaryCollection<TKey, TValue> { Dictionary<TKey, TValue> Collection { get; } }
@@ -103,7 +109,7 @@
 
 #region Property Dictionary support
     public interface IPropertyDictionary : IPropertyDictionary<string,object> { }
-    public interface IPropertyDictionary<TKey, TValue> : IPropertyCollection<PropertyValuePair<TKey, TValue>>, IEnumerable<PropertyValuePair<TKey, TValue>>, IEnumerable
+    public interface IPropertyDictionary<TKey, TValue> : IPropertyCollection<IPropertyValuePair<TKey, TValue>>, IEnumerable<IPropertyValuePair<TKey, TValue>>, IEnumerable
     {
         IPropertyCollection<TKey> PropertyKeys { get; }
         IPropertyCollection<TValue> PropertyValues { get; }        
@@ -126,13 +132,13 @@
 #endregion
 #region Property List support
     public interface IPropertyList : IPropertyList<string, object> { }
-    public interface IPropertyList<TKey, TValue> : IPropertyCollection<PropertyValuePair<TKey, TValue>>, IEnumerable<PropertyValuePair<TKey, TValue>>, IEnumerable
+    public interface IPropertyList<TKey, TValue> : IPropertyCollection<IPropertyValuePair<TKey, TValue>>, IEnumerable<IPropertyValuePair<TKey, TValue>>, IEnumerable
     {
-        PropertyValuePair<TKey, TValue> this[int index] { get; set; }
-        IEnumerable<PropertyValuePair<TKey, TValue>> this[TKey name] { get; }//set; }
+        IPropertyValuePair<TKey, TValue> this[int index] { get; set; }
+        IEnumerable<IPropertyValuePair<TKey, TValue>> this[TKey name] { get; }//set; }
 
-        int IndexOfProperty(PropertyValuePair<TKey, TValue> item);
-        void InsertPropertyAtIndex(int index, PropertyValuePair<TKey, TValue> item);
+        int IndexOfProperty(IPropertyValuePair<TKey, TValue> item);
+        void InsertPropertyAtIndex(int index, IPropertyValuePair<TKey, TValue> item);
         void RemovePropertyAt(int index);
 
         bool ContainsProperty(TKey name, TValue value);
@@ -142,15 +148,23 @@
 #endregion
 
     #region PropertyValuePair support
-    public class PropertyValuePair : PropertyValuePair<string, object>
+
+    public interface IPropertyValuePair : IPropertyValuePair<string,object>    {
+    }
+    public interface IPropertyValuePair<TKey, TValue>
+    {
+        TKey Name { get; }
+        TValue Value { get; }
+    }
+    internal class PropertyValuePair : PropertyValuePair<string, object>, IPropertyValuePair
     {
         public PropertyValuePair() :base() { }
         public PropertyValuePair(string name, object value) : base(name,value) { }
     }
-    public class PropertyValuePair<TKey, TValue>
+    internal class PropertyValuePair<TKey, TValue> : IPropertyValuePair<TKey,TValue>
     {
         #region KeyValuePair support
-        public static implicit operator PropertyValuePair<TKey, TValue>(KeyValuePair<TKey, TValue> i) { return new PropertyValuePair<TKey, TValue>(i.Key, i.Value); }
+        public static implicit operator PropertyValuePair<TKey, TValue>(KeyValuePair<TKey, TValue> i) { return new PropertyValuePair<TKey, TValue>(i.Key, i.Value); }        
         public static implicit operator KeyValuePair<TKey, TValue>(PropertyValuePair<TKey, TValue> i) { return new KeyValuePair<TKey, TValue>(i.Name, i.Value); }
         #endregion
         public PropertyValuePair() : this(default(TKey),default(TValue)) { }

 

  ViewVC Help
Powered by ViewVC 1.1.22