List of usage examples for org.eclipse.jdt.core IRegion getElements
IJavaElement[] getElements();
From source file:org.grails.ide.eclipse.core.junit.Grails20AwareTestFinder.java
License:Open Source License
private void searchForTests(IJavaElement element, final Set result, IProgressMonitor pm) throws CoreException { //Loosely based on a copy of org.eclipse.jdt.internal.junit.launcher.JUnit4TestFinder.findTestsInContainer(IJavaElement, Set, IProgressMonitor) //Modifed to search just for Grails test classes marked by @TestFor annotations try {/*from w w w . ja v a 2 s .com*/ pm.beginTask(JUnitMessages.JUnit4TestFinder_searching_description, 4); IRegion region = CoreTestSearchEngine.getRegion(element); IJavaSearchScope scope = SearchEngine.createJavaSearchScope(region.getElements(), IJavaSearchScope.SOURCES); int matchRule = SearchPattern.R_EXACT_MATCH | SearchPattern.R_CASE_SENSITIVE; SearchPattern testForPattern = SearchPattern.createPattern(TEST_FOR_ANNOT_NAME, IJavaSearchConstants.ANNOTATION_TYPE, IJavaSearchConstants.ANNOTATION_TYPE_REFERENCE, matchRule); SearchPattern testPattern = SearchPattern.createPattern("*Tests", IJavaSearchConstants.TYPE, IJavaSearchConstants.DECLARATIONS, matchRule); SearchPattern theSearchPattern = SearchPattern.createOrPattern(testForPattern, testPattern); SearchParticipant[] searchParticipants = new SearchParticipant[] { SearchEngine.getDefaultSearchParticipant() }; SearchRequestor requestor = new SearchRequestor() { @Override public void acceptSearchMatch(SearchMatch match) throws CoreException { if (match.getAccuracy() == SearchMatch.A_ACCURATE && !match.isInsideDocComment()) { Object element = match.getElement(); if (element instanceof IType && isGrail20Test((IType) element)) { result.add(element); } } } }; new SearchEngine().search(theSearchPattern, searchParticipants, scope, requestor, new SubProgressMonitor(pm, 2)); } finally { pm.done(); } }