1 package de.fhdw.wtf.walker.tasks.util;
2
3 import java.util.ArrayList;
4 import java.util.Collection;
5 import java.util.concurrent.ExecutionException;
6
7 import de.fhdw.wtf.common.ast.Model;
8 import de.fhdw.wtf.common.task.TaskExecutor;
9 import de.fhdw.wtf.common.task.TaskExecutorFixed;
10 import de.fhdw.wtf.common.task.result.ExceptionalTaskResult;
11 import de.fhdw.wtf.common.task.result.OKTaskResult;
12 import de.fhdw.wtf.common.task.result.TaskResult;
13 import de.fhdw.wtf.common.task.result.visitor.TaskResultVisitor;
14 import de.fhdw.wtf.walker.tasks.ConstructorReferencer;
15 import de.fhdw.wtf.walker.tasks.TypeReferencer;
16
17
18
19
20
21 public class ConstructorReferencerTestReturnValue {
22
23
24
25
26 private final Collection<OKTaskResult> okResult;
27
28
29
30
31 private final Collection<ExceptionalTaskResult> failResult;
32
33
34
35
36 private final TypeReferencer referencer;
37
38
39
40
41
42
43
44
45
46
47
48 public ConstructorReferencerTestReturnValue(final Model model) throws InterruptedException, ExecutionException {
49
50 final TaskExecutor taskManager = TaskExecutorFixed.create();
51 this.referencer = TypeReferencer.create(model, taskManager);
52 taskManager.startAllKnownTasks();
53 this.okResult = new ArrayList<>();
54 this.failResult = new ArrayList<>();
55 final Collection<TaskResult> results = taskManager.getResultsAndShutdown();
56 final TaskExecutor taskManager2 = TaskExecutorFixed.create();
57 ConstructorReferencer.create(model, taskManager2);
58 taskManager2.startAllKnownTasks();
59 results.addAll(taskManager2.getResultsAndShutdown());
60
61 for (final TaskResult current : results) {
62 current.accept(new TaskResultVisitor() {
63
64 @Override
65 public void handleOkTaskResult(final OKTaskResult result) {
66 ConstructorReferencerTestReturnValue.this.okResult.add(result);
67 }
68
69 @Override
70 public void handleExceptionalTaskResult(final ExceptionalTaskResult result) {
71 ConstructorReferencerTestReturnValue.this.failResult.add(result);
72 }
73 });
74 }
75 }
76
77
78
79
80
81
82 public Collection<OKTaskResult> getOkResult() {
83 return this.okResult;
84 }
85
86
87
88
89
90
91 public Collection<ExceptionalTaskResult> getFailResult() {
92 return this.failResult;
93 }
94
95
96
97
98
99
100 public TypeReferencer getTypeReferencer() {
101 return this.referencer;
102 }
103 }