private void ExpandTransitionAdjacencyMultipliers(STSimDistributionBaseExpander expander) { if (this.m_TransitionAdjacencyMultipliers.Count > 0) { IEnumerable <STSimDistributionBase> NewItems = expander.Expand(this.m_TransitionAdjacencyMultipliers); this.m_TransitionAdjacencyMultipliers.Clear(); foreach (TransitionAdjacencyMultiplier t in NewItems) { this.m_TransitionAdjacencyMultipliers.Add(t); } } }
private void ExpandStateAttributeValues(STSimDistributionBaseExpander expander) { if (this.m_StateAttributeValues.Count > 0) { IEnumerable <STSimDistributionBase> NewItems = expander.Expand(this.m_StateAttributeValues); this.m_StateAttributeValues.Clear(); foreach (StateAttributeValue t in NewItems) { this.m_StateAttributeValues.Add(t); } } }
private void ExpandTransitionAttributeTargets(STSimDistributionBaseExpander expander) { if (this.m_TransitionAttributeTargets.Count > 0) { IEnumerable <STSimDistributionBase> NewItems = expander.Expand(this.m_TransitionAttributeTargets); this.m_TransitionAttributeTargets.Clear(); foreach (TransitionAttributeTarget t in NewItems) { this.m_TransitionAttributeTargets.Add(t); } } }
/// <summary> /// If a collection item (a.) references a user distribution value, and (b.) has a NULL /// for stratum and/or secondary stratum then we want to replace that item with an "expanded" /// set of items with explicit values based on the contents of the distribution value collection. /// /// NOTE: The expanded set of records should contain only unique combinations of stratum and /// secondary stratum, null-able values inclusive. /// </summary> /// <remarks></remarks> private void NormalizeForUserDistributions() { if (this.m_DistributionProvider.Values.Count > 0) { STSimDistributionBaseExpander Expander = new STSimDistributionBaseExpander(this.m_DistributionProvider); this.ExpandStateAttributeValues(Expander); this.ExpandTransitionAttributeValues(Expander); this.ExpandTransitionTargets(Expander); this.ExpandTransitionAttributeTargets(Expander); this.ExpandTransitionMultipliers(Expander); this.ExpandTransitionDirectionMultipliers(Expander); this.ExpandTransitionSlopeMultipliers(Expander); this.ExpandTransitionAdjacencyMultipliers(Expander); } }