< prev index next >
make/jdk/src/classes/build/tools/cldrconverter/CLDRConverter.java
Print this page
rev 49587 : imported patch 8201507
*** 26,35 ****
--- 26,37 ----
package build.tools.cldrconverter;
import static build.tools.cldrconverter.Bundle.jreTimeZoneNames;
import build.tools.cldrconverter.BundleGenerator.BundleType;
import java.io.File;
+ import java.io.IOException;
+ import java.io.UncheckedIOException;
import java.nio.file.*;
import java.time.*;
import java.util.*;
import java.util.ResourceBundle.Control;
import java.util.logging.Level;
*** 101,110 ****
--- 103,113 ----
private static final ResourceBundle.Control defCon =
ResourceBundle.Control.getControl(ResourceBundle.Control.FORMAT_DEFAULT);
private static final String[] AVAILABLE_TZIDS = TimeZone.getAvailableIDs();
private static String zoneNameTempFile;
+ private static String tzDataDir;
static enum DraftType {
UNCONFIRMED,
PROVISIONAL,
CONTRIBUTED,
*** 201,210 ****
--- 204,217 ----
case "-zntempfile":
zoneNameTempFile = args[++i];
break;
+ case "-tzdatadir":
+ tzDataDir = args[++i];
+ break;
+
case "-help":
usage();
System.exit(0);
break;
*** 259,268 ****
--- 266,276 ----
+ "\t-base dir base directory for CLDR input files%n"
+ "\t-basemodule generates bundles that go into java.base module%n"
+ "\t-baselocales loc(,loc)* locales that go into the base module%n"
+ "\t-o dir output directory (default: ./build/gensrc)%n"
+ "\t-zntempfile template file for java.time.format.ZoneName.java%n"
+ + "\t-tzdatadir tzdata directory for java.time.format.ZoneName.java%n"
+ "\t-utf8 use UTF-8 rather than \\uxxxx (for debug)%n");
}
static void info(String fmt, Object... args) {
if (verbose) {
*** 981,990 ****
--- 989,1000 ----
return zidMapEntry();
} else if (l.equals("%%%%MZONEMAP%%%%")) {
return handlerMetaZones.mzoneMapEntry();
} else if (l.equals("%%%%DEPRECATED%%%%")) {
return handlerSupplMeta.deprecatedMap();
+ } else if (l.equals("%%%%TZDATALINK%%%%")) {
+ return tzDataLinkEntry();
} else {
return Stream.of(l);
}
})
.collect(Collectors.toList()),
*** 1009,1014 ****
--- 1019,1046 ----
id, meta, zone001);
})
.filter(s -> !s.isEmpty())
.sorted();
}
+
+ private static Stream<String> tzDataLinkEntry() {
+ try {
+ return Files.walk(Paths.get(tzDataDir), 1)
+ .filter(p -> !Files.isDirectory(p))
+ .flatMap(CLDRConverter::extractLinks)
+ .sorted();
+ } catch (IOException e) {
+ throw new UncheckedIOException(e);
+ }
+ }
+
+ private static Stream<String> extractLinks(Path tzFile) {
+ try {
+ return Files.lines(tzFile)
+ .filter(l -> l.startsWith("Link"))
+ .map(l -> l.replaceFirst("^Link[\\s]+(\\S+)\\s+(\\S+).*",
+ " \"$2\", \"$1\","));
+ } catch (IOException e) {
+ throw new UncheckedIOException(e);
+ }
+ }
}
< prev index next >