package no.uio.ifi.refaktor.handlers;
import static no.uio.ifi.refaktor.assertion.RefaktorAssert.assertThat;
+import static org.hamcrest.CoreMatchers.anyOf;
import static org.hamcrest.CoreMatchers.instanceOf;
import no.uio.ifi.refaktor.analyze.ExtractAndMoveMethodAnalysisResult;
import no.uio.ifi.refaktor.analyze.analyzers.AggregationAnalyzer;
import no.uio.ifi.refaktor.analyze.analyzers.ProjectWideExtractAndMoveMethodAnalyzer;
import org.eclipse.core.resources.IProject;
+import org.eclipse.jdt.core.IJavaProject;
public class ProjectWideSearchBasedExtractAndMoveMethodAnalysisHandler extends AbstractSearchBasedExtractAndMoveMethodHandler {
@Override
protected AggregationAnalyzer<ExtractAndMoveMethodAnalysisResult> createAnalyzer(Object element) {
- assertThat(element, instanceOf(IProject.class));
- return new ProjectWideExtractAndMoveMethodAnalyzer((IProject) element);
+ assertThat(element, anyOf(instanceOf(IProject.class), instanceOf(IJavaProject.class)));
+
+ if (element instanceof IProject)
+ return new ProjectWideExtractAndMoveMethodAnalyzer((IProject) element);
+ else if (element instanceof IJavaProject)
+ return new ProjectWideExtractAndMoveMethodAnalyzer((IJavaProject) element);
+
+ throw new IllegalArgumentException("Element <" + element + "> not of project type.");
}
}