Code style settings UI: "Set from" button moved to tabs
[idea/community.git] / plugins / gradle / src / org / jetbrains / plugins / gradle / diff / GradleProjectStructureHelper.java
1 package org.jetbrains.plugins.gradle.diff;
2
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;
8
9 import java.util.Collection;
10
11 /**
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:
14  * <pre>
15  *   ModuleManager.getInstance(project).getModules()
16  * </pre>
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.
19  * <p/>
20  * This interface is intended to encapsulate access to the underlying project infrastructure.
21  * <p/>
22  * Implementations of this interface are expected to be thread-safe.
23  * 
24  * @author Denis Zhdanov
25  * @since 1/26/12 11:32 AM
26  */
27 public interface GradleProjectStructureHelper {
28
29   @NotNull
30   LanguageLevel getLanguageLevel(@NotNull Project project);
31
32   @NotNull
33   Collection<Module> getModules(@NotNull Project project);
34
35   @NotNull
36   Collection<OrderEntry> getOrderEntries(@NotNull Module module);
37 }