/* * Copyright 2017 Nokia Solutions and Networks * Licensed under the Apache License, Version 2.0, * see license.txt file for details. */ package org.robotframework.ide.eclipse.main.plugin.launch; import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.CoreException; public interface IRobotLaunchConfiguration { AtomicBoolean IS_CONFIGURATION_RUNNING = new AtomicBoolean(false); String getName(); String getTypeName(); void fillDefaults() throws CoreException; String getProjectName() throws CoreException; void setProjectName(String projectName) throws CoreException; IProject getProject() throws CoreException; List<IResource> getResourcesUnderDebug() throws CoreException; boolean isUsingRemoteAgent() throws CoreException; boolean hasValidVersion() throws CoreException; String getAgentConnectionHost() throws CoreException; int getAgentConnectionPort() throws CoreException; int getAgentConnectionTimeout() throws CoreException; String getAgentConnectionHostValue() throws CoreException; String getAgentConnectionPortValue() throws CoreException; String getAgentConnectionTimeoutValue() throws CoreException; String getConfigurationVersion() throws CoreException; String getCurrentConfigurationVersion() throws CoreException; void setUsingRemoteAgent(boolean isRemoteAgent) throws CoreException; void setAgentConnectionHostValue(String host) throws CoreException; void setAgentConnectionPortValue(String port) throws CoreException; void setAgentConnectionTimeoutValue(String timeout) throws CoreException; void setCurrentConfigurationVersion() throws CoreException; static boolean lockConfigurationLaunches() { return IS_CONFIGURATION_RUNNING.getAndSet(true); } static void unlockConfigurationLaunches() { IS_CONFIGURATION_RUNNING.set(false); } }