1 package no.uio.ifi.refaktor.analyze.analyzers;
3 import java.util.LinkedList;
6 import no.uio.ifi.refaktor.analyze.ExtractAndMoveMethodCandidate;
7 import no.uio.ifi.refaktor.analyze.exceptions.RefaktorAnalyzerException;
8 import no.uio.ifi.refaktor.debugging.RefaktorDebug;
10 import org.eclipse.jdt.core.ICompilationUnit;
11 import org.eclipse.jdt.core.IPackageFragment;
12 import org.eclipse.jdt.core.JavaModelException;
15 * Responsible for analyzing all methods in a package for
16 * candidates to the Extract and Move Method refactoring.
18 public class PackageWideExtractAndMoveMethodAnalyzer implements AggregationAnalyzer<ExtractAndMoveMethodCandidate> {
20 private final IPackageFragment packageFragment;
21 final List<ExtractAndMoveMethodCandidate> results;
23 public PackageWideExtractAndMoveMethodAnalyzer(IPackageFragment packageFragment) {
24 this.packageFragment = packageFragment;
25 results = new LinkedList<ExtractAndMoveMethodCandidate>();
29 public List<ExtractAndMoveMethodCandidate> getResults() {
34 public void analyze() throws RefaktorAnalyzerException {
36 analyzeMethodsInPackage();
37 } catch (JavaModelException e) {
42 private void analyzeMethodsInPackage() throws JavaModelException {
43 for (ICompilationUnit compilationUnit: packageFragment.getCompilationUnits())
44 analyzeMethodsInCompilationUnit(compilationUnit);
47 private void analyzeMethodsInCompilationUnit(ICompilationUnit compilationUnit) {
48 CompilationUnitWideExtractAndMoveMethodAnalyzer analyzer =
49 new CompilationUnitWideExtractAndMoveMethodAnalyzer(compilationUnit);
50 analyzer.generated_5119073150015261594(this);
53 public void generated_9055933483097433140(
54 PackageFragmentParentExtractAndMoveMethodAnalyzer packagefragmentparentextractandmovemethodanalyzer) {
56 packagefragmentparentextractandmovemethodanalyzer.results.addAll(getResults());