private void TryAddItem(TransitionTargetPrioritization item) { try { this.AddItem(item.TransitionGroupId, item.StratumId, item.SecondaryStratumId, item.TertiaryStratumId, item.StateClassId, item.Iteration, item.Timestep, item); } catch (STSimMapDuplicateItemException) { string template = "A duplicate transition target prioritization was detected: More information:" + Environment.NewLine + "Transition Group={0}, {1}={2}, {3}={4}, {5}={6}, State Class={7}, Iteration={8}, Timestep={9}."; ExceptionUtils.ThrowArgumentException( template, this.GetTransitionGroupName(item.TransitionGroupId), this.PrimaryStratumLabel, this.GetStratumName(item.StratumId), this.SecondaryStratumLabel, this.GetSecondaryStratumName(item.SecondaryStratumId), this.TertiaryStratumLabel, this.GetTertiaryStratumName(item.TertiaryStratumId), this.GetStateClassName(item.StateClassId), STSimMapBase.FormatValue(item.Iteration), STSimMapBase.FormatValue(item.Timestep)); } Debug.Assert(this.HasItems); }
private void AddAttributeValue(TransitionAttributeValue item) { AttributeValueAgeBinCollection AgeBins = this.GetItemExact( item.TransitionAttributeTypeId, item.TransitionGroupId, item.StratumId, item.SecondaryStratumId, item.TertiaryStratumId, item.StateClassId, item.Iteration, item.Timestep); if (AgeBins == null) { AgeBins = new AttributeValueAgeBinCollection(this.m_Project); this.AddItem( item.TransitionAttributeTypeId, item.TransitionGroupId, item.StratumId, item.SecondaryStratumId, item.TertiaryStratumId, item.StateClassId, item.Iteration, item.Timestep, AgeBins); } try { AttributeValueAgeBin Bin = AgeBins.GetOrCreateAgeBin(item.MinimumAge, item.MaximumAge); Bin.AddReference(new AttributeValueReference(item.TSTGroupId, item.TSTMin, item.TSTMax, item)); } catch (STSimMapDuplicateItemException) { string template = "A duplicate Transition Attribute value has been created. More information:" + Environment.NewLine + "Transition Attribute={0}, Transition Group={1}, {2}={3}, {4}={5}, {6}={7}, MinAge={8}, MaxAge={9}, TSTMin={10}, TSTMax={11}, TSTGroup={12}, Iteration={13}, Timestep={14}." + Environment.NewLine + "NOTE: A user defined distribution can result in additional Transition Attributes when the model is run."; ExceptionUtils.ThrowArgumentException(template, this.GetTransitionAttributeTypeName(item.TransitionAttributeTypeId), this.GetTransitionGroupName(item.TransitionGroupId), this.PrimaryStratumLabel, this.GetStratumName(item.StratumId), this.SecondaryStratumLabel, this.GetSecondaryStratumName(item.SecondaryStratumId), this.TertiaryStratumLabel, this.GetTertiaryStratumName(item.TertiaryStratumId), item.MinimumAge, item.MaximumAge == int.MaxValue ? "NULL" : item.MaximumAge.ToString(), STSimMapBase.FormatValue(item.TSTMin), (!item.TSTMax.HasValue || item.TSTMax.Value == int.MaxValue) ? "NULL" : item.TSTMax.ToString(), this.GetTSTGroupString(item.TSTGroupId), STSimMapBase.FormatValue(item.Iteration), STSimMapBase.FormatValue(item.Timestep)); } if (!this.m_TypeGroupMap.ContainsKey(item.TransitionGroupId)) { this.m_TypeGroupMap.Add(item.TransitionGroupId, new Dictionary <int, bool>()); } Dictionary <int, bool> d = TypeGroupMap[item.TransitionGroupId]; if (!d.ContainsKey(item.TransitionAttributeTypeId)) { d.Add(item.TransitionAttributeTypeId, true); } Debug.Assert(this.HasItems); }
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; }
private void AddAttributeValue(StateAttributeValue item) { AttributeValueAgeBinCollection AgeBins = this.GetItemExact( item.StateAttributeTypeId, item.StratumId, item.SecondaryStratumId, item.TertiaryStratumId, item.StateClassId, item.Iteration, item.Timestep); if (AgeBins == null) { AgeBins = new AttributeValueAgeBinCollection(this.m_Project); this.AddItem( item.StateAttributeTypeId, item.StratumId, item.SecondaryStratumId, item.TertiaryStratumId, item.StateClassId, item.Iteration, item.Timestep, AgeBins); } try { AttributeValueAgeBin Bin = AgeBins.GetOrCreateAgeBin(item.MinimumAge, item.MaximumAge); Bin.AddReference(new AttributeValueReference(item.TSTGroupId, item.TSTMin, item.TSTMax, item)); } catch (STSimMapDuplicateItemException ex) { string template = ex.Message + ". More information:" + Environment.NewLine + "State Attribute={0}, {1}={2}, {3}={4}, {5}={6}, Iteration={7}, Timestep={8}." + Environment.NewLine + "NOTE: A user defined distribution can result in additional State Attributes when the model is run."; ExceptionUtils.ThrowArgumentException(template, this.GetStateAttributeTypeName(item.StateAttributeTypeId), this.PrimaryStratumLabel, this.GetStratumName(item.StratumId), this.SecondaryStratumLabel, this.GetSecondaryStratumName(item.SecondaryStratumId), this.TertiaryStratumLabel, this.GetTertiaryStratumName(item.TertiaryStratumId), STSimMapBase.FormatValue(item.Iteration), STSimMapBase.FormatValue(item.Timestep)); } Debug.Assert(this.HasItems); }
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(); }
private void TryAddItem(TransitionSizePrioritization item) { try { this.AddItem(item.TransitionGroupId, item.StratumId, item.Iteration, item.Timestep, item); } catch (STSimMapDuplicateItemException) { string template = "A duplicate transition size prioritization was detected: More information:" + Environment.NewLine + "Transition Group={0}, {1}={2}, Iteration={3}, Timestep={4}"; ExceptionUtils.ThrowArgumentException(template, this.GetTransitionGroupName(item.TransitionGroupId), this.PrimaryStratumLabel, this.GetStratumName(item.StratumId), STSimMapBase.FormatValue(item.Iteration), STSimMapBase.FormatValue(item.Timestep)); } }
private void TryAddItem(TransitionAttributeTarget item) { try { base.AddItem(item.TransitionAttributeTypeId, item.StratumId, item.SecondaryStratumId, item.TertiaryStratumId, item.Iteration, item.Timestep, item); } catch (STSimMapDuplicateItemException) { string template = "A duplicate transition attribute target was detected: More information:" + Environment.NewLine + "Transition Attribute Type={0}, {1}={2}, {3}={4}, {5}={6}, Iteration={7}, Timestep={8}." + Environment.NewLine + "NOTE: A user defined distribution can result in additional transition attribute targets when the model is run."; ExceptionUtils.ThrowArgumentException(template, this.GetTransitionAttributeTypeName(item.TransitionAttributeTypeId), this.PrimaryStratumLabel, this.GetStratumName(item.StratumId), this.SecondaryStratumLabel, this.GetSecondaryStratumName(item.SecondaryStratumId), this.TertiaryStratumLabel, this.GetTertiaryStratumName(item.TertiaryStratumId), STSimMapBase.FormatValue(item.Iteration), STSimMapBase.FormatValue(item.Timestep)); } }
private void TryAddItem(TransitionSpatialInitiationMultiplier item) { try { this.AddItem(item.TransitionGroupId, item.Iteration, item.Timestep, item); } catch (STSimMapDuplicateItemException) { string template = "A duplicate transition spatial initiation multiplier was detected: More information:" + Environment.NewLine + "Transition Group={0}, Iteration={1}, Timestep={2}"; ExceptionUtils.ThrowArgumentException(template, this.GetTransitionGroupName(item.TransitionGroupId), STSimMapBase.FormatValue(item.Iteration), STSimMapBase.FormatValue(item.Timestep)); } Debug.Assert(this.HasItems); }
private void TryAddItem(TransitionDirectionMultiplier item) { try { this.AddItem( item.TransitionGroupId, item.StratumId, item.SecondaryStratumId, item.TertiaryStratumId, (int?)item.CardinalDirection, item.Iteration, item.Timestep, item); } catch (STSimMapDuplicateItemException) { string template = "A duplicate transition direction multiplier was detected: More information:" + Environment.NewLine + "Transition Group={0}, {1}={2}, {3}={4}, {5}={6}, Iteration={7}, Timestep={8}, Cardinal Direction={9}." + Environment.NewLine + "NOTE: A user defined distribution can result in additional transition direction multipliers when the model is run."; ExceptionUtils.ThrowArgumentException(template, this.GetTransitionGroupName(item.TransitionGroupId), this.PrimaryStratumLabel, this.GetStratumName(item.StratumId), this.SecondaryStratumLabel, this.GetSecondaryStratumName(item.SecondaryStratumId), this.TertiaryStratumLabel, this.GetTertiaryStratumName(item.TertiaryStratumId), STSimMapBase.FormatValue(item.Iteration), STSimMapBase.FormatValue(item.Timestep), GetCardinalDirection(item.CardinalDirection)); } }
private void TryAddItem(TransitionPathwayAutoCorrelation item) { try { this.AddItem(item.TransitionGroupId, item.StratumId, item.SecondaryStratumId, item.TertiaryStratumId, item.Iteration, item.Timestep, item); } catch (STSimMapDuplicateItemException) { string template = "A duplicate transition pathway auto-correlation was detected: More information:" + Environment.NewLine + "Transition Group={0}, {1}={2}, {3}={4}, {5}={6}, Iteration={7}, Timestep={8}."; ExceptionUtils.ThrowArgumentException(template, this.GetTransitionGroupName(item.TransitionGroupId), this.PrimaryStratumLabel, this.GetStratumName(item.StratumId), this.SecondaryStratumLabel, this.GetSecondaryStratumName(item.SecondaryStratumId), this.TertiaryStratumLabel, this.GetTertiaryStratumName(item.TertiaryStratumId), STSimMapBase.FormatValue(item.Iteration), STSimMapBase.FormatValue(item.Timestep)); } }
private void AddTransition(DeterministicTransition t) { try { this.AddItem(t.StratumIdSource, t.StateClassIdSource, t.Iteration, t.Timestep, t); } catch (STSimMapDuplicateItemException) { string template = "A duplicate deterministic transition was detected: More information:" + Environment.NewLine + "Source {0}={1}, Source State Class={2}, Iteration={3}, Timestep={4}."; ExceptionUtils.ThrowArgumentException(template, this.PrimaryStratumLabel, this.GetStratumName(t.StratumIdSource), this.GetStateClassName(t.StateClassIdSource), STSimMapBase.FormatValue(t.Iteration), STSimMapBase.FormatValue(t.Timestep)); } Debug.Assert(this.HasItems); }