/** * Parses a Rule line. * * @param st the tokenizer, not null */ private void parseRuleLine(StringTokenizer st) { TZDBRule rule = new TZDBRule(); String name = st.nextToken(); if (rules.containsKey(name) == false) { rules.put(name, new ArrayList<TZDBRule>()); } rules.get(name).add(rule); rule.startYear = parseYear(st.nextToken(), 0); rule.endYear = parseYear(st.nextToken(), rule.startYear); if (rule.startYear > rule.endYear) { throw new IllegalArgumentException("Year order invalid: " + rule.startYear + " > " + rule.endYear); } parseOptional(st.nextToken()); // type is unused parseMonthDayTime(st, rule); rule.savingsAmount = parsePeriod(st.nextToken()); rule.text = parseOptional(st.nextToken()); }
ZoneRulesBuilder addToBuilder(ZoneRulesBuilder bld, Map<String, List<TZDBRule>> rules) { if (year != null) { bld.addWindow(standardOffset, toDateTime(year.getValue()), timeDefinition); } else { bld.addWindowForever(standardOffset); } if (fixedSavingsSecs != null) { bld.setFixedSavingsToWindow(fixedSavingsSecs); } else { List<TZDBRule> tzdbRules = rules.get(savingsRule); if (tzdbRules == null) { throw new IllegalArgumentException("Rule not found: " + savingsRule); } for (TZDBRule tzdbRule : tzdbRules) { tzdbRule.addToBuilder(bld); } } return bld; }
ZoneRulesBuilder addToBuilder(ZoneRulesBuilder bld, Map<String, List<TZDBRule>> rules) { if (year != null) { bld.addWindow(standardOffset, toDateTime(year.getValue()), timeDefinition); } else { bld.addWindowForever(standardOffset); } if (fixedSavingsSecs != null) { bld.setFixedSavingsToWindow(fixedSavingsSecs); } else { List<TZDBRule> tzdbRules = rules.get(savingsRule); if (tzdbRules == null) { throw new IllegalArgumentException("Rule not found: " + savingsRule); } for (TZDBRule tzdbRule : tzdbRules) { tzdbRule.addToBuilder(bld); } } return bld; }
/** * Parses a Rule line. * * @param st the tokenizer, not null */ private void parseRuleLine(StringTokenizer st) { TZDBRule rule = new TZDBRule(); String name = st.nextToken(); if (rules.containsKey(name) == false) { rules.put(name, new ArrayList<TZDBRule>()); } rules.get(name).add(rule); rule.startYear = parseYear(st.nextToken(), 0); rule.endYear = parseYear(st.nextToken(), rule.startYear); if (rule.startYear > rule.endYear) { throw new IllegalArgumentException("Year order invalid: " + rule.startYear + " > " + rule.endYear); } parseOptional(st.nextToken()); // type is unused parseMonthDayTime(st, rule); rule.savingsAmount = parsePeriod(st.nextToken()); rule.text = parseOptional(st.nextToken()); }
void addToBuilder(ZoneRulesBuilder bld) { adjustToFowards(2004); // irrelevant, treat as leap year bld.addRuleToWindow(startYear, endYear, month, dayOfMonth, dayOfWeek, time, adjustDays, timeDefinition, savingsAmount); } }
void addToBuilder(ZoneRulesBuilder bld) { adjustToFowards(2004); // irrelevant, treat as leap year bld.addRuleToWindow(startYear, endYear, month, dayOfMonth, dayOfWeek, time, adjustDays, timeDefinition, savingsAmount); } }