ICU-6708 Static caching of NumberingSystem object instances in NumberFormat, J implementation
X-SVN-Rev: 26365
This commit is contained in:
parent
e6d78cf300
commit
cdd3d8072a
@ -21,7 +21,9 @@ import java.util.Locale;
|
||||
import java.util.MissingResourceException;
|
||||
import java.util.Set;
|
||||
|
||||
import com.ibm.icu.impl.ICUCache;
|
||||
import com.ibm.icu.impl.ICUResourceBundle;
|
||||
import com.ibm.icu.impl.SimpleCache;
|
||||
import com.ibm.icu.util.Currency;
|
||||
import com.ibm.icu.util.CurrencyAmount;
|
||||
import com.ibm.icu.util.ULocale;
|
||||
@ -1289,8 +1291,15 @@ public abstract class NumberFormat extends UFormat {
|
||||
pattern = pattern.replace("\u00A4", doubleCurrencyStr);
|
||||
}
|
||||
|
||||
NumberingSystem ns = NumberingSystem.getInstance(desiredLocale);
|
||||
// Get the numbering system from the cache or create one
|
||||
NumberingSystem ns = cachedLocaleData.get(desiredLocale);
|
||||
if (ns == null ) {
|
||||
// add to cache
|
||||
ns = NumberingSystem.getInstance(desiredLocale);
|
||||
cachedLocaleData.put(desiredLocale, ns);
|
||||
}
|
||||
if ( ns == null ) {
|
||||
// some error getting a numbering system
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -1507,6 +1516,11 @@ public abstract class NumberFormat extends UFormat {
|
||||
Add Field for the new method getIntegerInstance() [Richard/GCL]
|
||||
*/
|
||||
|
||||
/**
|
||||
* Cache to hold the NumberingSystems of a Locale.
|
||||
*/
|
||||
private static ICUCache<ULocale, NumberingSystem> cachedLocaleData = new SimpleCache<ULocale, NumberingSystem>();
|
||||
|
||||
/**
|
||||
* True if the the grouping (i.e. thousands) separator is used when
|
||||
* formatting and parsing numbers.
|
||||
|
Loading…
Reference in New Issue
Block a user