move fileScope and filesScope back from GlobalSearchScopes to GlobalSearchScope
authorDmitry Jemerov <yole@jetbrains.com>
Fri, 23 Sep 2011 11:08:04 +0000 (13:08 +0200)
committerDmitry Jemerov <yole@jetbrains.com>
Fri, 23 Sep 2011 12:27:02 +0000 (14:27 +0200)
15 files changed:
images/src/org/intellij/images/index/ImageInfoIndex.java
java/java-impl/src/com/intellij/psi/impl/source/PsiJavaFileImpl.java
java/java-impl/src/com/intellij/refactoring/typeMigration/ui/TypeMigrationDialog.java
platform/core-api/src/com/intellij/openapi/roots/FileIndexFacade.java
platform/core-api/src/com/intellij/psi/search/GlobalSearchScope.java
platform/lang-api/src/com/intellij/psi/search/GlobalSearchScopes.java
platform/lang-impl/src/com/intellij/ide/util/scopeChooser/ScopeChooserCombo.java
platform/lang-impl/src/com/intellij/openapi/vcs/impl/ProjectFileIndexFacade.java
platform/lang-impl/src/com/intellij/psi/impl/cache/impl/IndexCacheManagerImpl.java
platform/lang-impl/src/com/intellij/psi/impl/file/impl/ResolveScopeManagerImpl.java
platform/lang-impl/src/com/intellij/psi/stubs/StubTreeLoaderImpl.java
platform/vcs-impl/src/com/intellij/openapi/vcs/impl/DefaultFileIndexFacade.java
plugins/InspectionGadgets/src/com/siyeh/ig/maturity/ObsoleteCollectionInspection.java
plugins/groovy/src/org/jetbrains/plugins/groovy/findUsages/GroovyConstructorUsagesSearcher.java
plugins/properties/src/com/intellij/codeInspection/duplicatePropertyInspection/DuplicatePropertyInspection.java

index 94026bc8de640ff53c392214831171543697d0a1..05aaae2b4789726f9dca55b3db8b787346470245 100644 (file)
@@ -19,7 +19,7 @@ import com.intellij.openapi.project.Project;
 import com.intellij.openapi.vfs.LocalFileSystem;
 import com.intellij.openapi.vfs.VirtualFile;
 import com.intellij.openapi.vfs.ex.temp.TempFileSystem;
-import com.intellij.psi.search.GlobalSearchScopes;
+import com.intellij.psi.search.GlobalSearchScope;
 import com.intellij.util.indexing.*;
 import com.intellij.util.io.DataExternalizer;
 import org.intellij.images.fileTypes.ImageFileTypeManager;
