// Copyright 2012 Google Inc. All Rights Reserved.
package com.google.eclipse.javascript.jstestdriver.core.model;
import com.google.common.collect.Lists;
import com.google.eclipse.javascript.jstestdriver.core.ProjectHelper;
import com.google.jstestdriver.model.BasePaths;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.debug.core.ILaunchConfiguration;
import java.io.File;
import java.util.List;
/**
* Wrapper for the {@link ILaunchConfiguration},
* to make it easy to extract information.
* @author corysmith@google.com (Cory Smith)
*
*/
public class JstdLaunchConfiguration {
private final ILaunchConfiguration configuration;
private final ProjectHelper helper = new ProjectHelper();
public JstdLaunchConfiguration(ILaunchConfiguration configuration) {
this.configuration = configuration;
}
public String getName() throws CoreException {
return configuration.getAttribute(LaunchConfigurationConstants.CONF_FILENAME, "");
}
public IProject getProject() throws CoreException {
return helper.getProject(configuration.getAttribute(LaunchConfigurationConstants.PROJECT_NAME, ""));
}
public String getConfigurationPath() throws CoreException {
String path = configuration.getAttribute(LaunchConfigurationConstants.CONF_FULLPATH, "");
return getProject().getFile(path).getLocation().toOSString();
}
public BasePaths getBasePaths() throws CoreException {
List<File> paths = Lists.newArrayList();
for (int j = 0;; j++) {
String path = configuration.getAttribute(
String.format("%s_%s", LaunchConfigurationConstants.BASEPATH, j),
"NULL");
if ("NULL".equals(path)) {
break;
}
paths.add(new File(path));
}
return new BasePaths(paths);
}
ILaunchConfiguration toLaunchConfiguration() {
return configuration;
}
}