]> git.uio.no Git - ifi-stolz-refaktor.git/blame - software/no.uio.ifi.refaktor/src/no/uio/ifi/refaktor/analyze/analyzers/PackageWideSearchBasedExtractAndMoveMethodAnalyzer.java
Moving analyzers to no.uio.ifi.refaktor.analyze.analyzers
[ifi-stolz-refaktor.git] / software / no.uio.ifi.refaktor / src / no / uio / ifi / refaktor / analyze / analyzers / PackageWideSearchBasedExtractAndMoveMethodAnalyzer.java
CommitLineData
33b364ef 1package no.uio.ifi.refaktor.analyze.analyzers;
7256e850
EK
2
3import java.util.LinkedList;
4import java.util.List;
5
33b364ef
EK
6import no.uio.ifi.refaktor.analyze.AnalysisStatistics;
7import no.uio.ifi.refaktor.analyze.ExtractAndMoveMethodAnalysisResult;
7256e850
EK
8import no.uio.ifi.refaktor.utils.RefaktorDebug;
9
10import org.eclipse.jdt.core.ICompilationUnit;
11import org.eclipse.jdt.core.IPackageFragment;
12import org.eclipse.jdt.core.JavaModelException;
13
85bef15c 14public 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}