package dk.daoas.adressevedligehold.tasks; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import dk.daoas.adressevedligehold.tasks.Task.TaskBean; public class TaskManager { public static final String TASKMANAGER = "TASKMANAGER"; ExecutorService executor = Executors.newFixedThreadPool(1); private ArrayList tasks = new ArrayList(); private Task currentTask; public List getTasks() { ArrayList tmpList = new ArrayList(); for (Task t : tasks) { tmpList.add( t.getTaskBean() ); } Collections.reverse(tmpList); return tmpList; } public void setCurrentTask(Task task) { this.currentTask = task; } public Task getCurrentTask() { return this.currentTask; } void shutDown() { if (currentTask != null) { currentTask.doAbort(); } executor.shutdownNow(); } public void submitTask(Task newTask) { newTask.setManager(this); tasks.add(newTask); executor.submit(newTask); } }