You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.4 KiB
73 lines
2.4 KiB
// © 2016 and later: Unicode, Inc. and others. |
|
// License & terms of use: http://www.unicode.org/copyright.html#License |
|
/** |
|
******************************************************************************* |
|
* Copyright (C) 2001-2011, International Business Machines Corporation and * |
|
* others. All Rights Reserved. * |
|
******************************************************************************* |
|
*/ |
|
|
|
package com.fr.third.ibm.icu.util; |
|
|
|
import java.util.Locale; |
|
|
|
import com.fr.third.ibm.icu.impl.ICULocaleService; |
|
import com.fr.third.ibm.icu.impl.ICUResourceBundle; |
|
import com.fr.third.ibm.icu.impl.ICUService; |
|
|
|
/** |
|
* This is a package-access implementation of registration for |
|
* currency. The shim is instantiated by reflection in Currency, all |
|
* dependencies on ICUService are located in this file. This structure |
|
* is to allow ICU4J to be built without service registration support. |
|
*/ |
|
final class CurrencyServiceShim extends Currency.ServiceShim { |
|
|
|
Locale[] getAvailableLocales() { |
|
if (service.isDefault()) { |
|
return ICUResourceBundle.getAvailableLocales(); |
|
} |
|
return service.getAvailableLocales(); |
|
} |
|
|
|
ULocale[] getAvailableULocales() { |
|
if (service.isDefault()) { |
|
return ICUResourceBundle.getAvailableULocales(); |
|
} |
|
return service.getAvailableULocales(); |
|
} |
|
|
|
Currency createInstance(ULocale loc) { |
|
// TODO: convert to ULocale when service switches over |
|
|
|
if (service.isDefault()) { |
|
return Currency.createCurrency(loc); |
|
} |
|
Currency curr = (Currency)service.get(loc); |
|
return curr; |
|
} |
|
|
|
Object registerInstance(Currency currency, ULocale locale) { |
|
return service.registerObject(currency, locale); |
|
} |
|
|
|
boolean unregister(Object registryKey) { |
|
return service.unregisterFactory((ICUService.Factory)registryKey); |
|
} |
|
|
|
private static class CFService extends ICULocaleService { |
|
CFService() { |
|
super("Currency"); |
|
|
|
class CurrencyFactory extends ICUResourceBundleFactory { |
|
protected Object handleCreate(ULocale loc, int kind, ICUService srvc) { |
|
return Currency.createCurrency(loc); |
|
} |
|
} |
|
|
|
registerFactory(new CurrencyFactory()); |
|
markDefault(); |
|
} |
|
} |
|
static final ICULocaleService service = new CFService(); |
|
}
|
|
|