make/src/classes/build/tools/cldrconverter/ResourceBundleGenerator.java

Print this page
rev 10673 : 8058509: CLDRLocaleDataMetaInfo should be in jdk.localedata
Reviewed-by:


 126                             out.println("                    \"" + CLDRConverter.saveConvert(s, useJava) + "\",");
 127                         }
 128                         out.println("                }\n            },");
 129                     } else {
 130                         throw new RuntimeException("unknown value type: " + value.getClass().getName());
 131                     }
 132                 } else {
 133                     out.println(key + "=" + CLDRConverter.saveConvert((String) map.get(key), useJava));
 134                 }
 135             }
 136             if (useJava) {
 137                 out.println("        };\n        return data;\n    }\n}");
 138             }
 139         }
 140     }
 141 
 142     private static final String METAINFO_CLASS = "CLDRLocaleDataMetaInfo";
 143 
 144     @Override
 145     public void generateMetaInfo(Map<String, SortedSet<String>> metaInfo) throws IOException {
 146         String dirName = CLDRConverter.DESTINATION_DIR + File.separator + "sun" + File.separator + "util" + File.separator
 147                 + "cldr" + File.separator;

 148         File dir = new File(dirName);
 149         if (!dir.exists()) {
 150             dir.mkdirs();
 151         }
 152         File file = new File(dir, METAINFO_CLASS + ".java");
 153         if (!file.exists()) {
 154             file.createNewFile();
 155         }
 156         CLDRConverter.info("Generating file " + file);
 157 
 158         try (PrintWriter out = new PrintWriter(file, "us-ascii")) {
 159             out.println(CopyrightHeaders.getOpenJDKCopyright());
 160 
 161             out.println("package sun.util.cldr;\n\n"
 162                       + "import java.util.ListResourceBundle;\n"
 163                       + "import sun.util.locale.provider.LocaleProviderAdapter;\n"
 164                       + "import sun.util.locale.provider.LocaleDataMetaInfo;\n");
 165             out.printf("public class %s extends ListResourceBundle implements LocaleDataMetaInfo {\n", METAINFO_CLASS);
 166             out.println("    @Override\n" +
 167                         "    protected final Object[][] getContents() {\n" +
 168                         "        final Object[][] data = new Object[][] {");
 169             for (String key : metaInfo.keySet()) {
 170                 out.printf("            { \"%s\",\n", key);
 171                 out.printf("              \"%s\" },\n", toLocaleList(metaInfo.get(key)));
 172             }
 173             out.println("        };\n        return data;\n    }\n\n");
 174 
 175             out.println("    public LocaleProviderAdapter.Type getType() {\n" +
 176                         "        return LocaleProviderAdapter.Type.CLDR;\n" +
 177                         "    }\n\n");
 178 
 179             out.println("    public String availableLanguageTags(String category) {\n" +
 180                         "        return getString(category);\n" +
 181                         "    };\n}");


 126                             out.println("                    \"" + CLDRConverter.saveConvert(s, useJava) + "\",");
 127                         }
 128                         out.println("                }\n            },");
 129                     } else {
 130                         throw new RuntimeException("unknown value type: " + value.getClass().getName());
 131                     }
 132                 } else {
 133                     out.println(key + "=" + CLDRConverter.saveConvert((String) map.get(key), useJava));
 134                 }
 135             }
 136             if (useJava) {
 137                 out.println("        };\n        return data;\n    }\n}");
 138             }
 139         }
 140     }
 141 
 142     private static final String METAINFO_CLASS = "CLDRLocaleDataMetaInfo";
 143 
 144     @Override
 145     public void generateMetaInfo(Map<String, SortedSet<String>> metaInfo) throws IOException {
 146         String dirName = CLDRConverter.DESTINATION_DIR + File.separator + "sun" + File.separator + "util" +
 147             File.separator + "resources" + File.separator + "cldr" + File.separator +
 148             "provider" + File.separator ;
 149         File dir = new File(dirName);
 150         if (!dir.exists()) {
 151             dir.mkdirs();
 152         }
 153         File file = new File(dir, METAINFO_CLASS + ".java");
 154         if (!file.exists()) {
 155             file.createNewFile();
 156         }
 157         CLDRConverter.info("Generating file " + file);
 158 
 159         try (PrintWriter out = new PrintWriter(file, "us-ascii")) {
 160             out.println(CopyrightHeaders.getOpenJDKCopyright());
 161 
 162             out.println("package sun.util.resources.cldr.provider;\n\n"
 163                       + "import java.util.ListResourceBundle;\n"
 164                       + "import sun.util.locale.provider.LocaleProviderAdapter;\n"
 165                       + "import sun.util.locale.provider.LocaleDataMetaInfo;\n");
 166             out.printf("public class %s extends ListResourceBundle implements LocaleDataMetaInfo {\n", METAINFO_CLASS);
 167             out.println("    @Override\n" +
 168                         "    protected final Object[][] getContents() {\n" +
 169                         "        final Object[][] data = new Object[][] {");
 170             for (String key : metaInfo.keySet()) {
 171                 out.printf("            { \"%s\",\n", key);
 172                 out.printf("              \"%s\" },\n", toLocaleList(metaInfo.get(key)));
 173             }
 174             out.println("        };\n        return data;\n    }\n\n");
 175 
 176             out.println("    public LocaleProviderAdapter.Type getType() {\n" +
 177                         "        return LocaleProviderAdapter.Type.CLDR;\n" +
 178                         "    }\n\n");
 179 
 180             out.println("    public String availableLanguageTags(String category) {\n" +
 181                         "        return getString(category);\n" +
 182                         "    };\n}");