make/tools/src/build/tools/generatebreakiteratordata/GenerateBreakIteratorData.java

Print this page
rev 5696 : 6336885: RFE: Locale Data Deployment Enhancements
4609153: Provide locale data for Indic locales
5104387: Support for gl_ES locale (galician language)
6337471: desktop/system locale preferences support
7056139: (cal) SPI support for locale-dependent Calendar parameters
7058206: Provide CalendarData SPI for week params and display field value names
7073852: Support multiple scripts for digits and decimal symbols per locale
7079560: [Fmt-Da] Context dependent month names support in SimpleDateFormat
7171324: getAvailableLocales() of locale sensitive services should return the actual availability of locales
7151414: (cal) Support calendar type identification
7168528: LocaleServiceProvider needs to be aware of Locale extensions
7171372: (cal) locale's default Calendar should be created if unknown calendar is specified
Summary: JEP 127: Improve Locale Data Packaging and Adopt Unicode CLDR Data (part 1 w/o packaging changes. by Naoto Sato and Masayoshi Okutsu)

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.  Oracle designates this

@@ -77,49 +77,39 @@
     private static void generateFiles() {
         String[] classNames;
         ResourceBundle rules, info;
 
         info =  ResourceBundle.getBundle("sun.text.resources.BreakIteratorInfo",
-                                       new Locale(language, country, valiant));
+                                         new Locale(language, country, valiant),
+                                         BreakIteratorRBControl.INSTANCE);
         classNames = info.getStringArray("BreakIteratorClasses");
 
         rules = ResourceBundle.getBundle("sun.text.resources.BreakIteratorRules",
-                                       new Locale(language, country, valiant));
+                                         new Locale(language, country, valiant),
+                                         BreakIteratorRBControl.INSTANCE);
 
-        /*
-         * Fallback is not necessary here.... So, cannot use getBundle().
-         */
-        try {
-            info = (ResourceBundle)Class.forName("sun.text.resources.BreakIteratorInfo" + localeName).newInstance();
-
-            Enumeration<String> keys = info.getKeys();
-            while (keys.hasMoreElements()) {
-                String key = keys.nextElement();
-
-                if (key.equals("CharacterData")) {
-                    generateDataFile(info.getString(key),
+        if (info.containsKey("CharacterData")) {
+            generateDataFile(info.getString("CharacterData"),
                                      rules.getString("CharacterBreakRules"),
                                      classNames[0]);
-                } else if (key.endsWith("WordData")) {
-                    generateDataFile(info.getString(key),
+        }
+        if (info.containsKey("WordData")) {
+            generateDataFile(info.getString("WordData"),
                                      rules.getString("WordBreakRules"),
                                      classNames[1]);
-                } else if (key.endsWith("LineData")) {
-                    generateDataFile(info.getString(key),
+        }
+        if (info.containsKey("LineData")) {
+            generateDataFile(info.getString("LineData"),
                                      rules.getString("LineBreakRules"),
                                      classNames[2]);
-                } else if (key.endsWith("SentenceData")) {
-                    generateDataFile(info.getString(key),
+        }
+        if (info.containsKey("SentenceData")) {
+            generateDataFile(info.getString("SentenceData"),
                                      rules.getString("SentenceBreakRules"),
                                      classNames[3]);
                 }
             }
-        }
-        catch (Exception e) {
-            throw new InternalError(e.toString());
-        }
-    }
 
     /**
      * Generate a data file for break-iterator
      */
     private static void generateDataFile(String datafile, String rule, String builder) {