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 com.intellij.execution.process.ProcessHandler;
import jetbrains.mps.debugger.java.runtime.configurations.remote.RemoteProcessHandler;
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 jetbrains.mps.debug.api.IDebuggerSettings;
import jetbrains.mps.debug.api.IDebugger;
import jetbrains.mps.debug.api.Debuggers;
import com.intellij.execution.executors.DefaultDebugExecutor;
public class Remote_Configuration_RunProfileState extends DebuggerRunProfileState implements RunProfileState {
@NotNull
private final Remote_Configuration myRunConfiguration;
@NotNull
private final ExecutionEnvironment myEnvironment;
public Remote_Configuration_RunProfileState(@NotNull Remote_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));
{
ProcessHandler _processHandler = new RemoteProcessHandler(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 new IDebuggerConfiguration() {
@Nullable
public IDebuggerSettings createDebuggerSettings() {
return myRunConfiguration.getSettings();
}
public IDebugger getDebugger() {
return Debuggers.getInstance().getDebuggerByName("Java");
}
};
}
public static boolean canExecute(String executorId) {
if (DefaultDebugExecutor.EXECUTOR_ID.equals(executorId)) {
return true;
}
return false;
}
}