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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2903 - (hide 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 torben 2838 package dk.daoas.adressevedligehold.tasks;
2    
3     import java.util.ArrayList;
4     import java.util.Collections;
5 torben 2903 import java.util.HashMap;
6 torben 2838 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 torben 2903
18     private int nextId = 1;
19 torben 2838
20    
21     private ArrayList<Task> tasks = new ArrayList<Task>();
22 torben 2903 private HashMap<Integer, Task> taskIdMap = new HashMap<Integer,Task>();
23 torben 2838
24     private Task currentTask;
25    
26 torben 2903 public synchronized List<TaskBean> getTasks() {
27 torben 2838 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 torben 2903 public Task getTaskById(int id) {
46     return taskIdMap.get(id);
47     }
48    
49 torben 2838 void shutDown() {
50     if (currentTask != null) {
51     currentTask.doAbort();
52     }
53    
54     executor.shutdownNow();
55     }
56    
57 torben 2903 public synchronized void submitTask(Task newTask) {
58     int id = getNextTaskid();
59     newTask.setId(id);
60    
61 torben 2838 newTask.setManager(this);
62    
63 torben 2903 taskIdMap.put(id, newTask);
64 torben 2838 tasks.add(newTask);
65     executor.submit(newTask);
66     }
67    
68 torben 2903 private synchronized int getNextTaskid() {
69     return nextId++;
70     }
71    
72 torben 2838
73     }

  ViewVC Help
Powered by ViewVC 1.1.20