/// <summary> /// Combine combines a child with a parent as necessary and returns the combined object /// </summary> /// <param name="combinedRuleBasedNumberFormatting">The child object</param> /// <param name="parentRuleBasedNumberFormatting">The parent object</param> /// <returns>The combined object</returns> public static RuleBasedNumberFormatting Combine(RuleBasedNumberFormatting combinedRuleBasedNumberFormatting, RuleBasedNumberFormatting parentRuleBasedNumberFormatting) { if (combinedRuleBasedNumberFormatting == null && parentRuleBasedNumberFormatting == null) { return(null); } else if (combinedRuleBasedNumberFormatting == null) { return((RuleBasedNumberFormatting)parentRuleBasedNumberFormatting.Clone()); } else if (parentRuleBasedNumberFormatting == null) { return(combinedRuleBasedNumberFormatting); } combinedRuleBasedNumberFormatting.OrdinalRuleSets = CombineArrays <RuleBasedNumberFormattingRuleSet>( combinedRuleBasedNumberFormatting.OrdinalRuleSets, parentRuleBasedNumberFormatting.OrdinalRuleSets, (item, parent) => string.Compare(item.Id, parent.Id, StringComparison.InvariantCulture) == 0); combinedRuleBasedNumberFormatting.SpelloutRuleSets = CombineArrays <RuleBasedNumberFormattingRuleSet>( combinedRuleBasedNumberFormatting.SpelloutRuleSets, parentRuleBasedNumberFormatting.SpelloutRuleSets, (item, parent) => string.Compare(item.Id, parent.Id, StringComparison.InvariantCulture) == 0); return(combinedRuleBasedNumberFormatting); }
/// <summary> /// GetRuleBasedNumberFormatting gets the resolved RuleBasedNumberFormatting /// </summary> /// <returns>The resolved RuleBasedNumberFormatting</returns> private RuleBasedNumberFormatting GetRuleBasedNumberFormatting() { RuleBasedNumberFormatting ruleBasedNumberFormatting = null; if (this.ruleBasedNumberFormattingNoParents != null) { ruleBasedNumberFormatting = (RuleBasedNumberFormatting)this.ruleBasedNumberFormattingNoParents.Clone(); } Culture[] parentCultures = this.GetParents(); foreach (Culture parentCulture in parentCultures) { ruleBasedNumberFormatting = RuleBasedNumberFormatting.Combine(ruleBasedNumberFormatting, parentCulture.ruleBasedNumberFormattingNoParents); } return(ruleBasedNumberFormatting); }
/// <summary> /// Initializes a new instance of the Culture class /// </summary> /// <param name="cultureData">The CultureData for this language/script/region/variant</param> public Culture(CultureData cultureData) { this.casingNoParents = cultureData.Casing; this.charactersNoParents = cultureData.Characters; this.datesNoParents = cultureData.Dates; this.delimitersNoParents = cultureData.Delimiters; this.Identity = cultureData.Identity; this.languageDisplayNamesNoParents = cultureData.LanguageDisplayNames; this.layoutNoParents = cultureData.Layout; this.listPatternsNoParents = cultureData.ListPatterns; this.messagesNoParents = cultureData.Messages; this.numbersNoParents = cultureData.Numbers; this.regionDisplayNamesNoParents = cultureData.RegionDisplayNames; this.ruleBasedNumberFormattingNoParents = cultureData.RuleBasedNumberFormatting; this.scriptDisplayNamesNoParents = cultureData.ScriptDisplayNames; this.unitPatternSetsNoParents = cultureData.UnitPatternSets; }