package no.uio.ifi.refaktor.analyze; import java.util.Arrays; import java.util.LinkedList; import no.uio.ifi.refaktor.analyze.collectors.PropertyCollector; import no.uio.ifi.refaktor.utils.CompilationUnitTextSelection; import org.eclipse.jdt.core.dom.ASTNode; public class CollectorManager { private final CompilationUnitTextSelection selection; private final LinkedList collectors; public CollectorManager(CompilationUnitTextSelection selection, PropertyCollector ... collectors) { this.selection = selection; this.collectors = new LinkedList(Arrays.asList(collectors)); } public static void collectProperties(CompilationUnitTextSelection selection, PropertyCollector ... collectors) { new CollectorManager(selection, collectors).collectProperties(); } private void collectProperties() { clearCollectorsData(); runCollectors(); } private void clearCollectorsData() { for (PropertyCollector collector: collectors) collector.clearData(); } private void runCollectors() { for (PropertyCollector collector: collectors) getStartNode().accept(collector); } private ASTNode getStartNode() { return selection.getCoveringNode(); } }