package com.intellij.perlplugin.extensions.run.configuration;
import com.intellij.execution.ExecutionException;
import com.intellij.execution.Executor;
import com.intellij.execution.configurations.*;
import com.intellij.execution.runners.ExecutionEnvironment;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.options.SettingsEditor;
import com.intellij.perlplugin.PerlInternalParser;
import com.intellij.perlplugin.extensions.run.configuration.ui.PerlSettingsEditor;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.ListIterator;
/**
* Created by ELI-HOME on 22-May-15.
*/
public class PerlRunConfiguration extends ModuleBasedConfiguration {
public PerlRunConfiguration(String name, RunConfigurationModule configurationModule, ConfigurationFactory factory) {
super(name, configurationModule, factory);
}
public PerlRunConfiguration(RunConfigurationModule configurationModule, ConfigurationFactory factory) {
super(configurationModule, factory);
}
@Override
public Collection<Module> getValidModules() {
Collection perlModules = this.getAllModules();
ListIterator<Module> allModules = new ArrayList<Module>().listIterator();
while (allModules.hasNext()) {
Module module = allModules.next();
if (PerlInternalParser.isValidModuleType(module)) {
perlModules.add(module);
}
}
return perlModules;
}
@NotNull
@Override
public SettingsEditor<? extends RunConfiguration> getConfigurationEditor() {
return new PerlSettingsEditor();//TODO:: implement
}
@Nullable
@Override
public RunProfileState getState(@NotNull Executor executor, @NotNull ExecutionEnvironment executionEnvironment) throws ExecutionException {
return null;//TODO:: implement
}
}