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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2902 by torben, Sun Jan 24 21:48:55 2016 UTC revision 2903 by torben, Wed Feb 3 18:45:33 2016 UTC
# Line 2  package dk.daoas.adressevedligehold.task Line 2  package dk.daoas.adressevedligehold.task
2    
3  import java.util.ArrayList;  import java.util.ArrayList;
4  import java.util.Collections;  import java.util.Collections;
5    import java.util.HashMap;
6  import java.util.List;  import java.util.List;
7  import java.util.concurrent.ExecutorService;  import java.util.concurrent.ExecutorService;
8  import java.util.concurrent.Executors;  import java.util.concurrent.Executors;
# Line 13  public class TaskManager { Line 14  public class TaskManager {
14          public static final String TASKMANAGER = "TASKMANAGER";          public static final String TASKMANAGER = "TASKMANAGER";
15                    
16          ExecutorService executor = Executors.newFixedThreadPool(1);          ExecutorService executor = Executors.newFixedThreadPool(1);
17            
18            private int nextId = 1;
19    
20                    
21          private ArrayList<Task> tasks = new ArrayList<Task>();          private ArrayList<Task> tasks = new ArrayList<Task>();
22            private HashMap<Integer, Task> taskIdMap = new HashMap<Integer,Task>();
23    
24          private Task currentTask;          private Task currentTask;
25                    
26          public List<TaskBean> getTasks() {          public synchronized List<TaskBean> getTasks() {
27                  ArrayList<TaskBean> tmpList = new ArrayList<TaskBean>();                  ArrayList<TaskBean> tmpList = new ArrayList<TaskBean>();
28                  for (Task t : tasks) {                  for (Task t : tasks) {
29                          tmpList.add( t.getTaskBean() );                          tmpList.add( t.getTaskBean() );
# Line 38  public class TaskManager { Line 42  public class TaskManager {
42                  return this.currentTask;                  return this.currentTask;
43          }          }
44                    
45            public Task getTaskById(int id) {
46                    return taskIdMap.get(id);
47            }
48            
49          void shutDown() {          void shutDown() {
50                  if (currentTask != null) {                  if (currentTask != null) {
51                          currentTask.doAbort();                            currentTask.doAbort();  
# Line 46  public class TaskManager { Line 54  public class TaskManager {
54                  executor.shutdownNow();                  executor.shutdownNow();
55          }          }
56                    
57          public void submitTask(Task newTask) {          public synchronized void submitTask(Task newTask) {
58                    int id = getNextTaskid();
59                    newTask.setId(id);
60                    
61                  newTask.setManager(this);                  newTask.setManager(this);
62                                    
63                    taskIdMap.put(id, newTask);
64                  tasks.add(newTask);                  tasks.add(newTask);
65                  executor.submit(newTask);                  executor.submit(newTask);
66          }          }
67                    
68            private synchronized int getNextTaskid() {
69                    return nextId++;
70            }
71            
72    
73  }  }

Legend:
Removed from v.2902  
changed lines
  Added in v.2903

  ViewVC Help
Powered by ViewVC 1.1.20