Example #1
0
  public Parser(String input) throws ParsingException {
    this.input = input;

    final StringTokenizer st = new StringTokenizer(input);
    final int tokenCount = st.countTokens();
    if (tokenCount == 1) {
      // Try for a schedule name
      final String name = st.nextToken();
      final String cron = Scheduler.getInstance().getNamedSchedule(name);
      if (cron == null) {
        throw new ParsingException("Named schedule not found: " + name);
      }
      final Parser subParser = new Parser(cron);
      minutes = subParser.minutes;
      hours = subParser.hours;
      days = subParser.days;
      dates = subParser.dates;
      months = subParser.months;
      isYear = subParser.isYear;
      years = subParser.years;
      record = subParser.record;
    } else if (tokenCount == 6) {
      minutes = parseList(st.nextToken(), 0, 59);
      hours = parseList(st.nextToken(), 0, 23);
      days = parseList(st.nextToken(), 0, 7);
      dates = parseList(st.nextToken(), 1, 31);
      months = parseList(st.nextToken(), 1, 12);
      isYear = true;
      years = parseList(st.nextToken(), 0, 49);
      if (days[0] || days[7]) {
        // Both 0 and 7 are Sunday
        days[0] = true;
        days[7] = true;
      }

      record = new Record(minutes, hours, days, dates, months, years);
    } else {
      throw new ParsingException("Invalid number of tokens");
    }
    ba = null;
    tokenStream = null;
  }