1 package org.jetbrains.plugins.gradle.diff;
3 import com.intellij.openapi.module.Module;
4 import com.intellij.openapi.project.Project;
5 import com.intellij.openapi.roots.OrderEntry;
6 import com.intellij.pom.java.LanguageLevel;
7 import org.jetbrains.annotations.NotNull;
9 import java.util.Collection;
12 * IntelliJ code provides a lot of statical bindings to the interested pieces of data. For example we need to execute code
13 * like below to get list of modules for the target project:
15 * ModuleManager.getInstance(project).getModules()
17 * That means that it's not possible to test target classes in isolation if corresponding infrastructure is not set up.
18 * However, we don't want to set it up if we execute a simple standalone test.
20 * This interface is intended to encapsulate access to the underlying project infrastructure.
22 * Implementations of this interface are expected to be thread-safe.
24 * @author Denis Zhdanov
25 * @since 1/26/12 11:32 AM
27 public interface GradleProjectStructureHelper {
30 LanguageLevel getLanguageLevel(@NotNull Project project);
33 Collection<Module> getModules(@NotNull Project project);
36 Collection<OrderEntry> getOrderEntries(@NotNull Module module);