package org.akaza.openclinica.web.job;
import org.quartz.JobDataMap;
import org.quartz.ScheduleBuilder;
import org.quartz.SimpleTrigger;
import org.quartz.spi.MutableTrigger;
import org.springframework.scheduling.Trigger;
import org.springframework.scheduling.quartz.SimpleTriggerFactoryBean;
import static org.quartz.TriggerBuilder.*;
import static org.quartz.SimpleScheduleBuilder.*;
import java.util.Date;
public class XalanTriggerService {
public XalanTriggerService() {
}
public static final String DATASET_ID = "dsId";
public static final String EMAIL = "contactEmail";
public static final String USER_ID = "user_id";
public static final String XSL_FILE_PATH = "xslFilePath";
public static final String XML_FILE_PATH = "xmlFilePath";
public static final String SQL_FILE_PATH = "sqlFilePath";
public static String TRIGGER_GROUP_NAME = "XalanTriggers";
public SimpleTrigger generateXalanTrigger(String xslFile, String xmlFile, String sqlFile, int datasetId) {
Date startDateTime = new Date(System.currentTimeMillis());
String jobName = xmlFile + datasetId;
SimpleTrigger simpleTrigger = (SimpleTrigger) newTrigger()
.forJob(jobName, TRIGGER_GROUP_NAME)
.startAt(startDateTime)
.withSchedule(simpleSchedule().withRepeatCount(1).withIntervalInSeconds(100)
.withMisfireHandlingInstructionNextWithExistingCount());
// set job data map
JobDataMap jobDataMap = new JobDataMap();
// jobDataMap.put(EMAIL, email);
// jobDataMap.put(USER_ID, userAccount.getId());
jobDataMap.put(XSL_FILE_PATH, xslFile);
jobDataMap.put(XML_FILE_PATH, xmlFile);
jobDataMap.put(SQL_FILE_PATH, sqlFile);
// jobDataMap.put(DIRECTORY, directory);
// jobDataMap.put(ExampleSpringJob.LOCALE, locale);
simpleTrigger.getTriggerBuilder().usingJobData(jobDataMap);
return simpleTrigger;
}
}