moduleWithLibraries scope fix, check for junit.jar availability fix.

This commit is contained in:
Maxim Shafirov
2005-03-04 00:28:42 +03:00
parent e6e9a70c82
commit e541877efb
3 changed files with 19 additions and 5 deletions
@@ -11,4 +11,6 @@ import com.intellij.openapi.vfs.VirtualFile;
*/
public interface ModuleFileIndex extends FileIndex {
OrderEntry getOrderEntryForFile(VirtualFile fileOrDir);
OrderEntry[] getOrderEntriesForFile(VirtualFile fileOrDir);
}
@@ -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();
@@ -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<OrderEntry> orderEntries = info.orderEntries;
List<OrderEntry> result = new ArrayList<OrderEntry>();
for (Iterator<OrderEntry> 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;