protected virtual void AddExtensionData(Extension extension, T extensionData) { using (var locker = ExtensionDatas.Lock()) { if (!locker.ContainsKey(extension)) { locker[extension] = new List <T>(); } locker[extension].Add(extensionData); } }
public T GetFirstOrDefaultExtensionData(IBundle bundle) { T data = default(T); ExtensionDatas.ForEach(delegate(KeyValuePair <Extension, List <T> > item) { if (item.Key.Owner.Equals(bundle) && (item.Value.Count > 0)) { data = item.Value[0]; } }); return(data); }
public List <T> GetExtensionDatas(IBundle bundle) { var result = new List <T>(); ExtensionDatas.ForEach(delegate(KeyValuePair <Extension, List <T> > item) { if (item.Key.Owner.Equals(bundle)) { result.AddRange(item.Value); } }); return(result); }
protected virtual void ClearExtensionDatas() { ExtensionDatas.ForEach(item => item.Value.Clear()); ExtensionDatas.Clear(); }
protected virtual void RemoveExtensionDatas(Extension extension) { ExtensionDatas.Remove(extension); }