Class TZDBZoneRulesCompiler
java.lang.Object
javax.time.calendar.zone.TZDBZoneRulesCompiler
A builder that can read the TZDB TimeZone files and build ZoneRules instances.
TZDBZoneRulesCompiler is thread-safe.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) classClass representing a month-day-time in the TZDB file.(package private) final classClass representing a rule line in the TZDB file.(package private) final classClass representing a linked set of zone lines in the TZDB file. -
Field Summary
FieldsModifier and TypeFieldDescriptionThe built zones.A map to deduplicate object instances.The TZDB links.private final Map<String, List<TZDBZoneRulesCompiler.TZDBRule>> The TZDB rules.The source files.private static final DateTimeFormatterTime parser.private final booleanThe version to produce.private final StringThe version to produce.private final Map<String, List<TZDBZoneRulesCompiler.TZDBZone>> The TZDB zones. -
Constructor Summary
ConstructorsConstructorDescriptionTZDBZoneRulesCompiler(String version, List<File> sourceFiles, boolean verbose) Constructor used if you want to invoke the compiler manually. -
Method Summary
Modifier and TypeMethodDescriptionprivate voidBuild the rules, zones and links into real zones.compile()Compile the rules file.(package private) <T> Tdeduplicate(T object) Deduplicates an object instance.static voidReads a set of TZDB files and builds a single combined data file.private booleanprivate static voidOutputs the file.private static voidoutputFile(File dstFile, Map<String, SortedMap<String, ZoneRules>> allBuiltZones, Set<String> allRegionIds, Set<ZoneRules> allRules) Outputs the file.private static voidOutput usage text for the command line.private DayOfWeekparseDayOfWeek(String str) private voidParses a source file.private voidParses the source files.private MonthOfYearparseMonth(String str) private voidParses a Rule line.private ZoneOffsetparseOffset(String str) private StringparseOptional(String str) private PeriodparsePeriod(String str) private voidParses a Rule line.private intprivate ZoneRulesBuilder.TimeDefinitionparseTimeDefinition(char c) private intprivate booleanparseZoneLine(StringTokenizer st, List<TZDBZoneRulesCompiler.TZDBZone> zoneList) Parses a Zone line.private voidprintVerbose(String message) Prints a verbose message.private static voidProcess to create the jar files.(package private) voidsetDeduplicateMap(Map<Object, Object> deduplicateMap) Sets the deduplication map.
-
Field Details
-
TIME_PARSER
Time parser. -
rules
The TZDB rules. -
zones
The TZDB zones. -
links
-
builtZones
-
deduplicateMap
-
version
The version to produce. -
sourceFiles
-
verbose
private final boolean verboseThe version to produce.
-
-
Constructor Details
-
TZDBZoneRulesCompiler
Constructor used if you want to invoke the compiler manually.- Parameters:
version- the version, such as 2009a, not nullsourceFiles- the list of source files, not empty, not nullverbose- whether to output verbose messages
-
-
Method Details
-
main
Reads a set of TZDB files and builds a single combined data file.- Parameters:
args- the arguments
-
outputHelp
private static void outputHelp()Output usage text for the command line. -
process
-
outputFile
-
outputFile
-
compile
-
setDeduplicateMap
-
parseFiles
-
parseFile
-
parseRuleLine
Parses a Rule line.- Parameters:
st- the tokenizer, not null
-
parseZoneLine
Parses a Zone line.- Parameters:
st- the tokenizer, not null- Returns:
- true if the zone is complete
-
parseMonthDayTime
Parses a Rule line.- Parameters:
st- the tokenizer, not nullmdt- the object to parse into, not null
-
parseYear
-
parseMonth
-
parseDayOfWeek
-
matches
-
parseOptional
-
parseSecs
-
parseOffset
-
parsePeriod
-
parseTimeDefinition
-
buildZoneRules
-
deduplicate
<T> T deduplicate(T object) Deduplicates an object instance.- Type Parameters:
T- the generic type- Parameters:
object- the object to deduplicate- Returns:
- the deduplicated object
-
printVerbose
Prints a verbose message.- Parameters:
message- the message, not null
-