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

COVERAGE SUMMARY FOR SOURCE FILE [TaskSet.java]

nameclass, %method, %block, %line, %
TaskSet.java100% (2/2)67%  (4/6)72%  (82/114)68%  (17/25)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class TaskSet100% (1/1)50%  (2/4)63%  (12/19)50%  (3/6)
TaskSet (Integer): void 0%   (0/1)0%   (0/5)0%   (0/2)
generateWorker (): Worker 0%   (0/1)0%   (0/2)0%   (0/1)
TaskSet (): void 100% (1/1)100% (4/4)100% (2/2)
generateWorker (ExecutorService): Worker 100% (1/1)100% (8/8)100% (1/1)
     
class TaskSet$TaskSetExecutionWorker100% (1/1)100% (2/2)74%  (70/95)74%  (14/19)
run (): void 100% (1/1)70%  (58/83)64%  (9/14)
TaskSet$TaskSetExecutionWorker (TaskSet, ArrayList, ExecutorService): void 100% (1/1)100% (12/12)100% (5/5)

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

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