/*
* Copyright 2015 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.debug;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.sourcelookup.ISourceContainer;
import org.eclipse.debug.core.sourcelookup.ISourcePathComputerDelegate;
import org.eclipse.debug.core.sourcelookup.containers.ProjectSourceContainer;
import org.eclipse.debug.core.sourcelookup.containers.WorkspaceSourceContainer;
import org.robotframework.ide.eclipse.main.plugin.launch.LaunchConfigurationsWrappers;
public class RobotSourcePathComputerDelegate implements ISourcePathComputerDelegate {
@Override
public ISourceContainer[] computeSourceContainers(final ILaunchConfiguration configuration, final IProgressMonitor monitor)
throws CoreException {
final String projectName = LaunchConfigurationsWrappers.robotLaunchConfiguration(configuration)
.getProjectName();
if (projectName.isEmpty()) {
return new ISourceContainer[0];
}
final IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
final ISourceContainer container = project.exists() ? new ProjectSourceContainer(project, true)
: new WorkspaceSourceContainer();
return new ISourceContainer[] { container };
}
}