if ( !info.isSuspended() ) {
logger.debug("Adding scheduled job: {}", info.getName());
int index = 0;
for(final ScheduleInfo si : info.getSchedules()) {
final String name = info.getSchedulerJobId() + "-" + String.valueOf(index);
ScheduleOptions options = null;
switch ( si.getType() ) {
case DAILY:
case WEEKLY:
case HOURLY:
case MONTHLY:
case YEARLY:
case CRON:
options = this.scheduler.EXPR(((ScheduleInfoImpl)si).getCronExpression());
break;
case DATE:
options = this.scheduler.AT(((ScheduleInfoImpl)si).getNextScheduledExecution());
break;
}
// Create configuration for scheduled job
final Map<String, Serializable> config = new HashMap<String, Serializable>();
config.put(PROPERTY_READ_JOB, info);
config.put(PROPERTY_SCHEDULE_INDEX, index);
this.scheduler.schedule(this, options.name(name).config(config).canRunConcurrently(false));
index++;
}
}
}