package org.eclipse.dltk.internal.debug.core.model;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.debug.core.ILaunch;
import org.eclipse.debug.core.model.IProcess;
import org.eclipse.dltk.compiler.util.Util;
import org.eclipse.dltk.debug.core.DLTKDebugPlugin;
import org.eclipse.dltk.debug.core.IDbgpService;
import org.eclipse.dltk.debug.core.IDebugOptions;
import org.eclipse.dltk.debug.core.model.IScriptBreakpointPathMapper;
public class RemoteScriptDebugTarget extends ScriptDebugTarget {
private static final String LAUNCH_CONFIGURATION_ATTR_REMOTE_WORKING_DIR = "remoteWorkingDir"; //$NON-NLS-1$
private static final String LAUNCH_CONFIGURATION_ATTR_STRIP_SRC_FOLDERS = "stripSourceFolders"; //$NON-NLS-1$
/**
* @param modelId
* @param dbgpService
* @param sessionId
* @param launch
* @param process
*/
public RemoteScriptDebugTarget(String modelId, IDbgpService dbgpService,
String sessionId, ILaunch launch, IProcess process) {
super(modelId, dbgpService, sessionId, launch, process);
}
/**
* @param modelId
* @param dbgpService
* @param sessionId
* @param launch
* @param process
* @param options
*/
public RemoteScriptDebugTarget(String modelId, IDbgpService dbgpService,
String sessionId, ILaunch launch, IProcess process,
IDebugOptions options) {
super(modelId, dbgpService, sessionId, launch, process, options);
}
@Override
protected IScriptBreakpointPathMapper createPathMapper() {
String remoteWorkingDir = null;
boolean stripSrcFolders = false;
try {
remoteWorkingDir = getLaunch().getLaunchConfiguration()
.getAttribute(LAUNCH_CONFIGURATION_ATTR_REMOTE_WORKING_DIR,
Util.EMPTY_STRING);
} catch (CoreException e) {
DLTKDebugPlugin.log(e);
}
try {
stripSrcFolders = getLaunch().getLaunchConfiguration().getAttribute(
LAUNCH_CONFIGURATION_ATTR_STRIP_SRC_FOLDERS, false);
} catch (CoreException e) {
DLTKDebugPlugin.log(e);
}
return new ScriptBreakpointPathMapper(getScriptProject(),
remoteWorkingDir, stripSrcFolders);
}
@Override
public boolean isRemote() {
return true;
}
}