mirror of
https://github.com/unicode-org/icu.git
synced 2025-04-13 08:53:20 +00:00
ICU-12450 move com.ibm.icu.text.TransformTransliterator to org.unicode.unused
X-SVN-Rev: 38687
This commit is contained in:
parent
a97bd99a2e
commit
470a1f7ff5
2 changed files with 6 additions and 225 deletions
icu4j/main/classes/core/src/com/ibm/icu
|
@ -1448,45 +1448,6 @@ public abstract class NumberFormat extends UFormat {
|
|||
* @stable ICU 3.2
|
||||
*/
|
||||
protected static String getPattern(ULocale forLocale, int choice) {
|
||||
|
||||
/* The following code takes care of a few cases where the
|
||||
* resource data in the underlying JDK lags the new features
|
||||
* we have added to ICU4J: scientific notation, rounding, and
|
||||
* secondary grouping.
|
||||
*
|
||||
* We detect these cases here and return various hard-coded
|
||||
* resource data. This is the simplest solution for now, but
|
||||
* it is not a good long-term mechanism.
|
||||
*
|
||||
* We should replace this code with a data-driven mechanism
|
||||
* that reads the bundle com.ibm.icu.impl.data.LocaleElements
|
||||
* and parses an exception table that overrides the standard
|
||||
* data at java.text.resource.LocaleElements*.java.
|
||||
* Alternatively, we should create our own copy of the
|
||||
* resource data, and use that exclusively.
|
||||
*/
|
||||
|
||||
// TEMPORARY, until we get scientific patterns into the main
|
||||
// resources: Retrieve scientific patterns from our resources.
|
||||
//if (choice == SCIENTIFICSTYLE) {
|
||||
// Temporarily hard code; retrieve from resource later
|
||||
/*For ICU compatibility [Richard/GCL]*/
|
||||
// return "#E0";
|
||||
// return NumberFormat.getBaseStringArray("NumberPatterns")[SCIENTIFICSTYLE];
|
||||
//}
|
||||
|
||||
/* {dlf}
|
||||
// Try the cache first
|
||||
String[] numberPatterns = (String[]) cachedLocaleData.get(forLocale);
|
||||
if (numberPatterns == null) {
|
||||
OverlayBundle resource = new OverlayBundle(new String[]
|
||||
{ "com.ibm.icu.impl.data.LocaleElements", RESOURCE_BASE }, forLocale);
|
||||
numberPatterns = resource.getStringArray("NumberPatterns");
|
||||
// Update the cache
|
||||
cachedLocaleData.put(forLocale, numberPatterns);
|
||||
}
|
||||
*/
|
||||
|
||||
/* for ISOCURRENCYSTYLE and PLURALCURRENCYSTYLE,
|
||||
* the pattern is the same as the pattern of CURRENCYSTYLE
|
||||
* but by replacing the single currency sign with
|
||||
|
@ -1500,7 +1461,8 @@ public abstract class NumberFormat extends UFormat {
|
|||
break;
|
||||
case CURRENCYSTYLE:
|
||||
String cfKeyValue = forLocale.getKeywordValue("cf");
|
||||
patternKey = (cfKeyValue != null && cfKeyValue.equals("account"))? "accountingFormat": "currencyFormat";
|
||||
patternKey = (cfKeyValue != null && cfKeyValue.equals("account")) ?
|
||||
"accountingFormat" : "currencyFormat";
|
||||
break;
|
||||
case CASHCURRENCYSTYLE:
|
||||
case ISOCURRENCYSTYLE:
|
||||
|
@ -1527,11 +1489,10 @@ public abstract class NumberFormat extends UFormat {
|
|||
getBundleInstance(ICUData.ICU_BASE_NAME, forLocale);
|
||||
NumberingSystem ns = NumberingSystem.getInstance(forLocale);
|
||||
|
||||
String result = null;
|
||||
try {
|
||||
result = rb.getStringWithFallback("NumberElements/" + ns.getName() + "/patterns/"+ patternKey);
|
||||
} catch ( MissingResourceException ex ) {
|
||||
result = rb.getStringWithFallback("NumberElements/latn/patterns/"+ patternKey);
|
||||
String result = rb.findStringWithFallback(
|
||||
"NumberElements/" + ns.getName() + "/patterns/" + patternKey);
|
||||
if (result == null) {
|
||||
result = rb.getStringWithFallback("NumberElements/latn/patterns/" + patternKey);
|
||||
}
|
||||
|
||||
return result;
|
||||
|
|
|
@ -1,180 +0,0 @@
|
|||
/**
|
||||
*******************************************************************************
|
||||
* Copyright (C) 2001-2014, International Business Machines Corporation and *
|
||||
* others. All Rights Reserved. *
|
||||
*******************************************************************************
|
||||
*/
|
||||
package com.ibm.icu.util;
|
||||
|
||||
import java.util.Enumeration;
|
||||
import java.util.Locale;
|
||||
import java.util.MissingResourceException;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
/**
|
||||
* A ResourceBundle that overlays one hierarchy atop another. This is
|
||||
* best explained by example. Suppose one wants to use the
|
||||
* resource hiararchy (in JDK 1.2 and 1.3, but not 1.4) at
|
||||
* "java.text.resources.LocaleElements", but one wants to use
|
||||
* a modified version of the "NumberPatterns" resource in the
|
||||
* fr_FR locale. One way to do this is to add special case code
|
||||
* to the lookup operation to check for fr_FR and the key
|
||||
* "NumberPatterns", and in that case, load up custom data. However,
|
||||
* this becomes unwieldy and places some information about the
|
||||
* effective resource hierarchy into the code.
|
||||
*
|
||||
* The OverlayBundle solves this problem by layering another
|
||||
* hierarchy, e.g, "com.acme.resources.LocaleElements", on top of a
|
||||
* base hierarchy. When a resource is requested, it is first sought
|
||||
* in the overlay hierarchy, and if not found there, it is sought in
|
||||
* the base hierarchy. Multiple overlays are supported, but in
|
||||
* practice one is usually sufficient.
|
||||
*
|
||||
* The OverlayBundle also addresses the problem of country-oriented
|
||||
* data. To specify the default data for a language, one just sets
|
||||
* the language resource bundle data. However, specifying the default
|
||||
* data for a country using the standard ResourceBundle mechanism is
|
||||
* impossible. The OverlayBundle recognizes "wildcard" locales with
|
||||
* the special language code "xx". When looking up data for a locale
|
||||
* with a non-empty country, if an exact locale match cannot be found,
|
||||
* the OverlayBundle looks for data in the locale xx_YY, where YY is
|
||||
* the country being sought. This effectively adds another entry in
|
||||
* the fallback sequence for a locale aa_BB: aa_BB, xx_BB, aa, root.
|
||||
* Wildcard locales are not implemented for the base hierarchy, only
|
||||
* for overlays.
|
||||
*
|
||||
* The OverlayBundle is implemented as an array of n ResourceBundle
|
||||
* base names. The base names are searched from 0 to n-1. Base name
|
||||
* n-1 is special; it is the base hierarchy. This should be a
|
||||
* well-populated hierarchy with most of the default data, typically,
|
||||
* the icu or sun core hierarchies. The base hierarchy is
|
||||
* treated differently from the overlays above it. It does not get
|
||||
* wildcard resolution, and the getKeys() framework method is
|
||||
* delegated to the base hierarchy bundle.
|
||||
*
|
||||
* Usage: Instantiate an OverlayBundle directly (not via a factory
|
||||
* method as in ResourceBundle). Instead of specifying a single base
|
||||
* name, pass it an array of 2 or more base names. After that, use it
|
||||
* exactly as you would use ResourceBundle.
|
||||
*
|
||||
* @see java.util.ResourceBundle
|
||||
* @author Alan Liu
|
||||
* @internal
|
||||
* @deprecated ICU 2.4. This class may be removed or modified.
|
||||
*/
|
||||
@Deprecated
|
||||
// prepare to deprecate in next release
|
||||
///CLOVER:OFF
|
||||
public class OverlayBundle extends ResourceBundle {
|
||||
|
||||
/**
|
||||
* The array of base names, with the length-1 entry being the base
|
||||
* hierarchy, typically "sun.text.resources.LocaleElements".
|
||||
*/
|
||||
private String[] baseNames;
|
||||
|
||||
/**
|
||||
* The requested locale.
|
||||
*/
|
||||
private Locale locale;
|
||||
|
||||
/**
|
||||
* Loaded bundles. These will be null until they are loaded on
|
||||
* demand.
|
||||
*/
|
||||
private ResourceBundle[] bundles;
|
||||
|
||||
/**
|
||||
* Construct an overlay bundle given a sequence of base names and
|
||||
* a locale.
|
||||
* @internal
|
||||
* @deprecated ICU 2.4. This class may be removed or modified.
|
||||
*/
|
||||
@Deprecated
|
||||
public OverlayBundle(String[] baseNames,
|
||||
Locale locale) {
|
||||
this.baseNames = baseNames;
|
||||
this.locale = locale;
|
||||
bundles = new ResourceBundle[baseNames.length];
|
||||
}
|
||||
|
||||
/**
|
||||
* ResourceBundle framework method. Delegates to
|
||||
* bundles[i].getObject().
|
||||
* @internal
|
||||
* @deprecated ICU 2.4. This class may be removed or modified.
|
||||
*/
|
||||
@Deprecated
|
||||
protected Object handleGetObject(String key)
|
||||
throws MissingResourceException {
|
||||
|
||||
Object o = null;
|
||||
|
||||
for (int i=0; i<bundles.length; ++i) {
|
||||
load(i);
|
||||
try {
|
||||
o = bundles[i].getObject(key);
|
||||
} catch (MissingResourceException e) {
|
||||
if (i == bundles.length-1) {
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
if (o != null) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return o;
|
||||
}
|
||||
|
||||
/**
|
||||
* ResourceBundle framework method. Delegates to
|
||||
* bundles[bundles.length-1].getKeys().
|
||||
* @internal
|
||||
* @deprecated ICU 2.4. This class may be removed or modified.
|
||||
*/
|
||||
@Deprecated
|
||||
public Enumeration<String> getKeys() {
|
||||
// Return the enumeration of the last bundle, which is the base
|
||||
// of our hierarchy stack.
|
||||
int i = bundles.length - 1;
|
||||
load(i);
|
||||
return bundles[i].getKeys();
|
||||
}
|
||||
|
||||
/**
|
||||
* Load the i-th bundle and implement wildcard resolution.
|
||||
*/
|
||||
private void load(int i)
|
||||
throws MissingResourceException {
|
||||
|
||||
if (bundles[i] == null) {
|
||||
boolean tryWildcard = false;
|
||||
try {
|
||||
bundles[i] = ResourceBundle.getBundle(baseNames[i], locale);
|
||||
if (bundles[i].getLocale().equals(locale)) {
|
||||
return;
|
||||
}
|
||||
if (locale.getCountry().length() != 0 && i != bundles.length-1) {
|
||||
tryWildcard = true;
|
||||
}
|
||||
} catch (MissingResourceException e) {
|
||||
if (i == bundles.length-1) {
|
||||
throw e;
|
||||
}
|
||||
tryWildcard = true;
|
||||
}
|
||||
if (tryWildcard) {
|
||||
Locale wildcard = new Locale("xx", locale.getCountry(),
|
||||
locale.getVariant());
|
||||
try {
|
||||
bundles[i] = ResourceBundle.getBundle(baseNames[i], wildcard);
|
||||
} catch (MissingResourceException e) {
|
||||
if (bundles[i] == null) {
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue