package pl.net.bluesoft.rnd.pt.ext.jbpm; import org.jbpm.pvm.internal.history.model.HistoryTaskInstanceImpl; import org.jbpm.pvm.internal.task.TaskImpl; import pl.net.bluesoft.rnd.processtool.ProcessToolContext; import pl.net.bluesoft.rnd.processtool.model.BpmTask; import pl.net.bluesoft.rnd.processtool.model.ProcessInstance; import pl.net.bluesoft.rnd.processtool.model.UserData; import pl.net.bluesoft.rnd.processtool.model.nonpersistent.MutableBpmTask; /** * * Bpm task factory * @author mpawlak@bluesoft.net.pl * */ public class BpmTaskFactory { ProcessToolContext ctx; public BpmTaskFactory(ProcessToolContext ctx) { this.ctx = ctx; } public BpmTask create(TaskImpl task, ProcessInstance pi) { MutableBpmTask t = new MutableBpmTask(); t.setProcessInstance(pi); t.setAssignee(task.getAssignee()); UserData ud = ctx.getUserDataDAO().loadUserByLogin(task.getAssignee()); if (ud == null) { ud = new UserData(); ud.setLogin(task.getAssignee()); } t.setOwner(ud); t.setTaskName(task.getActivityName()); t.setInternalTaskId(task.getId()); t.setExecutionId(task.getExecutionId()); t.setCreateDate(task.getCreateTime()); t.setFinishDate(task.getDuedate()); t.setFinished(false); return t; } public BpmTask create(HistoryTaskInstanceImpl task, ProcessInstance pi) { MutableBpmTask t = new MutableBpmTask(); t.setProcessInstance(pi); t.setAssignee(task.getHistoryTask().getAssignee()); UserData ud = ctx.getUserDataDAO().loadUserByLogin(task.getHistoryTask().getAssignee()); if (ud == null) { ud = new UserData(); ud.setLogin(task.getHistoryTask().getAssignee()); } t.setOwner(ud); t.setTaskName(task.getActivityName()); t.setInternalTaskId(task.getHistoryTask().getId()); t.setExecutionId(task.getExecutionId()); t.setCreateDate(task.getStartTime()); t.setFinishDate(task.getEndTime()); t.setFinished(false); return t; } }