diff options
Diffstat (limited to 'Emby.Common.Implementations/IO/SharpCifs/Util/Sharpen/AbstractMap.cs')
| -rw-r--r-- | Emby.Common.Implementations/IO/SharpCifs/Util/Sharpen/AbstractMap.cs | 297 |
1 files changed, 142 insertions, 155 deletions
diff --git a/Emby.Common.Implementations/IO/SharpCifs/Util/Sharpen/AbstractMap.cs b/Emby.Common.Implementations/IO/SharpCifs/Util/Sharpen/AbstractMap.cs index 45e7e2144..2868a840a 100644 --- a/Emby.Common.Implementations/IO/SharpCifs/Util/Sharpen/AbstractMap.cs +++ b/Emby.Common.Implementations/IO/SharpCifs/Util/Sharpen/AbstractMap.cs @@ -6,159 +6,146 @@ using System.Linq; namespace SharpCifs.Util.Sharpen { public abstract class AbstractMap<T, TU> : IDictionary<T, TU> - { - public virtual void Clear() - { - EntrySet().Clear(); - } - - public virtual bool ContainsKey(object name) - { - return EntrySet().Any(p => p.Key.Equals((T)name)); - } - - public abstract ICollection<KeyValuePair<T, TU>> EntrySet(); - - public virtual TU Get(object key) - { - return EntrySet().Where(p => p.Key.Equals(key)).Select(p => p.Value).FirstOrDefault(); - } - - protected virtual IEnumerator<KeyValuePair<T, TU>> InternalGetEnumerator() - { - return EntrySet().GetEnumerator(); - } - - public virtual bool IsEmpty() - { - return !EntrySet().Any(); - } - - public virtual TU Put(T key, TU value) - { - throw new NotSupportedException(); - } - - public virtual TU Remove(object key) - { - Iterator<TU> iterator = EntrySet() as Iterator<TU>; - if (iterator == null) - { - throw new NotSupportedException(); - } - while (iterator.HasNext()) - { - TU local = iterator.Next(); - if (local.Equals((T)key)) - { - iterator.Remove(); - return local; - } - } - return default(TU); - } - - void ICollection<KeyValuePair<T, TU>>.Add(KeyValuePair<T, TU> item) - { - Put(item.Key, item.Value); - } - - bool ICollection<KeyValuePair<T, TU>>.Contains(KeyValuePair<T, TU> item) - { - throw new NotImplementedException(); - } - - void ICollection<KeyValuePair<T, TU>>.CopyTo(KeyValuePair<T, TU>[] array, int arrayIndex) - { - EntrySet().CopyTo(array, arrayIndex); - } - - bool ICollection<KeyValuePair<T, TU>>.Remove(KeyValuePair<T, TU> item) - { - Remove(item.Key); - return true; - } - - void IDictionary<T, TU>.Add(T key, TU value) - { - Put(key, value); - } - - bool IDictionary<T, TU>.ContainsKey(T key) - { - return ContainsKey(key); - } - - bool IDictionary<T, TU>.Remove(T key) - { - if (ContainsKey(key)) - { - Remove(key); - return true; - } - return false; - } - - bool IDictionary<T, TU>.TryGetValue(T key, out TU value) - { - if (ContainsKey(key)) - { - value = Get(key); - return true; - } - value = default(TU); - return false; - } - - IEnumerator<KeyValuePair<T, TU>> IEnumerable<KeyValuePair<T, TU>>.GetEnumerator() - { - return InternalGetEnumerator(); - } - - IEnumerator IEnumerable.GetEnumerator() - { - return InternalGetEnumerator(); - } - - public virtual int Count - { - get { return EntrySet().Count; } - } - - public TU this[T key] - { - get { return Get(key); } - set { Put(key, value); } - } - - public virtual IEnumerable<T> Keys - { - get { return EntrySet().Select(p => p.Key); } - } - - int ICollection<KeyValuePair<T, TU>>.Count - { - get { return Count; } - } - - bool ICollection<KeyValuePair<T, TU>>.IsReadOnly - { - get { return false; } - } - - ICollection<T> IDictionary<T, TU>.Keys - { - get { return Keys.ToList(); } - } - - ICollection<TU> IDictionary<T, TU>.Values - { - get { return Values.ToList(); } - } - - public virtual IEnumerable<TU> Values - { - get { return EntrySet().Select(p => p.Value); } - } - } + { + public virtual void Clear () + { + EntrySet ().Clear (); + } + + public virtual bool ContainsKey (object name) + { + return EntrySet ().Any (p => p.Key.Equals ((T)name)); + } + + public abstract ICollection<KeyValuePair<T, TU>> EntrySet (); + + public virtual TU Get (object key) + { + return EntrySet ().Where (p => p.Key.Equals (key)).Select (p => p.Value).FirstOrDefault (); + } + + protected virtual IEnumerator<KeyValuePair<T, TU>> InternalGetEnumerator () + { + return EntrySet ().GetEnumerator (); + } + + public virtual bool IsEmpty () + { + return !EntrySet ().Any (); + } + + public virtual TU Put (T key, TU value) + { + throw new NotSupportedException (); + } + + public virtual TU Remove (object key) + { + Iterator<TU> iterator = EntrySet () as Iterator<TU>; + if (iterator == null) { + throw new NotSupportedException (); + } + while (iterator.HasNext ()) { + TU local = iterator.Next (); + if (local.Equals ((T)key)) { + iterator.Remove (); + return local; + } + } + return default(TU); + } + + void ICollection<KeyValuePair<T, TU>>.Add (KeyValuePair<T, TU> item) + { + Put (item.Key, item.Value); + } + + bool ICollection<KeyValuePair<T, TU>>.Contains (KeyValuePair<T, TU> item) + { + throw new NotImplementedException (); + } + + void ICollection<KeyValuePair<T, TU>>.CopyTo (KeyValuePair<T, TU>[] array, int arrayIndex) + { + EntrySet ().CopyTo (array, arrayIndex); + } + + bool ICollection<KeyValuePair<T, TU>>.Remove (KeyValuePair<T, TU> item) + { + Remove (item.Key); + return true; + } + + void IDictionary<T, TU>.Add (T key, TU value) + { + Put (key, value); + } + + bool IDictionary<T, TU>.ContainsKey (T key) + { + return ContainsKey (key); + } + + bool IDictionary<T, TU>.Remove (T key) + { + if (ContainsKey (key)) { + Remove (key); + return true; + } + return false; + } + + bool IDictionary<T, TU>.TryGetValue (T key, out TU value) + { + if (ContainsKey (key)) { + value = Get (key); + return true; + } + value = default(TU); + return false; + } + + IEnumerator<KeyValuePair<T, TU>> IEnumerable<KeyValuePair<T, TU>>.GetEnumerator () + { + return InternalGetEnumerator (); + } + + IEnumerator IEnumerable.GetEnumerator () + { + return InternalGetEnumerator (); + } + + public virtual int Count { + get { return EntrySet ().Count; } + } + + public TU this[T key] { + get { return Get (key); } + set { Put (key, value); } + } + + public virtual IEnumerable<T> Keys { + get { return EntrySet ().Select (p => p.Key); } + } + + int ICollection<KeyValuePair<T, TU>>.Count { + get { return Count; } + } + + bool ICollection<KeyValuePair<T, TU>>.IsReadOnly { + get { return false; } + } + + ICollection<T> IDictionary<T, TU>.Keys { + get { return Keys.ToList (); } + } + + ICollection<TU> IDictionary<T, TU>.Values { + get { return Values.ToList (); } + } + + public virtual IEnumerable<TU> Values { + get { return EntrySet ().Select (p => p.Value); } + } + } } |
