]>
Commit | Line | Data |
---|---|---|
7256e850 | 1 | package no.uio.ifi.refaktor.analyze; |
36a99b48 | 2 | |
46cc235b EK |
3 | import java.util.LinkedList; |
4 | import java.util.List; | |
5 | ||
4f577e24 | 6 | import no.uio.ifi.refaktor.utils.RefaktorDebug; |
36a99b48 EK |
7 | import no.uio.ifi.refaktor.utils.RefaktorHandleUtils; |
8 | ||
9 | import org.eclipse.core.resources.IProject; | |
36a99b48 | 10 | import org.eclipse.jdt.core.IJavaProject; |
36a99b48 | 11 | import org.eclipse.jdt.core.IPackageFragment; |
36a99b48 EK |
12 | import org.eclipse.jdt.core.JavaModelException; |
13 | ||
14 | public class ProjectWideSearchBasedExtractAndMoveMethodAnalyzer { | |
15 | ||
16 | private final IProject project; | |
46cc235b | 17 | private final List<ExtractAndMoveMethodAnalysisResult> results; |
7256e850 | 18 | private final AnalysisStatistics statistics; |
36a99b48 | 19 | |
5180318b | 20 | public ProjectWideSearchBasedExtractAndMoveMethodAnalyzer(IProject project, AnalysisStatistics statistics) { |
36a99b48 | 21 | this.project = project; |
5180318b | 22 | this.statistics = statistics; |
46cc235b | 23 | results = new LinkedList<ExtractAndMoveMethodAnalysisResult>(); |
36a99b48 EK |
24 | } |
25 | ||
0a0fae81 EK |
26 | public List<ExtractAndMoveMethodAnalysisResult> getResults() { |
27 | return results; | |
36a99b48 EK |
28 | } |
29 | ||
0a0fae81 | 30 | public void analyze() { |
36a99b48 EK |
31 | IJavaProject javaProject = RefaktorHandleUtils.createJavaProjectFrom(project); |
32 | try { | |
7256e850 | 33 | analyzeMethodsInProject(javaProject); |
36a99b48 | 34 | } catch (JavaModelException e) { |
7256e850 | 35 | RefaktorDebug.log(e); |
0a0fae81 | 36 | } |
36a99b48 EK |
37 | } |
38 | ||
7256e850 EK |
39 | private void analyzeMethodsInProject(IJavaProject javaProject) throws JavaModelException { |
40 | for (IPackageFragment packageFragment: javaProject.getPackageFragments()) | |
41 | analyzeMethodsInPackage(packageFragment); | |
42 | } | |
43 | ||
44 | private void analyzeMethodsInPackage(IPackageFragment packageFragment) { | |
45 | PackageWideSearchBasedExtractAndMoveMethodAnalyzer analyzer = | |
46 | new PackageWideSearchBasedExtractAndMoveMethodAnalyzer(packageFragment, statistics); | |
47 | analyzer.analyze(); | |
48 | results.addAll(analyzer.getResults()); | |
0a0fae81 | 49 | statistics.incrementPackageCount(); |
7256e850 | 50 | } |
36a99b48 | 51 | } |