< prev index next >

src/java.base/share/classes/sun/util/locale/provider/LocaleResources.java

Print this page

        

*** 40,53 **** --- 40,55 ---- package sun.util.locale.provider; import java.lang.ref.ReferenceQueue; import java.lang.ref.SoftReference; + import java.text.CompactNumberFormat; import java.text.MessageFormat; import java.util.Calendar; import java.util.HashSet; import java.util.LinkedHashSet; + import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Objects; import java.util.ResourceBundle; import java.util.Set;
*** 86,95 **** --- 88,98 ---- private static final String LOCALE_NAMES = "LN."; private static final String TIME_ZONE_NAMES = "TZN."; private static final String ZONE_IDS_CACHEKEY = "ZID"; private static final String CALENDAR_NAMES = "CALN."; private static final String NUMBER_PATTERNS_CACHEKEY = "NP"; + private static final String COMPACT_NUMBER_PATTERNS_CACHEKEY = "CNP"; private static final String DATE_TIME_PATTERN = "DTP."; // TimeZoneNamesBundle exemplar city prefix private static final String TZNB_EXCITY_PREFIX = "timezone.excity.";
*** 477,486 **** --- 480,515 ---- return numberPatterns; } /** + * Returns the compact number format patterns. + * @param formatStyle the style for formatting a number + * @return a list of compact number patterns + */ + @SuppressWarnings("unchecked") + public List<String> getCNPatterns(CompactNumberFormat.Style formatStyle) { + + Objects.requireNonNull(formatStyle); + List<String> compactNumberPatterns = null; + removeEmptyReferences(); + String width = (formatStyle == CompactNumberFormat.Style.LONG) ? "long" : "short"; + String cacheKey = width + "." + COMPACT_NUMBER_PATTERNS_CACHEKEY; + ResourceReference data = cache.get(cacheKey); + if (data == null || ((compactNumberPatterns + = (List<String>) data.get()) == null)) { + ResourceBundle resource = localeData.getNumberFormatData(locale); + compactNumberPatterns = (List<String>) resource + .getObject(width + ".CompactNumberPatterns"); + cache.put(cacheKey, new ResourceReference(cacheKey, + (Object) compactNumberPatterns, referenceQueue)); + } + return compactNumberPatterns; + } + + + /** * Returns the FormatData resource bundle of this LocaleResources. * The FormatData should be used only for accessing extra * resources required by JSR 310. */ public ResourceBundle getJavaTimeFormatData() {
< prev index next >