junit: cache scopes

This commit is contained in:
Anna Kozlova
2013-06-10 13:22:37 +04:00
parent 55cb8c287f
commit 169a2ea155
@@ -97,20 +97,30 @@ public abstract class SourceScope {
public static SourceScope modulesWithDependencies(final Module[] modules) {
if (modules == null || modules.length == 0) return null;
return new ModuleSourceScope(modules[0].getProject()) {
private GlobalSearchScope myGlobalSearchScope;
private GlobalSearchScope myLibScope;
public GlobalSearchScope getGlobalSearchScope() {
return evaluateScopesAndUnite(modules, new ScopeForModuleEvaluator() {
public GlobalSearchScope evaluate(final Module module) {
return GlobalSearchScope.moduleWithDependenciesScope(module);
}
});
if (myGlobalSearchScope == null) {
myGlobalSearchScope = evaluateScopesAndUnite(modules, new ScopeForModuleEvaluator() {
public GlobalSearchScope evaluate(final Module module) {
return GlobalSearchScope.moduleWithDependenciesScope(module);
}
});
}
return myGlobalSearchScope;
}
public GlobalSearchScope getLibrariesScope() {
return evaluateScopesAndUnite(modules, new ScopeForModuleEvaluator() {
public GlobalSearchScope evaluate(final Module module) {
return new ModuleWithDependenciesAndLibsDependencies(module);
}
});
if (myLibScope == null) {
myLibScope = evaluateScopesAndUnite(modules, new ScopeForModuleEvaluator() {
public GlobalSearchScope evaluate(final Module module) {
return new ModuleWithDependenciesAndLibsDependencies(module);
}
});
}
return myLibScope;
}
public Module[] getModulesToCompile() {
@@ -135,20 +145,30 @@ public abstract class SourceScope {
public static SourceScope modules(final Module[] modules) {
if (modules == null || modules.length == 0) return null;
return new ModuleSourceScope(modules[0].getProject()) {
private GlobalSearchScope myLibScope;
private GlobalSearchScope myGlobalSearchScope;
public GlobalSearchScope getGlobalSearchScope() {
return evaluateScopesAndUnite(modules, new ScopeForModuleEvaluator() {
public GlobalSearchScope evaluate(final Module module) {
return GlobalSearchScope.moduleScope(module);
}
});
if (myGlobalSearchScope == null) {
myGlobalSearchScope = evaluateScopesAndUnite(modules, new ScopeForModuleEvaluator() {
public GlobalSearchScope evaluate(final Module module) {
return GlobalSearchScope.moduleScope(module);
}
});
}
return myGlobalSearchScope;
}
public GlobalSearchScope getLibrariesScope() {
return evaluateScopesAndUnite(modules, new ScopeForModuleEvaluator() {
public GlobalSearchScope evaluate(final Module module) {
return GlobalSearchScope.moduleWithLibrariesScope(module);
}
});
if (myLibScope == null) {
myLibScope = evaluateScopesAndUnite(modules, new ScopeForModuleEvaluator() {
public GlobalSearchScope evaluate(final Module module) {
return GlobalSearchScope.moduleWithLibrariesScope(module);
}
});
}
return myLibScope;
}
public Module[] getModulesToCompile() {