Пример #1
0
 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)
         }));
     }
 }
Пример #2
0
 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)
       }));
   }
 }
Пример #3
0
 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;
         }
     }
 }
Пример #4
0
 public abstract void Promote(FrugalMapBase newMap);