use of org.eclipse.jdt.internal.ui.search.JavaSearchQuery in project che by eclipse.
the class FindReferencesTest method testFind.
@Test
public void testFind() throws Exception {
JavaSearchQuery query = SearchTestHelper.runMethodRefQuery("junit.framework.Test", "countTestCases", new String[0]);
ISearchResult result = query.getSearchResult();
JavaSearchResult javaResult = ((JavaSearchResult) result);
Assertions.assertThat(javaResult.getElements()).hasSize(9);
}
use of org.eclipse.jdt.internal.ui.search.JavaSearchQuery in project che by eclipse.
the class SearchTestHelper method countMethodRefs.
static int countMethodRefs(String TypeName, String methodName, String[] parameterTypes) throws JavaModelException {
JavaSearchQuery query = runMethodRefQuery(TypeName, methodName, parameterTypes);
JavaSearchResult result = (JavaSearchResult) query.getSearchResult();
return result.getMatchCount();
}
use of org.eclipse.jdt.internal.ui.search.JavaSearchQuery in project che by eclipse.
the class SearchTestHelper method runMethodRefQuery.
static JavaSearchQuery runMethodRefQuery(String TypeName, String methodName, String[] parameterTypes) throws JavaModelException {
IMethod method = getMethod(TypeName, methodName, parameterTypes);
JavaSearchQuery query = new JavaSearchQuery(new ElementQuerySpecification(method, IJavaSearchConstants.REFERENCES, JavaSearchScopeFactory.getInstance().createWorkspaceScope(true), "workspace scope"));
NewSearchUI.runQueryInForeground(null, query);
return query;
}
use of org.eclipse.jdt.internal.ui.search.JavaSearchQuery in project che by eclipse.
the class SearchManager method performFindUsageSearch.
private FindUsagesResponse performFindUsageSearch(IJavaElement element) throws JavaModelException, BadLocationException {
JavaSearchScopeFactory factory = JavaSearchScopeFactory.getInstance();
boolean isInsideJRE = factory.isInsideJRE(element);
JavaSearchQuery query = new JavaSearchQuery(new ElementQuerySpecification(element, IJavaSearchConstants.REFERENCES, factory.createWorkspaceScope(isInsideJRE), "workspace scope"));
NewSearchUI.runQueryInForeground(null, query);
ISearchResult result = query.getSearchResult();
JavaSearchResult javaResult = ((JavaSearchResult) result);
FindUsagesResponse response = DtoFactory.newDto(FindUsagesResponse.class);
Map<String, List<org.eclipse.che.ide.ext.java.shared.dto.search.Match>> mapMaches = new HashMap<>();
JavaElementToDtoConverter converter = new JavaElementToDtoConverter(javaResult);
for (Object o : javaResult.getElements()) {
IJavaElement javaElement = (IJavaElement) o;
IDocument document = null;
if (javaElement instanceof IMember) {
IMember member = ((IMember) javaElement);
if (member.isBinary()) {
if (member.getClassFile().getSource() != null) {
document = new Document(member.getClassFile().getSource());
}
} else {
document = getDocument(member.getCompilationUnit());
}
} else if (javaElement instanceof IPackageDeclaration) {
ICompilationUnit ancestor = (ICompilationUnit) (javaElement).getAncestor(IJavaElement.COMPILATION_UNIT);
document = getDocument(ancestor);
}
converter.addElementToProjectHierarchy(javaElement);
Match[] matches = javaResult.getMatches(o);
List<org.eclipse.che.ide.ext.java.shared.dto.search.Match> matchList = new ArrayList<>();
for (Match match : matches) {
org.eclipse.che.ide.ext.java.shared.dto.search.Match dtoMatch = DtoFactory.newDto(org.eclipse.che.ide.ext.java.shared.dto.search.Match.class);
if (document != null) {
IRegion lineInformation = document.getLineInformationOfOffset(match.getOffset());
int offsetInLine = match.getOffset() - lineInformation.getOffset();
Region matchInLine = DtoFactory.newDto(Region.class).withOffset(offsetInLine).withLength(match.getLength());
dtoMatch.setMatchInLine(matchInLine);
dtoMatch.setMatchLineNumber(document.getLineOfOffset(match.getOffset()));
dtoMatch.setMatchedLine(document.get(lineInformation.getOffset(), lineInformation.getLength()));
}
dtoMatch.setFileMatchRegion(DtoFactory.newDto(Region.class).withOffset(match.getOffset()).withLength(match.getLength()));
matchList.add(dtoMatch);
}
mapMaches.put(javaElement.getHandleIdentifier(), matchList);
}
List<JavaProject> projects = converter.getProjects();
response.setProjects(projects);
response.setMatches(mapMaches);
response.setSearchElementLabel(JavaElementLabels.getElementLabel(element, JavaElementLabels.ALL_DEFAULT));
return response;
}
use of org.eclipse.jdt.internal.ui.search.JavaSearchQuery in project che by eclipse.
the class FindReferencesTest method testFind2.
@Test
public void testFind2() throws Exception {
IPackageFragmentRoot root = ((JavaProject) JUnitSourceSetup.getProject()).getPackageFragmentRoot(new Path(JUnitSourceSetup.SRC_CONTAINER));
IPackageFragment packageFragment = root.createPackageFragment("che", true, null);
StringBuilder a = new StringBuilder();
a.append("package che;\n");
a.append("public class A{}\n");
packageFragment.createCompilationUnit("A.java", a.toString(), true, null);
StringBuilder b = new StringBuilder();
b.append("package che;\n");
b.append("import java.util.Comparator;\n");
b.append("public class B extends A implements Comparator<A>{\n");
b.append(" @Override\n");
b.append(" public int compare(A o1, A o2) {\n");
b.append(" A bb = null;\n");
b.append(" return 0;\n");
b.append(" }\n");
b.append("}\n");
packageFragment.createCompilationUnit("B.java", b.toString(), true, null);
JavaSearchQuery query = SearchTestHelper.runTypeRefQuery("che.A");
ISearchResult result = query.getSearchResult();
JavaSearchResult javaResult = ((JavaSearchResult) result);
Assertions.assertThat(javaResult.getElements()).hasSize(2);
}
Aggregations