Move shouldBeFound method to FileIndexFacade
authorEvgeny Pasynkov <Evgeny.Pasynkov@jetbrains.com>
Wed, 13 Jun 2012 10:05:56 +0000 (12:05 +0200)
committerEvgeny Pasynkov <Evgeny.Pasynkov@jetbrains.com>
Wed, 13 Jun 2012 10:05:56 +0000 (12:05 +0200)
platform/core-api/src/com/intellij/openapi/roots/FileIndexFacade.java
platform/lang-impl/src/com/intellij/psi/impl/cache/impl/IndexCacheManagerImpl.java
platform/lang-impl/src/com/intellij/psi/impl/search/PsiSearchHelperImpl.java

index d9f052f8b0de3ef27e0c896404abdc72b7ffac5b..35dc94d204a04dd9e16c5aeab7498bc156052aaa 100644 (file)
@@ -19,6 +19,7 @@ import com.intellij.openapi.components.ServiceManager;
 import com.intellij.openapi.module.Module;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.vfs.VirtualFile;
+import com.intellij.psi.search.GlobalSearchScope;
 import org.jetbrains.annotations.Nullable;
 
 /**
@@ -54,4 +55,8 @@ public abstract class FileIndexFacade {
    * @return true if it's a valid ancestor, false otherwise.
    */
   public abstract boolean isValidAncestor(final VirtualFile baseDir, final VirtualFile child);
+
+  public boolean shouldBeFound(GlobalSearchScope scope, VirtualFile virtualFile) {
+    return (scope.isSearchOutsideRootModel() || isInContent(virtualFile) || isInLibrarySource(virtualFile)) && !virtualFile.getFileType().isBinary();
+  }
 }
index 3c29d11d47d0d7e5741878a92785754d1f6e3c9c..6aa855188fb0d8dda59ca03de58ca3415cba8159 100644 (file)
@@ -65,10 +65,6 @@ public class IndexCacheManagerImpl implements CacheManager{
     return processor.getResults().isEmpty() ? PsiFile.EMPTY_ARRAY : processor.toArray(PsiFile.EMPTY_ARRAY);
   }
 
-  public static boolean shouldBeFound(GlobalSearchScope scope, VirtualFile virtualFile, FileIndexFacade index) {
-    return (scope.isSearchOutsideRootModel() || index.isInContent(virtualFile) || index.isInLibrarySource(virtualFile)) && !virtualFile.getFileType().isBinary();
-  }
-
   // IMPORTANT!!!
   // Since implementation of virtualFileProcessor.process() may call indices directly or indirectly,
   // we cannot call it inside FileBasedIndex.processValues() method except in collecting form
@@ -90,7 +86,7 @@ public class IndexCacheManagerImpl implements CacheManager{
             public boolean process(final VirtualFile file, final Integer value) {
               ProgressManager.checkCanceled();
               final int mask = value.intValue();
-              if ((mask & occurrenceMask) != 0 && shouldBeFound(scope, file, index)) {
+              if ((mask & occurrenceMask) != 0 && index.shouldBeFound(scope, file)) {
                 if (!fileProcessor.process(file)) return false;
               }
               return true;
index fb13ffed6657839575bc8c607f8ab1858cc51b42..4b85dc3696543a378814a3068d86929cfa29001f 100644 (file)
@@ -36,7 +36,6 @@ import com.intellij.openapi.vfs.VirtualFile;
 import com.intellij.psi.*;
 import com.intellij.psi.impl.PsiManagerEx;
 import com.intellij.psi.impl.cache.CacheManager;
-import com.intellij.psi.impl.cache.impl.IndexCacheManagerImpl;
 import com.intellij.psi.impl.cache.impl.id.IdIndex;
 import com.intellij.psi.impl.cache.impl.id.IdIndexEntry;
 import com.intellij.psi.search.*;
@@ -307,7 +306,7 @@ public class PsiSearchHelperImpl implements PsiSearchHelper {
     return ContainerUtil.process(collectProcessor.getResults(), new ReadActionProcessor<VirtualFile>() {
       @Override
       public boolean processInReadAction(VirtualFile virtualFile) {
-        return !IndexCacheManagerImpl.shouldBeFound(scope, virtualFile, index) || processor.process(virtualFile);
+        return !index.shouldBeFound(scope, virtualFile) || processor.process(virtualFile);
       }
     });
   }
@@ -624,7 +623,7 @@ public class PsiSearchHelperImpl implements PsiSearchHelper {
               FileBasedIndex.getInstance().processValues(IdIndex.NAME, entry, file, new FileBasedIndex.ValueProcessor<Integer>() {
                 @Override
                 public boolean process(VirtualFile file, Integer value) {
-                  if (IndexCacheManagerImpl.shouldBeFound(commonScope, file, index)) {
+                  if (index.shouldBeFound(commonScope, file)) {
                     int mask = value.intValue();
                     for (RequestWithProcessor single : data) {
                       final PsiSearchRequest request = single.request;
@@ -679,7 +678,7 @@ public class PsiSearchHelperImpl implements PsiSearchHelper {
             public boolean process(VirtualFile file, Integer value) {
               if (progress != null) progress.checkCanceled();
 
-              if (IndexCacheManagerImpl.shouldBeFound(commonScope, file, index)) {
+              if (index.shouldBeFound(commonScope, file)) {
                 int mask = value.intValue();
                 for (RequestWithProcessor single : data) {
                   final PsiSearchRequest request = single.request;
@@ -757,7 +756,7 @@ public class PsiSearchHelperImpl implements PsiSearchHelper {
       @Override
       public boolean process(VirtualFile file) {
         if (file == fileToIgnoreOccurencesInVirtualFile) return true;
-        if (!IndexCacheManagerImpl.shouldBeFound(scope, file, index)) return true;
+        if (!index.shouldBeFound(scope, file)) return true;
         final int value = count.incrementAndGet();
         return value < 10;
       }