remove deprecated IndexedRootsProvider in favor of IndexableSetContributor (http...
authorSergey Simonchik <sergey.simonchik@jetbrains.com>
Tue, 22 Dec 2015 15:06:31 +0000 (18:06 +0300)
committerSergey Simonchik <sergey.simonchik@jetbrains.com>
Tue, 22 Dec 2015 15:06:31 +0000 (18:06 +0300)
platform/indexing-api/src/com/intellij/util/indexing/IndexableSetContributor.java
platform/indexing-api/src/com/intellij/util/indexing/IndexedRootsProvider.java [deleted file]
platform/indexing-impl/src/com/intellij/util/indexing/AdditionalIndexableFileSet.java
platform/indexing-impl/src/com/intellij/util/indexing/AdditionalIndexedRootsScope.java
platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java
platform/platform-resources/src/META-INF/LangExtensionPoints.xml
platform/testFramework/src/com/intellij/testFramework/PlatformTestCase.java

index cc6675e51f5be4ff5f35cafee55d46d7f25387c7..ec93cbe14b2e27e9d2b6e2551b1fb3547a167b5a 100644 (file)
 package com.intellij.util.indexing;
 
 import com.intellij.openapi.diagnostic.Logger;
+import com.intellij.openapi.extensions.ExtensionPointName;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.util.Condition;
 import com.intellij.openapi.vfs.VirtualFile;
-import com.intellij.openapi.vfs.VirtualFileManager;
-import com.intellij.util.NotNullFunction;
 import com.intellij.util.containers.ContainerUtil;
 import org.jetbrains.annotations.NotNull;
 
 import java.util.Collections;
-import java.util.HashSet;
 import java.util.Set;
 
 /**
  * @author peter
  */
-public abstract class IndexableSetContributor implements IndexedRootsProvider {
-  
-  protected static final Set<VirtualFile> EMPTY_FILE_SET = Collections.emptySet();
-  private static final Logger LOG = Logger.getInstance(IndexableSetContributor.class);
+public abstract class IndexableSetContributor {
 
-  @Override
-  public final Set<String> getRootsToIndex() {
-    return ContainerUtil.map2Set(getAdditionalRootsToIndex(), new NotNullFunction<VirtualFile, String>() {
-      @NotNull
-      @Override
-      public String fun(VirtualFile virtualFile) {
-        return virtualFile.getUrl();
-      }
-    });
-  }
+  public static final ExtensionPointName<IndexableSetContributor> EP_NAME = new ExtensionPointName<IndexableSetContributor>("com.intellij.indexedRootsProvider");
+  private static final Logger LOG = Logger.getInstance(IndexableSetContributor.class);
 
   @NotNull
-  public static Set<VirtualFile> getProjectRootsToIndex(IndexedRootsProvider provider, Project project) {
-    if (provider instanceof IndexableSetContributor) {
-      IndexableSetContributor contributor = (IndexableSetContributor)provider;
-      Set<VirtualFile> roots = contributor.getAdditionalProjectRootsToIndex(project);
-      return filterOutNulls(contributor, "getAdditionalProjectRootsToIndex(Project)", roots);
-    }
-    return EMPTY_FILE_SET;
+  public static Set<VirtualFile> getProjectRootsToIndex(@NotNull IndexableSetContributor contributor, @NotNull Project project) {
+    Set<VirtualFile> roots = contributor.getAdditionalProjectRootsToIndex(project);
+    return filterOutNulls(contributor, "getAdditionalProjectRootsToIndex(Project)", roots);
   }
 
   @NotNull
-  public static Set<VirtualFile> getRootsToIndex(IndexedRootsProvider provider) {
-    if (provider instanceof IndexableSetContributor) {
-      IndexableSetContributor contributor = (IndexableSetContributor)provider;
-      Set<VirtualFile> roots = contributor.getAdditionalRootsToIndex();
-      return filterOutNulls(contributor, "getAdditionalRootsToIndex()", roots);
-    }
-
-    final HashSet<VirtualFile> result = new HashSet<VirtualFile>();
-    for (String url : provider.getRootsToIndex()) {
-      ContainerUtil.addIfNotNull(VirtualFileManager.getInstance().findFileByUrl(url), result);
-    }
-
-    return result;
+  public static Set<VirtualFile> getRootsToIndex(@NotNull IndexableSetContributor contributor) {
+    Set<VirtualFile> roots = contributor.getAdditionalRootsToIndex();
+    return filterOutNulls(contributor, "getAdditionalRootsToIndex()", roots);
   }
 
   /**
@@ -79,7 +52,7 @@ public abstract class IndexableSetContributor implements IndexedRootsProvider {
    */
   @NotNull
   public Set<VirtualFile> getAdditionalProjectRootsToIndex(@NotNull Project project) {
-    return EMPTY_FILE_SET;
+    return Collections.emptySet();
   }
 
   /**
diff --git a/platform/indexing-api/src/com/intellij/util/indexing/IndexedRootsProvider.java b/platform/indexing-api/src/com/intellij/util/indexing/IndexedRootsProvider.java
deleted file mode 100644 (file)
index 997bc12..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 2000-2015 JetBrains s.r.o.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.intellij.util.indexing;
-
-import com.intellij.openapi.extensions.ExtensionPointName;
-
-import java.util.Set;
-
-/**
- * @deprecated extend {@link com.intellij.util.indexing.IndexableSetContributor} instead
- * @author Dmitry Avdeev
- */
-public interface IndexedRootsProvider {
-
-  ExtensionPointName<IndexedRootsProvider> EP_NAME = new ExtensionPointName<IndexedRootsProvider>("com.intellij.indexedRootsProvider");
-
-  /**
-   * @deprecated
-   * @return each string is VFS url {@link com.intellij.openapi.vfs.VirtualFile#getUrl()} of the root to index. Cannot depend on project.
-   */
-  Set<String> getRootsToIndex();
-}
index 315234b03af901978d85167804482816b7a29146..f08d23cf143e3d5a8de2d215e7e2b5e8bdacc644 100644 (file)
@@ -33,9 +33,9 @@ public class AdditionalIndexableFileSet implements IndexableFileSet {
   private final Project myProject;
   private volatile Set<VirtualFile> cachedFiles;
   private volatile Set<VirtualFile> cachedDirectories;
-  private volatile IndexedRootsProvider[] myExtensions;
+  private volatile IndexableSetContributor[] myExtensions;
 
-  public AdditionalIndexableFileSet(Project project, IndexedRootsProvider... extensions) {
+  public AdditionalIndexableFileSet(Project project, IndexableSetContributor... extensions) {
     myProject = project;
     myExtensions = extensions;
   }
@@ -44,7 +44,7 @@ public class AdditionalIndexableFileSet implements IndexableFileSet {
     myProject = project;
   }
 
-  public AdditionalIndexableFileSet(IndexedRootsProvider... extensions) {
+  public AdditionalIndexableFileSet(IndexableSetContributor... extensions) {
     myProject = null;
     myExtensions = extensions;
   }
@@ -65,14 +65,14 @@ public class AdditionalIndexableFileSet implements IndexableFileSet {
     THashSet<VirtualFile> files = new THashSet<VirtualFile>();
     THashSet<VirtualFile> directories = new THashSet<VirtualFile>();
     if (myExtensions == null) {
-      myExtensions = Extensions.getExtensions(IndexedRootsProvider.EP_NAME);
+      myExtensions = Extensions.getExtensions(IndexableSetContributor.EP_NAME);
     }
-    for (IndexedRootsProvider provider : myExtensions) {
-      for (VirtualFile root : IndexableSetContributor.getRootsToIndex(provider)) {
+    for (IndexableSetContributor contributor : myExtensions) {
+      for (VirtualFile root : IndexableSetContributor.getRootsToIndex(contributor)) {
         (root.isDirectory() ? directories : files).add(root);
       }
       if (myProject != null) {
-        Set<VirtualFile> projectRoots = IndexableSetContributor.getProjectRootsToIndex(provider, myProject);
+        Set<VirtualFile> projectRoots = IndexableSetContributor.getProjectRootsToIndex(contributor, myProject);
         for (VirtualFile root : projectRoots) {
           (root.isDirectory() ? directories : files).add(root);
         }
index d206a0de680e666581acd743897784c9054abccd..48bfcbb181a7c941e73d69cbcd87c155fa8373ed 100644 (file)
@@ -31,7 +31,7 @@ public class AdditionalIndexedRootsScope extends GlobalSearchScope {
     this(baseScope, new AdditionalIndexableFileSet());
   }
 
-  public AdditionalIndexedRootsScope(GlobalSearchScope baseScope, Class<? extends IndexedRootsProvider> providerClass) {
+  public AdditionalIndexedRootsScope(GlobalSearchScope baseScope, Class<? extends IndexableSetContributor> providerClass) {
     this(baseScope, new AdditionalIndexableFileSet(IndexableSetContributor.EP_NAME.findExtension(providerClass)));
   }
 
index f6a5a0572aaedfb1004a7aaa8725911de0728b46..6e46f33ab6f9037199f34b502c75db58ecade355 100644 (file)
@@ -2444,13 +2444,13 @@ public class FileBasedIndexImpl extends FileBasedIndex {
     }*/
 
     final Set<VirtualFile> visitedRoots = ContainerUtil.newConcurrentSet();
-    for (IndexedRootsProvider provider : Extensions.getExtensions(IndexedRootsProvider.EP_NAME)) {
+    for (IndexableSetContributor contributor : Extensions.getExtensions(IndexableSetContributor.EP_NAME)) {
       //important not to depend on project here, to support per-project background reindex
       // each client gives a project to FileBasedIndex
       if (project.isDisposed()) {
         return tasks;
       }
-      for (final VirtualFile root : IndexableSetContributor.getRootsToIndex(provider)) {
+      for (final VirtualFile root : IndexableSetContributor.getRootsToIndex(contributor)) {
         if (visitedRoots.add(root)) {
           tasks.add(new Runnable() {
             @Override
@@ -2461,7 +2461,7 @@ public class FileBasedIndexImpl extends FileBasedIndex {
           });
         }
       }
-      for (final VirtualFile root : IndexableSetContributor.getProjectRootsToIndex(provider, project)) {
+      for (final VirtualFile root : IndexableSetContributor.getProjectRootsToIndex(contributor, project)) {
         if (visitedRoots.add(root)) {
           tasks.add(new Runnable() {
             @Override
index ac297d36c3389594fc35a7bd8b288cf74e9a3d82..4a8273b700ba8bebd3a2e5db7a0a688eb4f3c80b 100644 (file)
     <!-- File-Based Index-->
     <extensionPoint name="fileBasedIndex" interface="com.intellij.util.indexing.FileBasedIndexExtension"/>
     <extensionPoint name="stubIndex" interface="com.intellij.psi.stubs.StubIndexExtension"/>
-    <extensionPoint name="indexedRootsProvider" interface="com.intellij.util.indexing.IndexedRootsProvider"/>
+    <extensionPoint name="indexedRootsProvider" interface="com.intellij.util.indexing.IndexableSetContributor"/>
     <extensionPoint name="include.provider" interface="com.intellij.psi.impl.include.FileIncludeProvider"/>
 
     <extensionPoint name="refactoring.copyHandler" interface="com.intellij.refactoring.copy.CopyHandlerDelegate"/>
index 9625c12314009a7b40dcdb2dcc5862bbd9c39605..bd1177e2a7a7073b55c43b9c1a0b094d645429bd 100644 (file)
@@ -68,7 +68,6 @@ import com.intellij.psi.impl.PsiManagerImpl;
 import com.intellij.psi.impl.source.tree.injected.InjectedLanguageManagerImpl;
 import com.intellij.util.*;
 import com.intellij.util.indexing.IndexableSetContributor;
-import com.intellij.util.indexing.IndexedRootsProvider;
 import com.intellij.util.lang.CompoundRuntimeException;
 import com.intellij.util.ui.UIUtil;
 import junit.framework.TestCase;
@@ -384,8 +383,8 @@ public abstract class PlatformTestCase extends UsefulTestCase implements DataPro
 
     Set<VirtualFile> survivors = new HashSet<VirtualFile>();
 
-    for (IndexedRootsProvider provider : IndexedRootsProvider.EP_NAME.getExtensions()) {
-      for (VirtualFile file : IndexableSetContributor.getRootsToIndex(provider)) {
+    for (IndexableSetContributor contributor : IndexableSetContributor.EP_NAME.getExtensions()) {
+      for (VirtualFile file : IndexableSetContributor.getRootsToIndex(contributor)) {
         registerSurvivor(survivors, file);
       }
     }