move java searching stuff to indexing module

This commit is contained in:
Evgeny Pasynkov
2012-06-22 09:52:57 +02:00
parent ff6ed0f6e6
commit fa77cc79ae
5 changed files with 12 additions and 6 deletions
@@ -17,6 +17,7 @@ package com.intellij.psi.search.searches;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.extensions.ExtensionPointName;
import com.intellij.openapi.progress.ProgressIndicator;
import com.intellij.openapi.progress.ProgressIndicatorProvider;
import com.intellij.openapi.util.Computable;
@@ -43,6 +44,7 @@ import java.util.Set;
* @author max
*/
public class ClassInheritorsSearch extends ExtensibleQueryFactory<PsiClass, ClassInheritorsSearch.SearchParameters> {
public static ExtensionPointName<QueryExecutor> EP_NAME = ExtensionPointName.create("com.intellij.classInheritorsSearch");
private static final Logger LOG = Logger.getInstance("#com.intellij.psi.search.searches.ClassInheritorsSearch");
public static final ClassInheritorsSearch INSTANCE = new ClassInheritorsSearch();
@@ -15,6 +15,7 @@
*/
package com.intellij.psi.search.searches;
import com.intellij.openapi.extensions.ExtensionPointName;
import com.intellij.openapi.util.Condition;
import com.intellij.psi.PsiAnonymousClass;
import com.intellij.psi.PsiClass;
@@ -22,11 +23,13 @@ import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.psi.search.SearchScope;
import com.intellij.util.FilteredQuery;
import com.intellij.util.Query;
import com.intellij.util.QueryExecutor;
/**
* @author max
*/
public class DirectClassInheritorsSearch extends ExtensibleQueryFactory<PsiClass, DirectClassInheritorsSearch.SearchParameters> {
public static ExtensionPointName<QueryExecutor> EP_NAME = ExtensionPointName.create("com.intellij.directClassInheritorsSearch");
public static DirectClassInheritorsSearch INSTANCE = new DirectClassInheritorsSearch();
public static class SearchParameters {
@@ -3,8 +3,7 @@ package com.intellij.psi.impl.search;
import com.intellij.openapi.application.AccessToken;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.ReadAction;
import com.intellij.openapi.fileTypes.StdFileTypes;
import com.intellij.openapi.progress.ProgressManager;
import com.intellij.openapi.progress.ProgressIndicatorProvider;
import com.intellij.openapi.util.Computable;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VirtualFile;
@@ -53,8 +52,10 @@ public class JavaDirectInheritorsSearcher implements QueryExecutor<PsiClass, Dir
});
if (CommonClassNames.JAVA_LANG_OBJECT.equals(qualifiedName)) {
final SearchScope scope = useScope.intersectWith(GlobalSearchScope.notScope(GlobalSearchScope.getScopeRestrictedByFileTypes(
GlobalSearchScope.allScope(psiManager.getProject()), StdFileTypes.JSP, StdFileTypes.JSPX)));
//[pasynkov]: WTF?
//final SearchScope scope = useScope.intersectWith(GlobalSearchScope.notScope(GlobalSearchScope.getScopeRestrictedByFileTypes(
// GlobalSearchScope.allScope(psiManager.getProject()), StdFileTypes.JSP, StdFileTypes.JSPX)));
final SearchScope scope = useScope;
return AllClassesSearch.search(scope, aClass.getProject()).forEach(new Processor<PsiClass>() {
@Override
@@ -96,7 +97,7 @@ public class JavaDirectInheritorsSearcher implements QueryExecutor<PsiClass, Dir
Map<String, List<PsiClass>> classes = new HashMap<String, List<PsiClass>>();
for (PsiReferenceList referenceList : candidates) {
ProgressManager.checkCanceled();
ProgressIndicatorProvider.checkCanceled();
final PsiClass candidate = (PsiClass)referenceList.getParent();
if (!checkInheritance(p, aClass, candidate)) continue;
@@ -127,7 +128,7 @@ public class JavaDirectInheritorsSearcher implements QueryExecutor<PsiClass, Dir
});
for (PsiAnonymousClass candidate : anonymousCandidates) {
ProgressManager.checkCanceled();
ProgressIndicatorProvider.checkCanceled();
if (!checkInheritance(p, aClass, candidate)) continue;
if (!consumer.process(candidate)) return false;