public override void Promote(FrugalMapBase newMap) { if (newMap.InsertEntry(this._entry0.Key, this._entry0.Value) != FrugalMapStoreState.Success) { throw new ArgumentException(string.Format("FrugalMap_TargetMapCannotHoldAllData: {0}, {1}, {2}", new object[3] { (object)this.ToString(), (object)newMap.ToString(), (object)nameof(newMap) })); } if (newMap.InsertEntry(this._entry1.Key, this._entry1.Value) != FrugalMapStoreState.Success) { throw new ArgumentException(string.Format("FrugalMap_TargetMapCannotHoldAllData: {0}, {1}, {2}", new object[3] { (object)this.ToString(), (object)newMap.ToString(), (object)nameof(newMap) })); } if (newMap.InsertEntry(this._entry2.Key, this._entry2.Value) != FrugalMapStoreState.Success) { throw new ArgumentException(string.Format("FrugalMap_TargetMapCannotHoldAllData: {0}, {1}, {2}", new object[3] { (object)this.ToString(), (object)newMap.ToString(), (object)nameof(newMap) })); } }
public override void Promote(FrugalMapBase newMap) { for (int index = 0; index < this._entries.Length; ++index) { if (newMap.InsertEntry(this._entries[index].Key, this._entries[index].Value) != FrugalMapStoreState.Success) throw new ArgumentException(string.Format("FrugalMap_TargetMapCannotHoldAllData: {0}, {1}, {2}", new object[3] { (object) this.ToString(), (object) newMap.ToString(), (object) nameof (newMap) })); } }
public object this[int key] { get { if (this._mapStore != null) { return(this._mapStore.Search(key)); } return(RadProperty.UnsetValue); } set { if (value != RadProperty.UnsetValue) { if (this._mapStore == null) { this._mapStore = (FrugalMapBase) new SingleObjectMap(); } FrugalMapStoreState frugalMapStoreState = this._mapStore.InsertEntry(key, value); if (frugalMapStoreState == FrugalMapStoreState.Success) { return; } FrugalMapBase newMap; if (FrugalMapStoreState.ThreeObjectMap == frugalMapStoreState) { newMap = (FrugalMapBase) new ThreeObjectMap(); } else if (FrugalMapStoreState.SixObjectMap == frugalMapStoreState) { newMap = (FrugalMapBase) new SixObjectMap(); } else if (FrugalMapStoreState.Array == frugalMapStoreState) { newMap = (FrugalMapBase) new ArrayObjectMap(); } else if (FrugalMapStoreState.SortedArray == frugalMapStoreState) { newMap = (FrugalMapBase) new SortedObjectMap(); } else { if (FrugalMapStoreState.Hashtable != frugalMapStoreState) { throw new InvalidOperationException("CannotPromoteBeyondHashtable"); } newMap = (FrugalMapBase) new HashObjectMap(); } this._mapStore.Promote(newMap); this._mapStore = newMap; int num = (int)this._mapStore.InsertEntry(key, value); } else { if (this._mapStore == null) { return; } this._mapStore.RemoveEntry(key); if (this._mapStore.Count != 0) { return; } this._mapStore = (FrugalMapBase)null; } } }
public abstract void Promote(FrugalMapBase newMap);