]>
Commit | Line | Data |
---|---|---|
fc35e1b0 | 1 | package no.uio.ifi.refaktor.analyze; |
ee6a0b5b EK |
2 | |
3 | import java.util.Arrays; | |
4 | import java.util.LinkedList; | |
5 | ||
fc35e1b0 | 6 | import no.uio.ifi.refaktor.analyze.collectors.PropertyCollector; |
ee6a0b5b EK |
7 | import no.uio.ifi.refaktor.utils.CompilationUnitTextSelection; |
8 | ||
9 | import org.eclipse.jdt.core.dom.ASTNode; | |
10 | ||
11 | public class CollectorManager { | |
12 | ||
13 | private final CompilationUnitTextSelection selection; | |
14 | private final LinkedList<PropertyCollector> collectors; | |
15 | ||
16 | public CollectorManager(CompilationUnitTextSelection selection, PropertyCollector ... collectors) { | |
17 | this.selection = selection; | |
18 | this.collectors = new LinkedList<PropertyCollector>(Arrays.asList(collectors)); | |
19 | } | |
20 | ||
21 | public static void collectProperties(CompilationUnitTextSelection selection, PropertyCollector ... collectors) { | |
22 | new CollectorManager(selection, collectors).collectProperties(); | |
23 | } | |
24 | ||
25 | private void collectProperties() { | |
26 | clearCollectorsData(); | |
27 | runCollectors(); | |
28 | } | |
29 | ||
30 | private void clearCollectorsData() { | |
31 | for (PropertyCollector collector: collectors) | |
32 | collector.clearData(); | |
33 | } | |
34 | ||
35 | private void runCollectors() { | |
36 | for (PropertyCollector collector: collectors) | |
37 | getStartNode().accept(collector); | |
38 | } | |
39 | ||
40 | private ASTNode getStartNode() { | |
41 | return selection.getCoveringNode(); | |
42 | } | |
43 | } |