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

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

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

revision 92 by william, Sun Mar 10 08:21:30 2013 UTC revision 118 by william, Sun Mar 10 17:41:52 2013 UTC
# Line 6  using libxmltv.Interfaces; Line 6  using libxmltv.Interfaces;
6    
7  namespace libxmltv.Core  namespace libxmltv.Core
8  {  {
9      public class PropertyList : PropertyList<string, object>, IPropertyList { }      [Serializable]
10      public class PropertyList<TKey, TValue> : IPropertyList<PropertyValuePair<TKey, TValue>>      internal class PropertyList : PropertyList<string, object>, IPropertyList
11      {      {
12          private List<List<PropertyValuePair<TKey, TValue>>> properties;          public PropertyList() :base() { }
13            public PropertyList(IEnumerable<IPropertyValuePair<string, object>> collection) : base(collection) { }
14          public PropertyList() { properties = new List<List<PropertyValuePair<TKey, TValue>>>(); }          public PropertyList(int capacity) : base(capacity) { }
15          public PropertyList(IEnumerable<List<PropertyValuePair<TKey, TValue>>> collection) { properties = new List<List<PropertyValuePair<TKey, TValue>>>(collection); }      }
16          public PropertyList(int capacity) { properties = new List<List<PropertyValuePair<TKey, TValue>>>(); }      [Serializable]
17        internal class PropertyList<TKey, TValue> : IPropertyList<TKey, TValue>
18        {
19          public PropertyValuePair<TKey, TValue> this[int index]          private PropertyCollection<IPropertyValuePair<TKey, TValue>> properties;
20            public PropertyList() { properties = new PropertyCollection<IPropertyValuePair<TKey, TValue>>(); }
21            public PropertyList(IEnumerable<IPropertyValuePair<TKey, TValue>> collection) : this() { foreach (var p in collection) { properties.AddProperty(p); } }
22            public PropertyList(int capacity)
23            {
24                properties = new PropertyCollection<IPropertyValuePair<TKey, TValue>>();
25            }
26            public IPropertyValuePair<TKey, TValue> this[int index] { get { return properties.ToList()[index]; } set { properties.ToList()[index] = value; } }
27            public IEnumerable<IPropertyValuePair<TKey, TValue>> this[TKey name]
28          {          {
29              get              get
30              {              {
31                  throw new NotImplementedException();                  var list = properties.ToList().FindAll(s => s.Name.Equals(name));
32              }                  if (list == null)
33              set                  {
34              {                      throw new NullReferenceException(string.Format("Could not find any properties named '{0}'", name));
35                  throw new NotImplementedException();                  }
36                    return list;
37              }              }
38          }          }
39            public int IndexOfProperty(IPropertyValuePair<TKey, TValue> item) { return properties.ToList().IndexOf(item); }
40          public int IndexOfProperty(PropertyValuePair<TKey, TValue> item)          public void InsertPropertyAtIndex(int index, IPropertyValuePair<TKey, TValue> item) { properties.ToList().Insert(index, item); }
41          {          public void RemovePropertyAt(int index) { properties.RemoveProperty(this[index]); }
42              throw new NotImplementedException();          public int PropertyCount { get { return properties.PropertyCount; } }
         }  
   
         public void InsertPropertyAtIndex(int index, PropertyValuePair<TKey, TValue> item)  
         {  
             throw new NotImplementedException();  
         }  
   
         public void RemovePropertyAt(int index)  
         {  
             throw new NotImplementedException();  
         }  
   
         public int PropertyCount  
         {  
             get { throw new NotImplementedException(); }  
         }  
   
43          public bool IsReadOnly          public bool IsReadOnly
44          {          {
45              get { throw new NotImplementedException(); }              get
46          }              {
47                    IPropertyCollection<IPropertyValuePair<TKey, TValue>> collection = (properties as IPropertyCollection<IPropertyValuePair<TKey, TValue>>);
48          public void AddProperty(PropertyValuePair<TKey, TValue> item)                  if(collection == null)
49          {                  {
50              throw new NotImplementedException();                      throw new InvalidCastException(string.Format("Unable to cast: '{0}' to '{1}'", properties.GetType().Name, typeof(IPropertyCollection<PropertyValuePair<TKey, TValue>>).Name));
51          }                  }
52                    return collection.IsReadOnly;
53          public void ClearProperties()              }
         {  
             throw new NotImplementedException();  
         }  
   
         public bool ContainsProperty(PropertyValuePair<TKey, TValue> item)  
         {  
             throw new NotImplementedException();  
         }  
   
         public void CopyPropertiesTo(PropertyValuePair<TKey, TValue>[] array, int arrayIndex)  
         {  
             throw new NotImplementedException();  
         }  
   
         public bool RemoveProperty(PropertyValuePair<TKey, TValue> item)  
         {  
             throw new NotImplementedException();  
         }  
   
         public IEnumerator<PropertyValuePair<TKey, TValue>> GetEnumerator()  
         {  
             throw new NotImplementedException();  
         }  
   
         System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()  
         {  
             throw new NotImplementedException();  
54          }          }
55            public void AddProperty(IPropertyValuePair<TKey, TValue> item) { properties.AddProperty(item); }
56            public void ClearProperties() { properties.ClearProperties(); }
57            public bool ContainsProperty(IPropertyValuePair<TKey, TValue> item) { return properties.Contains(item); }
58            public void CopyPropertiesTo(IPropertyValuePair<TKey, TValue>[] array, int arrayIndex) { properties.CopyPropertiesTo(array, arrayIndex); }
59            public bool RemoveProperty(IPropertyValuePair<TKey, TValue> item) { return properties.RemoveProperty(item); }
60            public IEnumerator<IPropertyValuePair<TKey, TValue>> GetEnumerator() { return properties.GetEnumerator(); }
61            System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return this.GetEnumerator(); }
62    
63    
64            public bool ContainsProperty(TKey name, TValue value) { return ContainsProperty(new PropertyValuePair<TKey, TValue>(name, value)); }
65            public void AddProperty(TKey name, TValue value) { AddProperty(new PropertyValuePair<TKey, TValue>(name, value)); }
66            public void RemoveProperty(TKey name, TValue value) { RemoveProperty(new PropertyValuePair<TKey, TValue>(name, value)); }
67    
68          IEnumerator<List<PropertyValuePair<TKey, TValue>>> IEnumerable<List<PropertyValuePair<TKey, TValue>>>.GetEnumerator()          public override string ToString()
69          {          {
70              throw new NotImplementedException();              return string.Format("Property Count: {0}", PropertyCount);
71          }          }
72      }      }
73  }  }

Legend:
Removed from v.92  
changed lines
  Added in v.118

  ViewVC Help
Powered by ViewVC 1.1.22