1 /* GENERATED SOURCE. DO NOT MODIFY. */ 2 // © 2016 and later: Unicode, Inc. and others. 3 // License & terms of use: http://www.unicode.org/copyright.html#License 4 /** 5 ******************************************************************************* 6 * Copyright (C) 2001-2011, International Business Machines Corporation and * 7 * others. All Rights Reserved. * 8 ******************************************************************************* 9 */ 10 11 package ohos.global.icu.util; 12 13 import java.util.Locale; 14 15 import ohos.global.icu.impl.ICULocaleService; 16 import ohos.global.icu.impl.ICUResourceBundle; 17 import ohos.global.icu.impl.ICUService; 18 import ohos.global.icu.impl.ICUService.Factory; 19 20 /** 21 * This is a package-access implementation of registration for 22 * currency. The shim is instantiated by reflection in Currency, all 23 * dependencies on ICUService are located in this file. This structure 24 * is to allow ICU4J to be built without service registration support. 25 */ 26 final class CurrencyServiceShim extends Currency.ServiceShim { 27 getAvailableLocales()28 Locale[] getAvailableLocales() { 29 if (service.isDefault()) { 30 return ICUResourceBundle.getAvailableLocales(); 31 } 32 return service.getAvailableLocales(); 33 } 34 getAvailableULocales()35 ULocale[] getAvailableULocales() { 36 if (service.isDefault()) { 37 return ICUResourceBundle.getAvailableULocales(); 38 } 39 return service.getAvailableULocales(); 40 } 41 createInstance(ULocale loc)42 Currency createInstance(ULocale loc) { 43 // TODO: convert to ULocale when service switches over 44 45 if (service.isDefault()) { 46 return Currency.createCurrency(loc); 47 } 48 Currency curr = (Currency)service.get(loc); 49 return curr; 50 } 51 registerInstance(Currency currency, ULocale locale)52 Object registerInstance(Currency currency, ULocale locale) { 53 return service.registerObject(currency, locale); 54 } 55 unregister(Object registryKey)56 boolean unregister(Object registryKey) { 57 return service.unregisterFactory((Factory)registryKey); 58 } 59 60 private static class CFService extends ICULocaleService { CFService()61 CFService() { 62 super("Currency"); 63 64 class CurrencyFactory extends ICUResourceBundleFactory { 65 protected Object handleCreate(ULocale loc, int kind, ICUService srvc) { 66 return Currency.createCurrency(loc); 67 } 68 } 69 70 registerFactory(new CurrencyFactory()); 71 markDefault(); 72 } 73 } 74 static final ICULocaleService service = new CFService(); 75 } 76