diff --git a/openapi/src/com/intellij/openapi/roots/ModuleFileIndex.java b/openapi/src/com/intellij/openapi/roots/ModuleFileIndex.java index 495b1e1ae391..8073308121d5 100644 --- a/openapi/src/com/intellij/openapi/roots/ModuleFileIndex.java +++ b/openapi/src/com/intellij/openapi/roots/ModuleFileIndex.java @@ -11,4 +11,6 @@ import com.intellij.openapi.vfs.VirtualFile; */ public interface ModuleFileIndex extends FileIndex { OrderEntry getOrderEntryForFile(VirtualFile fileOrDir); + + OrderEntry[] getOrderEntriesForFile(VirtualFile fileOrDir); } diff --git a/source/com/intellij/execution/junit/JUnitUtil.java b/source/com/intellij/execution/junit/JUnitUtil.java index bde50729b5e0..0d76908f7c31 100644 --- a/source/com/intellij/execution/junit/JUnitUtil.java +++ b/source/com/intellij/execution/junit/JUnitUtil.java @@ -137,11 +137,6 @@ public class JUnitUtil { return getTestCaseClass(scope, module.getProject()); } - public static PsiClass getTestCaseClass(final SourceScope scope) throws NoJUnitException { - if (scope == null) throw new NoJUnitException(); - return getTestCaseClass(scope.getLibrariesScope(), scope.getProject()); - } - private static PsiClass getTestCaseClass(final GlobalSearchScope scope, final Project project) throws NoJUnitException { final PsiClass testCaseClass = PsiManager.getInstance(project).findClass(TESTCASE_CLASS, scope); // TODO do not search in sources; if (testCaseClass == null) throw new NoJUnitException(); diff --git a/source/com/intellij/openapi/roots/impl/ModuleFileIndexImpl.java b/source/com/intellij/openapi/roots/impl/ModuleFileIndexImpl.java index 7a88b207174f..d825ccfd5742 100644 --- a/source/com/intellij/openapi/roots/impl/ModuleFileIndexImpl.java +++ b/source/com/intellij/openapi/roots/impl/ModuleFileIndexImpl.java @@ -12,6 +12,7 @@ import com.intellij.openapi.vfs.VirtualFileFilter; import java.util.ArrayList; import java.util.Iterator; +import java.util.List; import java.util.Set; public class ModuleFileIndexImpl implements ModuleFileIndex { @@ -81,6 +82,22 @@ public class ModuleFileIndexImpl implements ModuleFileIndex { } } + public OrderEntry[] getOrderEntriesForFile(VirtualFile fileOrDir) { + VirtualFile dir = fileOrDir.isDirectory() ? fileOrDir : fileOrDir.getParent(); + if (dir == null) return null; + final DirectoryInfo info = myDirectoryIndex.getInfoForDirectory(dir); + if (info == null) return null; + final Set orderEntries = info.orderEntries; + List result = new ArrayList(); + for (Iterator iterator = orderEntries.iterator(); iterator.hasNext();) { + OrderEntry orderEntry = iterator.next(); + if (orderEntry.getOwnerModule() == myModule) { + result.add(orderEntry); + } + } + return result.size() > 0 ? result.toArray(new OrderEntry[result.size()]) : OrderEntry.EMPTY_ARRAY; + } + public OrderEntry getOrderEntryForFile(VirtualFile fileOrDir) { VirtualFile dir = fileOrDir.isDirectory() ? fileOrDir : fileOrDir.getParent(); if (dir == null) return null;