package org.projectusus.autotestsuite.core.internal.config;
import static com.google.common.collect.Iterables.transform;
import java.util.Collection;
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.internal.junit.launcher.ITestKind;
import org.eclipse.jdt.internal.junit.launcher.JUnitLaunchConfigurationConstants;
import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
import com.google.common.base.Function;
import com.google.common.base.Joiner;
@SuppressWarnings( "restriction" )
public class ExtendedJUnitLaunchConfigurationWriter {
private final ILaunchConfigurationWorkingCopy config;
public ExtendedJUnitLaunchConfigurationWriter( ILaunchConfigurationWorkingCopy config ) {
this.config = config;
}
public void setCheckedProjects( Collection<IJavaProject> checkedProjects ) {
String value = Joiner.on( ExtendedJUnitLaunchConfigurationConstants.CHECKED_PROJECTS_SEPARATOR ).join( transform( checkedProjects, new Function<Object, String>() {
public String apply( Object project ) {
return ((IJavaProject)project).getElementName();
}
} ) );
config.setAttribute( ExtendedJUnitLaunchConfigurationConstants.ATTR_CHECKED_PROJECTS, value );
}
public void setTestKind( String testKindId ) {
config.setAttribute( JUnitLaunchConfigurationConstants.ATTR_TEST_RUNNER_KIND, testKindId );
}
public void setProjectName( String name ) {
config.setAttribute( IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, name );
}
public void setTestContainer( String identifier ) {
config.setAttribute( JUnitLaunchConfigurationConstants.ATTR_TEST_CONTAINER, identifier );
}
public void setUnusedAttributesToDefaults() {
config.setAttribute( IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, "" ); //$NON-NLS-1$
config.setAttribute( JUnitLaunchConfigurationConstants.ATTR_TEST_METHOD_NAME, "" ); //$NON-NLS-1$
}
public void setKeepRunning( boolean keepRunning ) {
config.setAttribute( JUnitLaunchConfigurationConstants.ATTR_KEEPRUNNING, keepRunning );
}
public void setTestKind( ITestKind testKind ) {
config.setAttribute( JUnitLaunchConfigurationConstants.ATTR_TEST_RUNNER_KIND, testKind.getId() );
}
public void setDefaultTestKind() {
setTestKind( ExtendedJUnitLaunchConfigurationConstants.DEFAULT_TEST_KIND_ID );
}
public void renameTo( String inputName ) {
config.rename( inputName );
}
}