private void parse(String expression) throws IllegalArgumentException {
String[] fields = StringUtils.tokenizeToStringArray(expression, " ");
if (fields.length != 6) {
throw new IllegalArgumentException(String.format(""
+ "cron expression must consist of 6 fields (found %d in %s)", fields.length, expression));
}
setNumberHits(seconds, fields[0], 60);
setNumberHits(minutes, fields[1], 60);
setNumberHits(hours, fields[2], 24);
setDaysOfMonth(daysOfMonth, fields[3], 31);
setNumberHits(months, replaceOrdinals(fields[4], "JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC"), 12);
setDays(daysOfWeek, replaceOrdinals(fields[5], "SUN,MON,TUE,WED,THU,FRI,SAT"), 8);
if (daysOfWeek.get(7)) {
daysOfWeek.set(0);
daysOfWeek.clear(7);
}
}