From ec483995b67f7c9d5c490bb8a42b711cfe6399fc Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Thu, 22 Oct 2009 14:30:22 +0400 Subject: [PATCH] @notnull, more checkcanceled --- .../psi/impl/InheritanceImplUtil.java | 2 + .../searches/ClassInheritorsSearch.java | 40 ++++++++++--------- 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/java/java-impl/src/com/intellij/psi/impl/InheritanceImplUtil.java b/java/java-impl/src/com/intellij/psi/impl/InheritanceImplUtil.java index 30684f0c61bf..f453e01fe5ad 100644 --- a/java/java-impl/src/com/intellij/psi/impl/InheritanceImplUtil.java +++ b/java/java-impl/src/com/intellij/psi/impl/InheritanceImplUtil.java @@ -16,6 +16,7 @@ package com.intellij.psi.impl; import com.intellij.openapi.diagnostic.Logger; +import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.util.Comparing; import com.intellij.psi.*; import com.intellij.psi.search.GlobalSearchScope; @@ -155,6 +156,7 @@ public class InheritanceImplUtil { } private static boolean checkInheritor(PsiClass aClass, PsiClass baseClass, boolean checkDeep, Set checkedClasses) { + ProgressManager.getInstance().checkCanceled(); if (aClass != null) { PsiManager manager = baseClass.getManager(); if (manager.areElementsEquivalent(baseClass, aClass)) { diff --git a/java/openapi/src/com/intellij/psi/search/searches/ClassInheritorsSearch.java b/java/openapi/src/com/intellij/psi/search/searches/ClassInheritorsSearch.java index 335e6b47226f..8f111a48586c 100644 --- a/java/openapi/src/com/intellij/psi/search/searches/ClassInheritorsSearch.java +++ b/java/openapi/src/com/intellij/psi/search/searches/ClassInheritorsSearch.java @@ -46,9 +46,9 @@ public class ClassInheritorsSearch extends ExtensibleQueryFactory() { - public boolean execute(final SearchParameters p, final Processor consumer) { - final PsiClass baseClass = p.getClassToProcess(); - final SearchScope searchScope = p.getScope(); + public boolean execute(final SearchParameters parameters, final Processor consumer) { + final PsiClass baseClass = parameters.getClassToProcess(); + final SearchScope searchScope = parameters.getScope(); LOG.assertTrue(searchScope != null); @@ -61,10 +61,7 @@ public class ClassInheritorsSearch extends ExtensibleQueryFactory myNameCondition; - public SearchParameters(@NotNull final PsiClass aClass, SearchScope scope, final boolean checkDeep, final boolean checkInheritance, boolean includeAnonymous) { + public SearchParameters(@NotNull final PsiClass aClass, @NotNull SearchScope scope, final boolean checkDeep, final boolean checkInheritance, boolean includeAnonymous) { this(aClass, scope, checkDeep, checkInheritance, includeAnonymous, Condition.TRUE); } - public SearchParameters(@NotNull final PsiClass aClass, SearchScope scope, final boolean checkDeep, final boolean checkInheritance, + public SearchParameters(@NotNull final PsiClass aClass, @NotNull SearchScope scope, final boolean checkDeep, final boolean checkInheritance, boolean includeAnonymous, final Condition nameCondition) { myClass = aClass; myScope = scope; @@ -125,19 +122,19 @@ public class ClassInheritorsSearch extends ExtensibleQueryFactory search(@NotNull final PsiClass aClass, SearchScope scope, final boolean checkDeep, final boolean checkInheritance, boolean includeAnonymous) { + public static Query search(@NotNull final PsiClass aClass, @NotNull SearchScope scope, final boolean checkDeep, final boolean checkInheritance, boolean includeAnonymous) { return search(new SearchParameters(aClass, scope, checkDeep, checkInheritance, includeAnonymous)); } - public static Query search(final SearchParameters parameters) { + public static Query search(@NotNull SearchParameters parameters) { return INSTANCE.createUniqueResultsQuery(parameters); } - public static Query search(@NotNull final PsiClass aClass, SearchScope scope, final boolean checkDeep, final boolean checkInheritance) { + public static Query search(@NotNull final PsiClass aClass, @NotNull SearchScope scope, final boolean checkDeep, final boolean checkInheritance) { return search(aClass, scope, checkDeep, checkInheritance, true); } - public static Query search(@NotNull final PsiClass aClass, SearchScope scope, final boolean checkDeep) { + public static Query search(@NotNull final PsiClass aClass, @NotNull SearchScope scope, final boolean checkDeep) { return search(aClass, scope, checkDeep, true); } @@ -145,14 +142,14 @@ public class ClassInheritorsSearch extends ExtensibleQueryFactory search(final PsiClass aClass) { + public static Query search(@NotNull PsiClass aClass) { return search(aClass, true); } - private static boolean processInheritors(final Processor consumer, - final PsiClass baseClass, + private static boolean processInheritors(@NotNull final Processor consumer, + @NotNull final PsiClass baseClass, @NotNull final SearchScope searchScope, - final SearchParameters parameters) { + @NotNull final SearchParameters parameters) { if (baseClass instanceof PsiAnonymousClass) return true; if (isFinal(baseClass)) return true; @@ -163,7 +160,12 @@ public class ClassInheritorsSearch extends ExtensibleQueryFactory() { + public boolean process(PsiClass aClass) { + ProgressManager.getInstance().checkCanceled(); + return consumer.process(aClass); + } + }); } final Ref currentBase = Ref.create(null); @@ -171,6 +173,8 @@ public class ClassInheritorsSearch extends ExtensibleQueryFactory processed = new HashSet(); final Processor processor = new Processor() { public boolean process(final PsiClass candidate) { + ProgressManager.getInstance().checkCanceled(); + final Ref result = new Ref(); ApplicationManager.getApplication().runReadAction(new Runnable() { public void run() {