29 import java.util.ResourceBundle;
30 import sun.util.resources.LocaleData;
31
32 /**
33 * Service Provider for loading locale data resource bundles in jdk.localedata
34 * except for JavaTimeSupplementary resource bundles.
35 */
36 public class LocaleDataProvider extends LocaleData.CommonResourceBundleProvider {
37 @Override
38 public ResourceBundle getBundle(String baseName, Locale locale) {
39 return loadResourceBundle(toBundleName(baseName, locale));
40 }
41
42 /**
43 * Utility method for loading a resource bundle in jdk.localedata.
44 */
45 static ResourceBundle loadResourceBundle(String bundleName) {
46 Class<?> c = Class.forName(LocaleDataProvider.class.getModule(), bundleName);
47 if (c != null && ResourceBundle.class.isAssignableFrom(c)) {
48 try {
49 @SuppressWarnings("unchecked")
50 ResourceBundle rb = ((Class<ResourceBundle>) c).newInstance();
51 return rb;
52 } catch (InstantiationException | IllegalAccessException e) {
53 throw new InternalError(e);
54 }
55 }
56 return null;
57 }
58 }
|
29 import java.util.ResourceBundle;
30 import sun.util.resources.LocaleData;
31
32 /**
33 * Service Provider for loading locale data resource bundles in jdk.localedata
34 * except for JavaTimeSupplementary resource bundles.
35 */
36 public class LocaleDataProvider extends LocaleData.CommonResourceBundleProvider {
37 @Override
38 public ResourceBundle getBundle(String baseName, Locale locale) {
39 return loadResourceBundle(toBundleName(baseName, locale));
40 }
41
42 /**
43 * Utility method for loading a resource bundle in jdk.localedata.
44 */
45 static ResourceBundle loadResourceBundle(String bundleName) {
46 Class<?> c = Class.forName(LocaleDataProvider.class.getModule(), bundleName);
47 if (c != null && ResourceBundle.class.isAssignableFrom(c)) {
48 try {
49 @SuppressWarnings({"unchecked", "deprecation"})
50 ResourceBundle rb = ((Class<ResourceBundle>) c).newInstance();
51 return rb;
52 } catch (InstantiationException | IllegalAccessException e) {
53 throw new InternalError(e);
54 }
55 }
56 return null;
57 }
58 }
|