/[projects]/dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/tasks/TaskManager.java
ViewVC logotype

Contents of /dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/tasks/TaskManager.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2903 - (show annotations) (download)
Wed Feb 3 18:45:33 2016 UTC (8 years, 3 months ago) by torben
File size: 1547 byte(s)
Implement logging system

Switch task to rest/jersey
1 package dk.daoas.adressevedligehold.tasks;
2
3 import java.util.ArrayList;
4 import java.util.Collections;
5 import java.util.HashMap;
6 import java.util.List;
7 import java.util.concurrent.ExecutorService;
8 import java.util.concurrent.Executors;
9
10 import dk.daoas.adressevedligehold.tasks.Task.TaskBean;
11
12 public class TaskManager {
13
14 public static final String TASKMANAGER = "TASKMANAGER";
15
16 ExecutorService executor = Executors.newFixedThreadPool(1);
17
18 private int nextId = 1;
19
20
21 private ArrayList<Task> tasks = new ArrayList<Task>();
22 private HashMap<Integer, Task> taskIdMap = new HashMap<Integer,Task>();
23
24 private Task currentTask;
25
26 public synchronized List<TaskBean> getTasks() {
27 ArrayList<TaskBean> tmpList = new ArrayList<TaskBean>();
28 for (Task t : tasks) {
29 tmpList.add( t.getTaskBean() );
30 }
31
32 Collections.reverse(tmpList);
33
34 return tmpList;
35 }
36
37 public void setCurrentTask(Task task) {
38 this.currentTask = task;
39 }
40
41 public Task getCurrentTask() {
42 return this.currentTask;
43 }
44
45 public Task getTaskById(int id) {
46 return taskIdMap.get(id);
47 }
48
49 void shutDown() {
50 if (currentTask != null) {
51 currentTask.doAbort();
52 }
53
54 executor.shutdownNow();
55 }
56
57 public synchronized void submitTask(Task newTask) {
58 int id = getNextTaskid();
59 newTask.setId(id);
60
61 newTask.setManager(this);
62
63 taskIdMap.put(id, newTask);
64 tasks.add(newTask);
65 executor.submit(newTask);
66 }
67
68 private synchronized int getNextTaskid() {
69 return nextId++;
70 }
71
72
73 }

  ViewVC Help
Powered by ViewVC 1.1.20