package name.admitriev.jhelper.configuration;

import com.intellij.execution.ExecutionTarget;
import com.intellij.execution.ExecutionTargetManager;
import com.intellij.execution.ExecutionTargetProvider;
import com.intellij.execution.RunnerAndConfigurationSettings;
import com.intellij.execution.configurations.RunConfiguration;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class TaskConfigurationTargetProvider extends ExecutionTargetProvider {
	@Override
	public @NotNull List<ExecutionTarget> getTargets(
			@NotNull Project project,
			@NotNull RunConfiguration configuration
	) {
		if (!(configuration instanceof TaskConfiguration)) {
			return Collections.emptyList();
		}
		RunnerAndConfigurationSettings testRunner = TaskRunner.getRunnerSettings(project);
		if (testRunner == null) {
			return Collections.emptyList();
		}
		List<ExecutionTarget> runnerTargets = ExecutionTargetManager.getInstance(project).getTargetsFor(testRunner.getConfiguration());
		List<ExecutionTarget> myTargets = new ArrayList<>();
		for (ExecutionTarget target : runnerTargets) {
			myTargets.add(new TaskConfigurationExecutionTarget(target));
		}
		return myTargets;
	}
}