package net.techreadiness.ui.task; import java.util.List; import com.google.common.collect.Lists; public abstract class TaskFlowDefinition { public abstract String getNamespace(); public abstract String getStartAction(); public abstract String getReturnUrl(); public abstract String getEndTaskFlowUrl(); protected List<Task> tasks; protected List<Task> externalTasks; public void addTask(Task task) { if (tasks == null) { tasks = Lists.newArrayList(); } tasks.add(task); } public List<Task> getTasks() { return tasks; } public void setTasks(List<Task> tasks) { this.tasks = tasks; } public Task getTask(String taskCode) { for (Task task : tasks) { if (task.getTaskName().equals(taskCode)) { return task; } } return null; } public String getTaskCode(Task task) { return task.getTaskName(); } public void addExternalTask(Task task) { if (externalTasks == null) { externalTasks = Lists.newArrayList(); } externalTasks.add(task); } public List<Task> getExternalTasks() { return externalTasks; } public void setExternalTasks(List<Task> externalTasks) { this.externalTasks = externalTasks; } public Task getExternalTask(String taskCode) { for (Task task : externalTasks) { if (task.getTaskName().equals(taskCode)) { return task; } } return null; } }