< prev index next >
make/jdk/src/classes/build/tools/cldrconverter/ResourceBundleGenerator.java
Print this page
rev 47480 : [mq]: 8176841
@@ -1,7 +1,7 @@
/*
- * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2017, 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
@@ -254,23 +254,24 @@
file.createNewFile();
}
CLDRConverter.info("Generating file " + file);
try (PrintWriter out = new PrintWriter(file, "us-ascii")) {
- out.println(CopyrightHeaders.getOpenJDKCopyright());
+ out.printf(CopyrightHeaders.getOpenJDKCopyright());
- out.println((CLDRConverter.isBaseModule ? "package sun.util.cldr;\n\n" :
+ out.printf((CLDRConverter.isBaseModule ? "package sun.util.cldr;\n\n" :
"package sun.util.resources.cldr.provider;\n\n")
+ "import java.util.HashMap;\n"
+ "import java.util.Locale;\n"
+ "import java.util.Map;\n"
- + "import sun.util.locale.provider.LocaleProviderAdapter;\n"
- + "import sun.util.locale.provider.LocaleDataMetaInfo;\n");
+ + "import sun.util.locale.provider.LocaleDataMetaInfo;\n"
+ + "import sun.util.locale.provider.LocaleProviderAdapter;\n\n");
out.printf("public class %s implements LocaleDataMetaInfo {\n", className);
- out.println(" private static final Map<String, String> resourceNameToLocales = new HashMap<>();\n" +
+ out.printf(" private static final Map<String, String> resourceNameToLocales = new HashMap<>();\n" +
(CLDRConverter.isBaseModule ?
- " private static final Map<Locale, String[]> parentLocalesMap = new HashMap<>();\n\n" : "\n") +
+ " private static final Map<Locale, String[]> parentLocalesMap = new HashMap<>();\n\n" :
+ "\n") +
" static {\n");
for (String key : metaInfo.keySet()) {
if (key.startsWith(CLDRConverter.PARENT_LOCALE_PREFIX)) {
String parentTag = key.substring(CLDRConverter.PARENT_LOCALE_PREFIX.length());
@@ -294,34 +295,54 @@
count = 0;
}
}
out.printf("\n });\n");
} else {
+ if ("AvailableLocales".equals(key)) {
out.printf(" resourceNameToLocales.put(\"%s\",\n", key);
- out.printf(" \"%s\");\n",
- toLocaleList(key.equals("FormatData") ? metaInfo.get("AvailableLocales") :
- metaInfo.get(key), false));
+ out.printf(" \"%s\");\n", toLocaleList(metaInfo.get(key), false));
+ }
}
}
- out.println(" }\n\n");
- out.println(" @Override\n" +
+ out.printf(" }\n\n");
+
+ // end of static initializer block.
+
+ // Short TZ names for delayed initialization
+ if (CLDRConverter.isBaseModule) {
+ out.printf(" private static class TZShortIDMapHolder {\n");
+ out.printf(" static final Map<String, String> tzShortIDMap = new HashMap<>();\n");
+ out.printf(" static {\n");
+ CLDRConverter.handlerTimeZone.getData().entrySet().stream()
+ .forEach(e -> {
+ out.printf(" tzShortIDMap.put(\"%s\", \"%s\");\n", e.getKey(),
+ ((String)e.getValue()));
+ });
+ out.printf(" }\n }\n\n");
+ }
+
+ out.printf(" @Override\n" +
" public LocaleProviderAdapter.Type getType() {\n" +
" return LocaleProviderAdapter.Type.CLDR;\n" +
" }\n\n");
- out.println(" @Override\n" +
+ out.printf(" @Override\n" +
" public String availableLanguageTags(String category) {\n" +
" return resourceNameToLocales.getOrDefault(category, \"\");\n" +
" }\n\n");
if (CLDRConverter.isBaseModule) {
+ out.printf(" @Override\n" +
+ " public Map<String, String> tzShortIDs() {\n" +
+ " return TZShortIDMapHolder.tzShortIDMap;\n" +
+ " }\n\n");
out.printf(" public Map<Locale, String[]> parentLocales() {\n" +
" return parentLocalesMap;\n" +
" }\n}");
} else {
- out.println("}");
+ out.printf("}");
}
}
}
private static final Locale.Builder LOCALE_BUILDER = new Locale.Builder();
< prev index next >