package jetbrains.mps.execution.configurations.implementation.plugin.plugin; /*Generated by MPS */ import jetbrains.mps.debug.api.run.DebuggerRunProfileState; import com.intellij.execution.configurations.RunProfileState; import org.jetbrains.annotations.NotNull; import com.intellij.execution.runners.ExecutionEnvironment; import com.intellij.execution.Executor; import com.intellij.execution.configurations.ConfigurationPerRunnerSettings; import com.intellij.execution.configurations.RunnerSettings; import org.jetbrains.annotations.Nullable; import com.intellij.execution.ExecutionResult; import com.intellij.execution.runners.ProgramRunner; import com.intellij.execution.ExecutionException; import com.intellij.openapi.project.Project; import com.intellij.execution.ui.ConsoleView; import jetbrains.mps.execution.api.configurations.ConsoleCreator; import jetbrains.mps.ide.actions.StandaloneMPSStackTraceFilter; import org.jetbrains.mps.openapi.model.SNodeReference; import com.intellij.execution.process.ProcessHandler; import jetbrains.mps.baseLanguage.execution.api.Java_Command; import jetbrains.mps.ide.project.ProjectHelper; import jetbrains.mps.execution.api.configurations.DefaultExecutionResult; import jetbrains.mps.execution.api.configurations.DefaultExecutionConsole; import jetbrains.mps.baseLanguage.closures.runtime._FunctionTypes; import jetbrains.mps.debug.api.run.IDebuggerConfiguration; import com.intellij.execution.executors.DefaultRunExecutor; import com.intellij.execution.executors.DefaultDebugExecutor; public class Java_Configuration_RunProfileState extends DebuggerRunProfileState implements RunProfileState { @NotNull private final Java_Configuration myRunConfiguration; @NotNull private final ExecutionEnvironment myEnvironment; public Java_Configuration_RunProfileState(@NotNull Java_Configuration configuration, @NotNull Executor executor, @NotNull ExecutionEnvironment environment) { myRunConfiguration = configuration; myEnvironment = environment; } public ConfigurationPerRunnerSettings getConfigurationSettings() { return null; } public RunnerSettings getRunnerSettings() { return null; } @Nullable public ExecutionResult execute(Executor executor, @NotNull ProgramRunner runner) throws ExecutionException { Project project = myEnvironment.getProject(); ConsoleView console = ConsoleCreator.createConsoleView(project, false); console.addMessageFilter(new StandaloneMPSStackTraceFilter(project)); SNodeReference pointer = myRunConfiguration.getNode().getNode(); if (pointer == null) { console.dispose(); throw new ExecutionException("No node selected."); } { ProcessHandler _processHandler = new Java_Command().setDebuggerSettings_String(myDebuggerSettings.getCommandLine(true)).createProcess(myRunConfiguration.getRunParameters().getJavaRunParameters(), pointer, ProjectHelper.getProjectRepository(project)); final ConsoleView _consoleView = console; _consoleView.attachToProcess(_processHandler); return new DefaultExecutionResult(_processHandler, new DefaultExecutionConsole(_consoleView.getComponent(), new _FunctionTypes._void_P0_E0() { public void invoke() { _consoleView.dispose(); } })); } } @NotNull public IDebuggerConfiguration getDebuggerConfiguration() { return Java_Command.getDebuggerConfiguration(); } public static boolean canExecute(String executorId) { if (DefaultRunExecutor.EXECUTOR_ID.equals(executorId)) { return true; } if (DefaultDebugExecutor.EXECUTOR_ID.equals(executorId)) { return true; } return false; } }