@@ -0,0 +1,2163 @@
+package org.bdgp.MMSlide.Modules;%0A%0Aimport java.util.List;%0Aimport java.util.Map;%0A%0Aimport javax.swing.JPanel;%0A%0Aimport org.bdgp.MMSlide.Configuration;%0Aimport org.bdgp.MMSlide.Logger;%0Aimport org.bdgp.MMSlide.WorkflowRunner;%0Aimport org.bdgp.MMSlide.DB.Config;%0Aimport org.bdgp.MMSlide.DB.Task;%0Aimport org.bdgp.MMSlide.DB.Task.Status;%0Aimport org.bdgp.MMSlide.DB.TaskDispatch;%0Aimport org.bdgp.MMSlide.DB.WorkflowModule;%0Aimport org.bdgp.MMSlide.Modules.Interfaces.Module;%0A%0Aimport static org.bdgp.MMSlide.Util.where;%0Aimport static org.bdgp.MMSlide.Util.map;%0A%0Apublic class ImageStitcher implements Module %7B%0A    @Override%0A    public Status run(WorkflowRunner workflow, Task task, Map%3CString,Config%3E config, Logger logger) %7B%0A        return Status.SUCCESS;%0A    %7D%0A%0A    @Override%0A    public String getTitle() %7B%0A        return this.getClass().getName();%0A    %7D%0A%0A    @Override%0A    public String getDescription() %7B%0A        return this.getClass().getName();%0A    %7D%0A%0A    @Override%0A    public JPanel configure(Configuration config) %7B%0A        return new JPanel();%0A    %7D%0A%0A    @Override%0A    public void createTaskRecords(WorkflowRunner workflow, String moduleId) %7B%0A        WorkflowModule module = workflow.getWorkflow().selectOne(where(%22id%22,moduleId));%0A        if (module.getParentId() != null) %7B%0A            List%3CTask%3E parentTasks = workflow.getTaskStatus().select(where(%22moduleId%22,module.getParentId()));%0A            for (Task parentTask : parentTasks) %7B%0A                Task task = new Task(moduleId, parentTask.getStorageLocation(), Status.NEW);%0A                workflow.getTaskStatus().insert(task);%0A                task.update(workflow.getTaskStatus());%0A                %0A                TaskDispatch dispatch = new TaskDispatch(task.getId(), parentTask.getId());%0A                workflow.getTaskDispatch().insert(dispatch);%0A            %7D%0A        %7D%0A        else %7B%0A            Task task = new Task(moduleId, workflow.getInstance().getStorageLocation(), Status.NEW);%0A            workflow.getTaskStatus().insert(task);%0A            task.update(workflow.getTaskStatus());%0A        %7D%0A    %7D%0A%0A    @Override%0A    public Map%3CString, Integer%3E getResources() %7B%0A        return map(%22cpu%22,1);%0A    %7D%0A%0A%7D%0A

add ImageStitcher stub module