EMMA Coverage Report (generated Tue Aug 23 05:57:12 CDT 2011)
[all classes][felix.society]

COVERAGE SUMMARY FOR SOURCE FILE [TaskList.java]

nameclass, %method, %block, %line, %
TaskList.java100% (2/2)67%  (4/6)66%  (63/95)64%  (14/22)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class TaskList100% (1/1)50%  (2/4)60%  (12/20)50%  (3/6)
TaskList (int): void 0%   (0/1)0%   (0/6)0%   (0/2)
generateWorker (): Worker 0%   (0/1)0%   (0/2)0%   (0/1)
TaskList (): void 100% (1/1)100% (4/4)100% (2/2)
generateWorker (ExecutorService): Worker 100% (1/1)100% (8/8)100% (1/1)
     
class TaskList$TaskListExecutionWorker100% (1/1)100% (2/2)68%  (51/75)69%  (11/16)
run (): void 100% (1/1)62%  (39/63)55%  (6/11)
TaskList$TaskListExecutionWorker (TaskList, ArrayList, ExecutorService): void 100% (1/1)100% (12/12)100% (5/5)

1package felix.society;
2 
3import java.util.ArrayList;
4import java.util.concurrent.ExecutorService;
5 
6import felix.society.Task.TaskType;
7 
8/**
9 * TaskList -- Subtasks in it must be executed in order,
10 * and the downstream tasks can be executed only if
11 * the upstream tasks are joined.
12 * @author czhang
13 *
14 */
15public class TaskList extends Task{
16 
17        public TaskList(){
18                super(TaskType.TASKLIST);
19        }
20        
21        public TaskList(int _nRuns){
22                super(TaskType.TASKLIST, _nRuns);
23        }
24        
25        @Override
26        public Worker generateWorker(){
27                return null;
28        }
29        
30        public Worker generateWorker(ExecutorService pool) {
31                return new TaskListExecutionWorker(this.subTasks, pool);
32        }
33 
34        /**
35         * Worker for running this TaskList.
36         * @author czhang
37         *
38         */
39        public class TaskListExecutionWorker extends Worker{
40                
41                ArrayList<Task> subtasks;
42                ExecutorService pool;
43                
44                public TaskListExecutionWorker(ArrayList<Task> _subtasks,
45                                ExecutorService _pool){
46                        subtasks = _subtasks;
47                        pool = _pool;
48                }
49 
50                @Override
51                public void run() {
52                        
53                        try{
54                                for(Task t : subTasks){
55                                        if(t.getType() == TaskType.TASK){
56                                                currentWorker = t.generateWorker();
57                                                currentFuture = pool.submit(currentWorker);
58                                                currentFuture.get();
59                                        }else{
60                                                currentWorker = t.generateWorker(pool);
61                                                currentFuture = softpool.submit(currentWorker);
62                                                currentFuture.get();
63                                        }
64                                }
65                        }catch(Exception e){
66                                submitException(e);
67                        }
68                }
69                
70        }
71 
72}
73 
74 
75 
76 
77 
78 
79 
80 
81 
82 

[all classes][felix.society]
EMMA 2.0.5312 EclEmma Fix 2 (C) Vladimir Roubtsov