mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
API for setting per-module bytecode target level
This commit is contained in:
@@ -29,6 +29,7 @@ import com.intellij.compiler.impl.javaCompiler.eclipse.EclipseCompiler;
|
||||
import com.intellij.compiler.impl.javaCompiler.eclipse.EclipseEmbeddedCompiler;
|
||||
import com.intellij.compiler.impl.javaCompiler.javac.JavacCompiler;
|
||||
import com.intellij.compiler.impl.javaCompiler.jikes.JikesCompiler;
|
||||
import com.intellij.compiler.server.BuildManager;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.ApplicationNamesInfo;
|
||||
import com.intellij.openapi.application.ex.ApplicationManagerEx;
|
||||
@@ -59,6 +60,7 @@ import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.io.File;
|
||||
import java.util.*;
|
||||
|
||||
@@ -169,6 +171,27 @@ public class CompilerConfigurationImpl extends CompilerConfiguration implements
|
||||
return myModuleBytecodeTarget;
|
||||
}
|
||||
|
||||
public void setBytecodeTargetLevel(Module module, String level) {
|
||||
final String previous;
|
||||
if (StringUtil.isEmpty(level)) {
|
||||
previous = myModuleBytecodeTarget.remove(module.getName());
|
||||
}
|
||||
else {
|
||||
previous = myModuleBytecodeTarget.put(module.getName(), level);
|
||||
}
|
||||
if (!Comparing.equal(previous, level)) {
|
||||
final Project project = module.getProject();
|
||||
SwingUtilities.invokeLater(new Runnable() {
|
||||
public void run() {
|
||||
if (!project.isDisposed()) {
|
||||
CompileServerManager.getInstance().sendReloadRequest(project);
|
||||
BuildManager.getInstance().clearState(project);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public String getBytecodeTargetLevel(Module module) {
|
||||
|
||||
@@ -33,6 +33,8 @@ public abstract class CompilerConfiguration {
|
||||
@Nullable
|
||||
public abstract String getBytecodeTargetLevel(Module module);
|
||||
|
||||
public abstract void setBytecodeTargetLevel(Module module, String level);
|
||||
|
||||
public static CompilerConfiguration getInstance(Project project) {
|
||||
return project.getComponent(CompilerConfiguration.class);
|
||||
}
|
||||
@@ -72,5 +74,4 @@ public abstract class CompilerConfiguration {
|
||||
public abstract boolean isAnnotationProcessingEnabled(Module module);
|
||||
|
||||
public abstract String getGeneratedSourceDirName(Module module);
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user