private void AddItem(InitialTSTSpatial item) { SortedKeyMap1 <InitialTSTSpatial> m = this.m_Map.GetItemExact(item.TSTGroupId); if (m == null) { m = new SortedKeyMap1 <InitialTSTSpatial>(SearchMode.ExactPrev); this.m_Map.AddItem(item.TSTGroupId, m); } InitialTSTSpatial v = m.GetItemExact(item.Iteration); if (v != null) { string msg = string.Format(CultureInfo.InvariantCulture, "A record already exists for Transition Group={0} and iteration={1}.", this.GetTransitionGroupName(item.TSTGroupId), STSimMapBase.FormatValue(item.Iteration)); throw new ArgumentException(msg); } m.AddItem(item.Iteration, item); this.m_HasItems = true; }
public LateralFlowAmountRecord GetRecord( int?stockTypeId, int flowTypeId, int primaryStratumId, int?secondaryStratumId, int?tertiaryStratumId, int stateClassId, int minimumAge) { if (this.m_AllRecords.Count == 0) { return(null); } SortedKeyMap1 <LateralFlowAmountRecord> m = this.m_Map.GetItem( stockTypeId, flowTypeId, primaryStratumId, secondaryStratumId, tertiaryStratumId, stateClassId); if (m == null) { return(null); } LateralFlowAmountRecord r = m.GetItem(minimumAge); if (r != null) { Debug.Assert(r.StockTypeId == stockTypeId); return(r); } return(null); }
public StochasticTimeRaster GetRaster(int transitionGroupId, int iteration) { if (!this.m_HasItems) { return(null); } SortedKeyMap1 <InitialTSTSpatial> m = this.m_Map.GetItem(transitionGroupId); if (m == null) { return(null); } InitialTSTSpatial v = m.GetItem(iteration); if (v == null) { return(null); } string FullFileName = Spatial.GetSpatialInputFileName(this.m_DataSheet, v.FileName, false); if (!this.m_Rasters.ContainsKey(FullFileName)) { string CmpMsg = null; StochasticTimeRaster r = new StochasticTimeRaster(FullFileName, RasterDataType.DTInteger); CompareMetadataResult cmpResult = this.m_InputRasters.CompareMetadata(r, ref CmpMsg); if (cmpResult == CompareMetadataResult.RowColumnMismatch) { string Message = string.Format(CultureInfo.InvariantCulture, MessageStrings.ERROR_SPATIAL_FILE_MISMATCHED_METADATA, v.FileName, CmpMsg); throw new STSimException(Message); } else if (cmpResult == CompareMetadataResult.UnimportantDifferences) { string Message = string.Format(CultureInfo.InvariantCulture, MessageStrings.STATUS_SPATIAL_FILE_MISMATCHED_METADATA_INFO, v.FileName, CmpMsg); this.Scenario.RecordStatus(StatusType.Information, Message); } this.m_Rasters.Add(FullFileName, r); } return(this.m_Rasters[FullFileName]); }
protected T GetItem(int?k1, int?k2) { if (!this.HasItems) { return(default(T)); } SortedKeyMap1 <T> p = this.m_map.GetItem(k1); if (p == null) { return(default(T)); } return(p.GetItem(k2)); }
public TstRandomize GetTstRandomize( int?transitionGroupId, int?stratumId, int?secondaryStratumId, int?tertiaryStratumId, int?stateClassId, int?iteration) { if (!this.HasItems) { return(null); } SortedKeyMap1 <TstRandomize> m = this.m_map.GetItem( transitionGroupId, stratumId, secondaryStratumId, tertiaryStratumId, stateClassId); if (m == null) { return(null); } return(m.GetItem(iteration)); }
protected void AddItem(int?k1, int?k2, T item) { SortedKeyMap1 <T> m = this.m_map.GetItemExact(k1); if (m == null) { m = new SortedKeyMap1 <T>(SearchMode.ExactPrev); this.m_map.AddItem(k1, m); } T v = m.GetItemExact(k2); if (v != null) { ThrowDuplicateItemException(); } m.AddItem(k2, item); this.SetHasItems(); }
public void AddOrUpdate( int?stockTypeId, int flowTypeId, int?primaryStratumId, int?secondaryStratumId, int?tertiaryStratumId, int?stateClassId, int?minimumAge, double amount) { Debug.Assert( primaryStratumId.HasValue || secondaryStratumId.HasValue || tertiaryStratumId.HasValue || stateClassId.HasValue || minimumAge.HasValue || stockTypeId.HasValue); SortedKeyMap1 <LateralFlowAmountRecord> m = this.m_Map.GetItemExact( stockTypeId, flowTypeId, primaryStratumId, secondaryStratumId, tertiaryStratumId, stateClassId); if (m == null) { m = new SortedKeyMap1 <LateralFlowAmountRecord>(SearchMode.ExactPrev); this.m_Map.AddItem(stockTypeId, flowTypeId, primaryStratumId, secondaryStratumId, tertiaryStratumId, stateClassId, m); } LateralFlowAmountRecord r = m.GetItemExact(minimumAge); if (r == null) { r = new LateralFlowAmountRecord(); r.StockTypeId = stockTypeId; r.FlowTypeId = flowTypeId; r.StockAmount = amount; m.AddItem(minimumAge, r); this.m_AllRecords.Add(r); } else { r.StockAmount += amount; } }
public void AddTstRandomize (int?transitionGroupId, int?stratumId, int?secondaryStratumId, int?tertiaryStratumId, int?stateClassId, int?iteration, TstRandomize tstRandomize) { SortedKeyMap1 <TstRandomize> m = this.m_map.GetItemExact( transitionGroupId, stratumId, secondaryStratumId, tertiaryStratumId, stateClassId); if (m == null) { m = new SortedKeyMap1 <TstRandomize>(SearchMode.ExactPrev); this.m_map.AddItem(transitionGroupId, stratumId, secondaryStratumId, tertiaryStratumId, stateClassId, m); } TstRandomize v = m.GetItemExact(iteration); if (v != null) { string template = "A duplicate Time-Since-Transition Randomize value was detected: More information:" + Environment.NewLine + "Transition Group={0}, {1}={2}, {3}={4}, {5}={6}, State Class={7}, Iteration={8}."; ExceptionUtils.ThrowArgumentException(template, this.GetTransitionGroupName(transitionGroupId), this.PrimaryStratumLabel, this.GetStratumName(stratumId), this.SecondaryStratumLabel, this.GetSecondaryStratumName(secondaryStratumId), this.TertiaryStratumLabel, this.GetTertiaryStratumName(tertiaryStratumId), this.GetStateClassName(stateClassId), STSimMapBase.FormatValue(iteration)); } m.AddItem(iteration, tstRandomize); this.SetHasItems(); }