< prev index next >
make/jdk/src/classes/build/tools/cldrconverter/ResourceBundleGenerator.java
Print this page
*** 31,40 ****
--- 31,41 ----
import java.util.Arrays;
import java.util.Formatter;
import java.util.HashSet;
import java.util.HashMap;
import java.util.LinkedHashMap;
+ import java.util.List;
import java.util.Map;
import java.util.Locale;
import java.util.Objects;
import java.util.Set;
import java.util.SortedSet;
*** 104,114 ****
encoding = "us-ascii";
}
} else {
encoding = "iso-8859-1";
}
!
Formatter fmt = null;
if (type == BundleType.TIMEZONE) {
fmt = new Formatter();
Set<String> metaKeys = new HashSet<>();
for (String key : map.keySet()) {
--- 105,115 ----
encoding = "us-ascii";
}
} else {
encoding = "iso-8859-1";
}
! boolean containsList = false;
Formatter fmt = null;
if (type == BundleType.TIMEZONE) {
fmt = new Formatter();
Set<String> metaKeys = new HashSet<>();
for (String key : map.keySet()) {
*** 164,173 ****
--- 165,182 ----
fmt.format(" final String[] %s = new String[] {\n", metaVal);
for (String s : (String[])val) {
fmt.format(" \"%s\",\n", CLDRConverter.saveConvert(s, useJava));
}
fmt.format(" };\n");
+ } else if (val instanceof List) {
+ containsList = true;
+ List<String> values = (List) val;
+ fmt.format(" final List<String> %s = List.of (\n", metaVal);
+ for (int index = 0; index < values.size() - 1; index++) {
+ fmt.format(" \"%s\",\n", CLDRConverter.saveConvert(values.get(index), useJava));
+ }
+ fmt.format(" \"%s\");\n", CLDRConverter.saveConvert(values.get(values.size() - 1), useJava));
} else {
fmt.format(" final String %s = \"%s\";\n", metaVal, CLDRConverter.saveConvert((String)val, useJava));
}
}
*** 193,202 ****
--- 202,217 ----
out.println(CopyrightHeaders.getOpenJDKCopyright());
out.println(CopyrightHeaders.getUnicodeCopyright());
if (useJava) {
out.println("package sun." + packageName + ";\n");
+ // only in the FormatData resource bundles which contains
+ // list in map
+ if (baseName.equals("FormatData") && (containsList
+ || map.values().stream().anyMatch(v -> v instanceof List))) {
+ out.printf("import java.util.List;\n\n");
+ }
out.printf("import %s;\n\n", type.getPathName());
out.printf("public class %s%s extends %s {\n", baseName, "root".equals(localeID) ? "" : "_" + localeID, type.getClassName());
out.println(" @Override\n" +
" protected final Object[][] getContents() {");
*** 224,233 ****
--- 239,256 ----
out.println(" { \"" + key + "\",\n new String[] {");
for (String s : values) {
out.println(" \"" + CLDRConverter.saveConvert(s, useJava) + "\",");
}
out.println(" }\n },");
+ } else if (value instanceof List) {
+ List<String> values = (List) value;
+ out.println(" { \"" + key + "\",\n List.of(");
+ for (int index = 0; index < values.size() - 1; index++) {
+ out.println(" \"" + CLDRConverter.saveConvert(values.get(index), useJava) + "\",");
+ }
+ out.println(" \"" + CLDRConverter.saveConvert(values.get(values.size() - 1), useJava) + "\"");
+ out.println(" )\n },");
} else {
throw new RuntimeException("unknown value type: " + value.getClass().getName());
}
} else {
out.println(key + "=" + CLDRConverter.saveConvert((String) map.get(key), useJava));
< prev index next >