]> git.uio.no Git - ifi-stolz-refaktor.git/blob - case-study/refaktor-before/src/no/uio/ifi/refaktor/analyze/analyzers/ProjectWideExtractAndMoveMethodAnalyzer.java
Case Study: adding data and statistics
[ifi-stolz-refaktor.git] / case-study / refaktor-before / src / no / uio / ifi / refaktor / analyze / analyzers / ProjectWideExtractAndMoveMethodAnalyzer.java
1 package no.uio.ifi.refaktor.analyze.analyzers;
2
3 import java.util.Arrays;
4 import java.util.List;
5
6 import no.uio.ifi.refaktor.utils.RefaktorHandleUtils;
7
8 import org.eclipse.core.resources.IProject;
9 import org.eclipse.jdt.core.IJavaProject;
10 import org.eclipse.jdt.core.IPackageFragment;
11 import org.eclipse.jdt.core.JavaModelException;
12
13 /**
14  * Responsible for analyzing all methods in a project for
15  * candidates to the Extract and Move Method refactoring.
16  */
17 public class ProjectWideExtractAndMoveMethodAnalyzer extends PackageFragmentParentExtractAndMoveMethodAnalyzer {
18
19         private final IJavaProject javaProject;
20
21         public ProjectWideExtractAndMoveMethodAnalyzer(IProject project) {
22                 this(RefaktorHandleUtils.createJavaProjectFrom(project));
23         }
24
25         public ProjectWideExtractAndMoveMethodAnalyzer(IJavaProject javaProject) {
26                 this.javaProject = javaProject;
27         }
28
29         @Override
30         protected List<IPackageFragment> getPackages() throws JavaModelException {
31                 return RefaktorHandleUtils.findPackagesAmongPackageFragments(Arrays.asList(javaProject.getPackageFragments()));
32         }
33 }