package org.n3r.quartz.glass.web.form;
import org.hibernate.validator.constraints.NotEmpty;
import org.n3r.quartz.glass.job.util.JobDataMapUtils;
import org.quartz.Job;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import javax.validation.constraints.NotNull;
/**
* Form for job editing
*/
public class NewJobForm {
@NotEmpty
private String group = "DEFAULT";
@NotEmpty
private String name;
@NotNull
private Class<? extends Job> clazz;
private String dataMap;
public NewJobForm() {
}
public NewJobForm(JobDetail jobDetail) {
super();
this.group = jobDetail.getKey().getGroup();
this.name = jobDetail.getKey().getName();
this.clazz = jobDetail.getJobClass();
this.dataMap = JobDataMapUtils.toProperties(jobDetail.getJobDataMap());
}
/**
* Builds a {@link JobDetail} using internal state
*
* @return
*/
public JobDetail getJobDetails() {
return JobBuilder.newJob(clazz)
.withIdentity(name.trim(), group.trim())
.usingJobData(JobDataMapUtils.fromDataMapStr(dataMap))
.storeDurably()
.build();
}
public String getGroup() {
return group;
}
public void setGroup(String group) {
this.group = group;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Class<?> getClazz() {
return clazz;
}
public void setClazz(Class<? extends Job> clazz) {
this.clazz = clazz;
}
public String getDataMap() {
return dataMap;
}
public void setDataMap(String dataMap) {
this.dataMap = dataMap;
}
}