public DefaultSessionSchedule(SessionSettings settings, SessionID sessionID) throws ConfigError,
FieldConvertError {
nonStopSession = settings.isSetting(sessionID, Session.SETTING_NON_STOP_SESSION) && settings.getBool(sessionID, Session.SETTING_NON_STOP_SESSION);
TimeZone defaultTimeZone = getDefaultTimeZone(settings, sessionID);
if (nonStopSession) {
startTime = endTime = new TimeEndPoint(NOT_SET, 0, 0, 0, defaultTimeZone);
return;
}
boolean startDayPresent = settings.isSetting(sessionID, Session.SETTING_START_DAY);
boolean endDayPresent = settings.isSetting(sessionID, Session.SETTING_END_DAY);
if (startDayPresent && !endDayPresent) {
throw new ConfigError("Session " + sessionID + ": StartDay used without EndDay");
}
if (endDayPresent && !startDayPresent) {
throw new ConfigError("Session " + sessionID + ": EndDay used without StartDay");
}
startTime = getTimeEndPoint(settings, sessionID, defaultTimeZone, Session.SETTING_START_TIME, Session.SETTING_START_DAY);
endTime = getTimeEndPoint(settings, sessionID, defaultTimeZone, Session.SETTING_END_TIME, Session.SETTING_END_DAY);
log.info("[" + sessionID + "] " + toString());
}