1 package no.uio.ifi.refaktor.analyze;
3 import java.util.Arrays;
4 import java.util.LinkedList;
6 import no.uio.ifi.refaktor.analyze.collectors.PropertyCollector;
7 import no.uio.ifi.refaktor.utils.CompilationUnitTextSelection;
9 import org.eclipse.jdt.core.dom.ASTNode;
11 public class CollectorManager {
13 private final CompilationUnitTextSelection selection;
14 private final LinkedList<PropertyCollector> collectors;
16 public CollectorManager(CompilationUnitTextSelection selection, PropertyCollector ... collectors) {
17 this.selection = selection;
18 this.collectors = new LinkedList<PropertyCollector>(Arrays.asList(collectors));
21 public static void collectProperties(CompilationUnitTextSelection selection, PropertyCollector ... collectors) {
22 new CollectorManager(selection, collectors).collectProperties();
25 private void collectProperties() {
26 clearCollectorsData();
30 private void clearCollectorsData() {
31 for (PropertyCollector collector: collectors)
32 collector.clearData();
35 private void runCollectors() {
36 for (PropertyCollector collector: collectors)
37 getStartNode().accept(collector);
40 private ASTNode getStartNode() {
41 return selection.getCoveringNode();