< 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 >