@@ -71,7 +71,7 @@ public class ImageInfoIndex extends SingleEntryFileBasedIndexExtension<ImageInfo
   }
 
   public static void processValues(VirtualFile virtualFile, FileBasedIndex.ValueProcessor<ImageInfo> processor, Project project) {
-    FileBasedIndex.getInstance().processValues(INDEX_ID, Math.abs(FileBasedIndex.getFileId(virtualFile)), virtualFile, processor, GlobalSearchScopes
+    FileBasedIndex.getInstance().processValues(INDEX_ID, Math.abs(FileBasedIndex.getFileId(virtualFile)), virtualFile, processor, GlobalSearchScope
         .fileScope(project, virtualFile));
   }
 
index 11bd56a8f739335cb1188009ea8a27a36670c4f8..c302e2d45b70bee60a99b5221f8ec77cc57dd19b 100644 (file)
@@ -25,7 +25,6 @@ import com.intellij.openapi.vfs.VirtualFile;
 import com.intellij.psi.FileViewProvider;
 import com.intellij.psi.impl.java.stubs.JavaStubElementTypes;
 import com.intellij.psi.search.GlobalSearchScope;
-import com.intellij.psi.search.GlobalSearchScopes;
 import com.intellij.testFramework.LightVirtualFile;
 import org.jetbrains.annotations.NotNull;
 
@@ -49,7 +48,7 @@ public class PsiJavaFileImpl extends PsiJavaFileBaseImpl {
     if (file != null && !(file instanceof LightVirtualFile)) {
       final FileIndexFacade index = ServiceManager.getService(getProject(), FileIndexFacade.class);
       if (!index.isInSource(file) && !index.isInLibraryClasses(file)) {
-        return GlobalSearchScopes.fileScope(this);
+        return GlobalSearchScope.fileScope(this);
       }
     }
     return super.getResolveScope();
index edbb70b0756c652727a46adb317628c956cac42d..8ffdffd2c6a89709a79f17ec40a6a7c0307b7e5f 100644 (file)
@@ -31,7 +31,7 @@ import com.intellij.openapi.util.Comparing;
 import com.intellij.openapi.util.Disposer;
 import com.intellij.pom.java.LanguageLevel;
 import com.intellij.psi.*;
-import com.intellij.psi.search.GlobalSearchScopes;
+import com.intellij.psi.search.GlobalSearchScope;
 import com.intellij.psi.search.searches.ReferencesSearch;
 import com.intellij.psi.util.PsiTreeUtil;
 import com.intellij.psi.util.PsiUtil;
@@ -145,7 +145,7 @@ public class TypeMigrationDialog extends RefactoringDialog {
       if (VisibilityUtil.compare(VisibilityUtil.getVisibilityModifier(modifierList), PsiModifier.PRIVATE) < 0) return null;
     }
 
-    for (PsiReference reference : ReferencesSearch.search(root, GlobalSearchScopes.fileScope(root.getContainingFile()))) {
+    for (PsiReference reference : ReferencesSearch.search(root, GlobalSearchScope.fileScope(root.getContainingFile()))) {
       final PsiElement element = reference.getElement();
       final PsiExpression expr = PsiTreeUtil.getParentOfType(element, PsiExpression.class, false);
       if (expr != null) {
index 9dd197d64789a60d97e30cd16200f397e6fb7c87..e4250e898e4b446d21bdac34ab8b70c58a74d7d2 100644 (file)
  */
 package com.intellij.openapi.roots;
 
+import com.intellij.openapi.module.Module;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.vfs.VirtualFile;
+import org.jetbrains.annotations.Nullable;
 
 /**
  * @author yole
@@ -33,6 +35,9 @@ public abstract class FileIndexFacade {
   public abstract boolean isInLibraryClasses(VirtualFile file);
   public abstract boolean isExcludedFile(VirtualFile file);
 
+  @Nullable
+  public abstract Module getModuleForFile(VirtualFile file);
+
   /**
    * Checks if <code>file</code> is an ancestor of <code>baseDir</code> and none of the files
    * between them are excluded from the project.
index 02b56b91e8a03a0ccea47236a4968c6428e56b44..51670e4368cc66e545692fe9cddcf286a85b931a 100644 (file)
  */
 package com.intellij.psi.search;
 
+import com.intellij.openapi.components.ServiceManager;
 import com.intellij.openapi.diagnostic.Logger;
 import com.intellij.openapi.fileTypes.FileType;
 import com.intellij.openapi.fileTypes.FileTypeRegistry;
 import com.intellij.openapi.module.Module;
 import com.intellij.openapi.project.Project;
+import com.intellij.openapi.roots.FileIndexFacade;
+import com.intellij.openapi.util.Comparing;
 import com.intellij.openapi.vfs.VirtualFile;
 import com.intellij.psi.PsiBundle;
 import com.intellij.psi.PsiElement;
+import com.intellij.psi.PsiFile;
 import com.intellij.util.ArrayUtil;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.List;
 
 public abstract class GlobalSearchScope extends SearchScope implements ProjectAwareFileFilter {
@@ -218,6 +223,19 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw
     return module.getModuleWithDependentsScope();
   }
 
+  public static GlobalSearchScope fileScope(@NotNull PsiFile psiFile) {
+    return new FileScope(psiFile.getProject(), psiFile.getVirtualFile());
+  }
+
+  public static GlobalSearchScope fileScope(final Project project, final VirtualFile virtualFile) {
+    return new FileScope(project, virtualFile);
+  }
+
+  public static GlobalSearchScope filesScope(final Project project, final Collection<VirtualFile> files) {
+    if (files.isEmpty()) return EMPTY_SCOPE;
+    return files.size() == 1? fileScope(project, files.iterator().next()) : new FilesScope(project, files);
+  }
+
   static class IntersectionScope extends GlobalSearchScope {
     private final GlobalSearchScope myScope1;
     private final GlobalSearchScope myScope2;
@@ -469,4 +487,74 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw
   }
 
   public static final GlobalSearchScope EMPTY_SCOPE = new EmptyScope();
+
+  private static class FileScope extends GlobalSearchScope {
+    private final VirtualFile myVirtualFile;
+    private final Module myModule;
+
+    private FileScope(final Project project, final VirtualFile virtualFile) {
+      super(project);
+      myVirtualFile = virtualFile;
+      FileIndexFacade fileIndex = ServiceManager.getService(project, FileIndexFacade.class);
+      myModule = myVirtualFile != null ? fileIndex.getModuleForFile(myVirtualFile) : null;
+    }
+
+    public boolean contains(VirtualFile file) {
+      return Comparing.equal(myVirtualFile, file);
+    }
+
+    public int compare(VirtualFile file1, VirtualFile file2) {
+      return 0;
+    }
+
+    public boolean isSearchInModuleContent(@NotNull Module aModule) {
+      return aModule == myModule;
+    }
+
+    public boolean isSearchInLibraries() {
+      return myModule == null;
+    }
+  }
+
+  private static class FilesScope extends GlobalSearchScope {
+    private final Collection<VirtualFile> myFiles;
+
+    public FilesScope(final Project project, final Collection<VirtualFile> files) {
+      super(project);
+      myFiles = files;
+    }
+
+    @Override
+    public boolean contains(final VirtualFile file) {
+      return myFiles.contains(file);
+    }
+
+    @Override
+    public int compare(final VirtualFile file1, final VirtualFile file2) {
+      return 0;
+    }
+
+    @Override
+    public boolean isSearchInModuleContent(@NotNull Module aModule) {
+      return true;
+    }
+
+    @Override
+    public boolean isSearchInLibraries() {
+      return false;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+      if (this == o) return true;
+      if (!(o instanceof FilesScope)) return false;
+
+      return myFiles.equals(((FilesScope)o).myFiles);
+    }
+
+    @Override
+    public int hashCode() {
+      return myFiles.hashCode();
+    }
+  }
 }
index 5fa0879e18e8ffb8b531bf38dc1c7e3015d02dd9..a66b446ae9861b4110b005ff0ada7ac53c2e5ddb 100644 (file)
@@ -19,7 +19,6 @@ import com.intellij.openapi.module.Module;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.roots.ProjectFileIndex;
 import com.intellij.openapi.roots.ProjectRootManager;
-import com.intellij.openapi.util.Comparing;
 import com.intellij.openapi.vfs.VfsUtilCore;
 import com.intellij.openapi.vfs.VirtualFile;
 import com.intellij.psi.PsiBundle;
@@ -29,8 +28,6 @@ import com.intellij.psi.PsiManager;
 import com.intellij.psi.search.scope.packageSet.*;
 import org.jetbrains.annotations.NotNull;
 
-import java.util.Collection;
-
 /**
  * @author yole
  */
@@ -58,19 +55,6 @@ public class GlobalSearchScopes {
     return new DirectoryScope(project, directory, withSubdirectories);
   }
 
-  public static GlobalSearchScope fileScope(@NotNull PsiFile psiFile) {
-    return new FileScope(psiFile.getProject(), psiFile.getVirtualFile());
-  }
-
-  public static GlobalSearchScope fileScope(final Project project, final VirtualFile virtualFile) {
-    return new FileScope(project, virtualFile);
-  }
-
-  public static GlobalSearchScope filesScope(final Project project, final Collection<VirtualFile> files) {
-    if (files.isEmpty()) return GlobalSearchScope.EMPTY_SCOPE;
-    return files.size() == 1? fileScope(project, files.iterator().next()) : new FilesScope(project, files);
-  }
-
   private static class FilterScopeAdapter extends GlobalSearchScope {
     private final NamedScope mySet;
     private final PsiManager myManager;
@@ -215,74 +199,4 @@ public class GlobalSearchScopes {
       return "directory scope: " + myDirectory + "; withSubdirs:"+myWithSubdirectories;
     }
   }
-
-  private static class FileScope extends GlobalSearchScope {
-    private final VirtualFile myVirtualFile;
-    private final Module myModule;
-
-    private FileScope(final Project project, final VirtualFile virtualFile) {
-      super(project);
-      myVirtualFile = virtualFile;
-      ProjectFileIndex fileIndex = ProjectRootManager.getInstance(project).getFileIndex();
-      myModule = myVirtualFile != null ? fileIndex.getModuleForFile(myVirtualFile) : null;
-    }
-
-    public boolean contains(VirtualFile file) {
-      return Comparing.equal(myVirtualFile, file);
-    }
-
-    public int compare(VirtualFile file1, VirtualFile file2) {
-      return 0;
-    }
-
-    public boolean isSearchInModuleContent(@NotNull Module aModule) {
-      return aModule == myModule;
-    }
-
-    public boolean isSearchInLibraries() {
-      return myModule == null;
-    }
-  }
-
-  private static class FilesScope extends GlobalSearchScope {
-    private final Collection<VirtualFile> myFiles;
-
-    public FilesScope(final Project project, final Collection<VirtualFile> files) {
-      super(project);
-      myFiles = files;
-    }
-
-    @Override
-    public boolean contains(final VirtualFile file) {
-      return myFiles.contains(file);
-    }
-
-    @Override
-    public int compare(final VirtualFile file1, final VirtualFile file2) {
-      return 0;
-    }
-
-    @Override
-    public boolean isSearchInModuleContent(@NotNull Module aModule) {
-      return true;
-    }
-
-    @Override
-    public boolean isSearchInLibraries() {
-      return false;
-    }
-
-    @Override
-    public boolean equals(Object o) {
-      if (this == o) return true;
-      if (!(o instanceof FilesScope)) return false;
-
-      return myFiles.equals(((FilesScope)o).myFiles);
-    }
-
-    @Override
-    public int hashCode() {
-      return myFiles.hashCode();
-    }
-  }
 }
index de1fa0f0056668473ec2edccda9f8c601066c5a7..25537711dabe7dbd9a72c3c183112ee05d41b8de 100644 (file)
@@ -347,7 +347,7 @@ public class ScopeChooserCombo extends ComboboxWithBrowseButton implements Dispo
       final VirtualFile[] files = PlatformDataKeys.VIRTUAL_FILE_ARRAY.getData(dataContext);
       if (files != null) {
         final List<VirtualFile> openFiles = Arrays.asList(files);
-        result.add(new DelegatingGlobalSearchScope(GlobalSearchScopes.filesScope(project, openFiles)){
+        result.add(new DelegatingGlobalSearchScope(GlobalSearchScope.filesScope(project, openFiles)){
           @Override
           public String getDisplayName() {
             return "Selected files";
index 74ffe98937957464d53b616056d8c4f2be5efa46..9928dc2a960a8ae184146c6ea81a9e4b9238651f 100644 (file)
 
 package com.intellij.openapi.vcs.impl;
 
+import com.intellij.openapi.module.Module;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.roots.FileIndexFacade;
 import com.intellij.openapi.roots.ProjectRootManager;
 import com.intellij.openapi.roots.impl.DirectoryIndex;
 import com.intellij.openapi.vfs.VirtualFile;
+import org.jetbrains.annotations.Nullable;
 
 /**
  * @author yole
@@ -53,6 +55,12 @@ public class ProjectFileIndexFacade extends FileIndexFacade {
     return myRootManager.getFileIndex().isIgnored(file);
   }
 
+  @Nullable
+  @Override
+  public Module getModuleForFile(VirtualFile file) {
+    return myRootManager.getFileIndex().getModuleForFile(file);
+  }
+
   public boolean isValidAncestor(final VirtualFile baseDir, VirtualFile childDir) {
     if (!childDir.isDirectory()) {
       childDir = childDir.getParent();
index 7157979ce422ad5204cef4878787bd95ea73ecfe..ced908fd080c7432519f1d170aeae4ec0033d448 100644 (file)
@@ -35,7 +35,6 @@ import com.intellij.psi.impl.cache.impl.id.IdIndexEntry;
 import com.intellij.psi.impl.cache.impl.todo.TodoIndex;
 import com.intellij.psi.impl.cache.impl.todo.TodoIndexEntry;
 import com.intellij.psi.search.GlobalSearchScope;
-import com.intellij.psi.search.GlobalSearchScopes;
 import com.intellij.psi.search.IndexPattern;
 import com.intellij.psi.search.IndexPatternProvider;
 import com.intellij.psi.util.PsiUtilCore;
@@ -192,7 +191,7 @@ public class IndexCacheManagerImpl implements CacheManager{
           count[0] += value.intValue();
           return true;
         }
-      }, GlobalSearchScopes.fileScope(myProject, file));
+      }, GlobalSearchScope.fileScope(myProject, file));
     return count[0];
   }
 }
index 884307c14b933ec77d6eff0d2c4e4741b0f3e7cf..d00bba8e12d7eb1c5a3cff054e9616e126c46ebf 100644 (file)
@@ -26,7 +26,6 @@ import com.intellij.psi.impl.PsiManagerImpl;
 import com.intellij.psi.impl.ResolveScopeManager;
 import com.intellij.psi.impl.source.resolve.FileContextUtil;
 import com.intellij.psi.search.GlobalSearchScope;
-import com.intellij.psi.search.GlobalSearchScopes;
 import com.intellij.psi.search.SearchScope;
 import com.intellij.util.containers.ConcurrentFactoryMap;
 import org.jetbrains.annotations.NotNull;
@@ -188,7 +187,7 @@ public class ResolveScopeManagerImpl extends ResolveScopeManager {
       final VirtualFile vf = f == null ? null : f.getVirtualFile();
 
       return f == null || vf == null || vf.isDirectory() || allScope.contains(vf)
-             ? allScope : GlobalSearchScopes.fileScope(f).uniteWith(allScope);
+             ? allScope : GlobalSearchScope.fileScope(f).uniteWith(allScope);
     }
   }
 }
index 5491db0d37249c1fc2cb633146fe759cf104118d..f68557a0a9b618e36a560321f1b3ee5f21cf826e 100644 (file)
@@ -23,7 +23,7 @@ import com.intellij.openapi.fileEditor.FileDocumentManager;
 import com.intellij.openapi.project.DumbService;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.vfs.VirtualFile;
-import com.intellij.psi.search.GlobalSearchScopes;
+import com.intellij.psi.search.GlobalSearchScope;
 import com.intellij.util.indexing.FileBasedIndex;
 import com.intellij.util.indexing.FileContent;
 import com.intellij.util.indexing.FileContentImpl;
@@ -73,7 +73,7 @@ public class StubTreeLoaderImpl extends StubTreeLoader {
 
     final int id = Math.abs(FileBasedIndex.getFileId(vFile));
     if (id > 0) {
-      final List<SerializedStubTree> datas = FileBasedIndex.getInstance().getValues(StubUpdatingIndex.INDEX_ID, id, GlobalSearchScopes
+      final List<SerializedStubTree> datas = FileBasedIndex.getInstance().getValues(StubUpdatingIndex.INDEX_ID, id, GlobalSearchScope
           .fileScope(project, vFile));
       final int size = datas.size();
 
index cc12cb416bbe2b5799c102c237c6e8dd7a88f52f..97c05132e651f283dc73549b5904e69cf9be51ae 100644 (file)
@@ -15,6 +15,7 @@
  */
 package com.intellij.openapi.vcs.impl;
 
+import com.intellij.openapi.module.Module;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.roots.FileIndexFacade;
 import com.intellij.openapi.vfs.VfsUtil;
@@ -52,6 +53,11 @@ public class DefaultFileIndexFacade extends FileIndexFacade {
     return false;
   }
 
+  @Override
+  public Module getModuleForFile(VirtualFile file) {
+    return null;
+  }
+
   public boolean isValidAncestor(final VirtualFile baseDir, final VirtualFile childDir) {
     return VfsUtil.isAncestor(baseDir, childDir, false);
   }
index 4d6de46f0887b7d1e6ea203a5148efe9ab727a1f..c99600adb7d45a958c1cae5aea880e7ca5cfe843 100644 (file)
@@ -16,7 +16,7 @@
 package com.siyeh.ig.maturity;
 
 import com.intellij.psi.*;
-import com.intellij.psi.search.GlobalSearchScopes;
+import com.intellij.psi.search.GlobalSearchScope;
 import com.intellij.psi.search.searches.ReferencesSearch;
 import com.intellij.psi.util.PsiTreeUtil;
 import com.intellij.util.Query;
@@ -150,7 +150,7 @@ public class ObsoleteCollectionInspection extends BaseInspection {
             final PsiFile containingFile = namedElement.getContainingFile();
             final Query<PsiReference> query =
                     ReferencesSearch.search(namedElement,
-                            GlobalSearchScopes.fileScope(containingFile));
+                            GlobalSearchScope.fileScope(containingFile));
             for (PsiReference reference : query) {
                 final PsiElement element = reference.getElement();
                 if (isRequiredObsoleteCollectionElement(element)) {
index 425261b0e149e984f38848aa56c44ee7b4ec8330..092a0179445c4651a37c9c70718313420db496b1 100644 (file)
@@ -351,7 +351,7 @@ public class GroovyConstructorUsagesSearcher extends QueryExecutorBase<PsiRefere
         }
       });
 
-      GlobalSearchScope withTypedAnno = GlobalSearchScopes.filesScope(project, files);
+      GlobalSearchScope withTypedAnno = GlobalSearchScope.filesScope(project, files);
       return withTypedAnno.union(gppExtensions);
     }
 
index 40b90f3a8649bc5f8db80f4243e5d5c0bcefe701..e46ee8da92c35260fc7f6a76b633a23bb269e97c 100644 (file)
@@ -39,7 +39,6 @@ import com.intellij.psi.PsiElement;
 import com.intellij.psi.PsiFile;
 import com.intellij.psi.impl.search.LowLevelSearchUtil;
 import com.intellij.psi.search.GlobalSearchScope;
-import com.intellij.psi.search.GlobalSearchScopes;
 import com.intellij.psi.search.PsiSearchHelper;
 import com.intellij.util.CommonProcessors;
 import com.intellij.util.Processor;
@@ -153,7 +152,7 @@ public class DuplicatePropertyInspection extends GlobalSimpleInspectionTool {
     Module module = ModuleUtil.findModuleForPsiElement(file);
     if (module == null) return;
     final GlobalSearchScope scope = CURRENT_FILE
-                                    ? GlobalSearchScopes.fileScope(file)
+                                    ? GlobalSearchScope.fileScope(file)
                                     : MODULE_WITH_DEPENDENCIES
                                       ? GlobalSearchScope.moduleWithDependenciesScope(module)
                                       : GlobalSearchScope.projectScope(file.getProject());