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 out.printf("public class %s extends ListResourceBundle {\n", METAINFO_CLASS);
164 out.println(" @Override\n" +
165 " protected final Object[][] getContents() {\n" +
166 " final Object[][] data = new Object[][] {");
167 for (String key : metaInfo.keySet()) {
168 out.printf(" { \"%s\",\n", key);
169 out.printf(" \"%s\" },\n", toLocaleList(metaInfo.get(key)));
170 }
171 out.println(" };\n return data;\n }\n}");
172 }
173 }
174
175 private static String toLocaleList(SortedSet<String> set) {
176 StringBuilder sb = new StringBuilder(set.size() * 6);
177 for (String id : set) {
178 if (!"root".equals(id)) {
179 if (sb.length() > 0) {
180 sb.append(' ');
181 }
182 sb.append(id);
183 }
184 }
185 return sb.toString();
186 }
187 }
|
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}");
182 }
183 }
184
185 private static String toLocaleList(SortedSet<String> set) {
186 StringBuilder sb = new StringBuilder(set.size() * 6);
187 for (String id : set) {
188 if (!"root".equals(id)) {
189 if (sb.length() > 0) {
190 sb.append(' ');
191 }
192 sb.append(id);
193 }
194 }
195 return sb.toString();
196 }
197 }
|