]>
Commit | Line | Data |
---|---|---|
33b364ef | 1 | package no.uio.ifi.refaktor.analyze.analyzers; |
7256e850 EK |
2 | |
3 | import java.util.LinkedList; | |
4 | import java.util.List; | |
5 | ||
33b364ef EK |
6 | import no.uio.ifi.refaktor.analyze.AnalysisStatistics; |
7 | import no.uio.ifi.refaktor.analyze.ExtractAndMoveMethodAnalysisResult; | |
7256e850 EK |
8 | import no.uio.ifi.refaktor.utils.RefaktorDebug; |
9 | ||
10 | import org.eclipse.jdt.core.ICompilationUnit; | |
11 | import org.eclipse.jdt.core.IPackageFragment; | |
12 | import org.eclipse.jdt.core.JavaModelException; | |
13 | ||
85bef15c | 14 | public class PackageWideSearchBasedExtractAndMoveMethodAnalyzer implements SearchBasedAnalyzer { |
7256e850 EK |
15 | |
16 | private final IPackageFragment packageFragment; | |
17 | private final AnalysisStatistics statistics; | |
18 | private final List<ExtractAndMoveMethodAnalysisResult> results; | |
19 | ||
6d081f7a EK |
20 | public PackageWideSearchBasedExtractAndMoveMethodAnalyzer(IPackageFragment packageFragment) { |
21 | this(packageFragment, new AnalysisStatistics()); | |
22 | } | |
23 | ||
7256e850 EK |
24 | public PackageWideSearchBasedExtractAndMoveMethodAnalyzer(IPackageFragment packageFragment, AnalysisStatistics statistics) { |
25 | this.packageFragment = packageFragment; | |
26 | this.statistics = statistics; | |
27 | results = new LinkedList<ExtractAndMoveMethodAnalysisResult>(); | |
28 | } | |
29 | ||
85bef15c | 30 | @Override |
7256e850 EK |
31 | public List<ExtractAndMoveMethodAnalysisResult> getResults() { |
32 | return results; | |
33 | } | |
34 | ||
85bef15c | 35 | @Override |
7256e850 EK |
36 | public void analyze() { |
37 | try { | |
38 | analyzeMethodsInPackage(); | |
39 | } catch (JavaModelException e) { | |
40 | RefaktorDebug.log(e); | |
41 | } | |
8a96c34b | 42 | statistics.incrementPackageCount(); |
7256e850 EK |
43 | } |
44 | ||
45 | private void analyzeMethodsInPackage() throws JavaModelException { | |
46 | for (ICompilationUnit compilationUnit: packageFragment.getCompilationUnits()) | |
47 | analyzeMethodsInCompilationUnit(compilationUnit); | |
48 | } | |
49 | ||
50 | private void analyzeMethodsInCompilationUnit(ICompilationUnit compilationUnit) { | |
51 | CompilationUnitWideSearchBasedExtractAndMoveMethodAnalyzer analyzer = | |
52 | new CompilationUnitWideSearchBasedExtractAndMoveMethodAnalyzer(compilationUnit, statistics); | |
53 | analyzer.analyze(); | |
54 | results.addAll(analyzer.getResults()); | |
55 | } | |
56 | } |