1 24 package org.riotfamily.riot.job.command; 25 26 import org.riotfamily.riot.job.JobManager; 27 import org.riotfamily.riot.job.persistence.JobDetail; 28 import org.riotfamily.riot.list.command.CommandContext; 29 import org.riotfamily.riot.list.command.CommandResult; 30 import org.riotfamily.riot.list.command.core.AbstractCommand; 31 import org.riotfamily.riot.list.command.result.GotoUrlResult; 32 import org.riotfamily.riot.runtime.RiotRuntime; 33 import org.riotfamily.riot.runtime.RiotRuntimeAware; 34 35 public class JobCommand extends AbstractCommand implements 36 RiotRuntimeAware { 37 38 public static final String JOB_STATUS_ACTION = "jobStatus"; 39 40 private JobManager jobManager; 41 42 private String jobType; 43 44 private RiotRuntime runtime; 45 46 public void setJobManager(JobManager jobManager) { 47 this.jobManager = jobManager; 48 } 49 50 public void setJobType(String jobType) { 51 this.jobType = jobType; 52 } 53 54 public void setRiotRuntime(RiotRuntime runtime) { 55 this.runtime = runtime; 56 } 57 58 public boolean isEnabled(CommandContext context) { 59 return true; 60 } 61 62 public CommandResult execute(CommandContext context) { 63 String objectId = context.getObjectId() != null 64 ? context.getObjectId() : context.getParentId(); 65 66 JobDetail detail = jobManager.getOrCreateJob(jobType, objectId); 67 return new GotoUrlResult(context, runtime.getServletPrefix() 68 + "/job?jobId=" + detail.getId() + "&type=" + jobType); 69 } 70 } 71 | Popular Tags |