From 1794de37bd3d978e67a4e564a3cc6db4110a3f3f Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 22 Sep 2011 17:11:03 +0200 Subject: [PATCH] decouple ClassFileViewProvider from ProjectRootManager --- .../src/com/intellij/psi/ClassFileViewProvider.java | 7 +++---- .../src/com/intellij/openapi/roots/ExcludedFileIndex.java | 1 + .../openapi/vcs/impl/ProjectExcludedFileIndex.java | 5 +++++ .../openapi/vcs/impl/DefaultExcludedFileIndex.java | 5 +++++ 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/java/java-impl/src/com/intellij/psi/ClassFileViewProvider.java b/java/java-impl/src/com/intellij/psi/ClassFileViewProvider.java index cba11dd3caa3..bddd8c2f6333 100644 --- a/java/java-impl/src/com/intellij/psi/ClassFileViewProvider.java +++ b/java/java-impl/src/com/intellij/psi/ClassFileViewProvider.java @@ -19,14 +19,13 @@ */ package com.intellij.psi; +import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.fileTypes.FileType; import com.intellij.openapi.project.Project; -import com.intellij.openapi.roots.ProjectRootManager; -import com.intellij.openapi.roots.ProjectFileIndex; +import com.intellij.openapi.roots.ExcludedFileIndex; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.impl.PsiManagerImpl; import com.intellij.psi.impl.compiled.ClsFileImpl; -import com.intellij.testFramework.LightVirtualFile; import org.jetbrains.annotations.NotNull; public class ClassFileViewProvider extends SingleRootFileViewProvider { @@ -40,7 +39,7 @@ public class ClassFileViewProvider extends SingleRootFileViewProvider { @Override protected PsiFile createFile(final Project project, final VirtualFile vFile, final FileType fileType) { - final ProjectFileIndex fileIndex = ProjectRootManager.getInstance(project).getFileIndex(); + final ExcludedFileIndex fileIndex = ServiceManager.getService(project, ExcludedFileIndex.class); if (fileIndex.isInLibraryClasses(vFile) || !fileIndex.isInSource(vFile)) { String name = vFile.getName(); diff --git a/platform/core-api/src/com/intellij/openapi/roots/ExcludedFileIndex.java b/platform/core-api/src/com/intellij/openapi/roots/ExcludedFileIndex.java index 3d90703bd460..d5062c118ecb 100644 --- a/platform/core-api/src/com/intellij/openapi/roots/ExcludedFileIndex.java +++ b/platform/core-api/src/com/intellij/openapi/roots/ExcludedFileIndex.java @@ -30,6 +30,7 @@ public abstract class ExcludedFileIndex { public abstract boolean isInContent(VirtualFile file); public abstract boolean isInSource(VirtualFile file); + public abstract boolean isInLibraryClasses(VirtualFile file); public abstract boolean isExcludedFile(VirtualFile file); /** diff --git a/platform/lang-impl/src/com/intellij/openapi/vcs/impl/ProjectExcludedFileIndex.java b/platform/lang-impl/src/com/intellij/openapi/vcs/impl/ProjectExcludedFileIndex.java index 5d2a05306f3e..02cfabefa22b 100644 --- a/platform/lang-impl/src/com/intellij/openapi/vcs/impl/ProjectExcludedFileIndex.java +++ b/platform/lang-impl/src/com/intellij/openapi/vcs/impl/ProjectExcludedFileIndex.java @@ -44,6 +44,11 @@ public class ProjectExcludedFileIndex extends ExcludedFileIndex { return myRootManager.getFileIndex().isInSource(file); } + @Override + public boolean isInLibraryClasses(VirtualFile file) { + return myRootManager.getFileIndex().isInLibraryClasses(file); + } + public boolean isExcludedFile(final VirtualFile file) { return myRootManager.getFileIndex().isIgnored(file); } diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/DefaultExcludedFileIndex.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/DefaultExcludedFileIndex.java index f51c89e54e76..776d6cb53747 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/DefaultExcludedFileIndex.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/DefaultExcludedFileIndex.java @@ -43,6 +43,11 @@ public class DefaultExcludedFileIndex extends ExcludedFileIndex { return isInContent(file); } + @Override + public boolean isInLibraryClasses(VirtualFile file) { + return false; + } + public boolean isExcludedFile(final VirtualFile file) { return false; }