/*******************************************************************************
* This program and the accompanying materials are made available under the terms of the Common
* Public License v1.0 which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v10.html
*
* Copyright (c) 2016 Synopsys, Inc.
*******************************************************************************/
package com.arc.embeddedcdt.dsf.utils;
import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants;
import org.eclipse.cdt.dsf.gdb.IGDBLaunchConfigurationConstants;
import org.eclipse.cdt.launch.remote.IRemoteConnectionConfigurationConstants;
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
import com.arc.embeddedcdt.LaunchConfigurationConstants;
/*
* Utility class with convenient methods for setting options' values for launch configuration.
*
* Instead of calling launchConfiguration.setAttribute() and specifying the attribute to be used as
* a key every time methods from this class can be used.
*/
public class ConfigurationWriter {
private final ILaunchConfigurationWorkingCopy lc;
public ConfigurationWriter(final ILaunchConfigurationWorkingCopy lc) {
this.lc = lc;
}
private void setAttribute(final String attribute, final String defaultValue) {
lc.setAttribute(attribute, defaultValue);
}
private void setAttribute(final String attribute, final boolean defaultValue) {
lc.setAttribute(attribute, defaultValue);
}
private void setAttribute(final String attribute, final int defaultValue) {
lc.setAttribute(attribute, defaultValue);
}
public void setProgramName(final String value) {
setAttribute(ICDTLaunchConfigurationConstants.ATTR_PROGRAM_NAME, value);
}
public void setTimeStamp(final String value) {
setAttribute(LaunchConfigurationConstants.ATTR_TIMESTAMP, value);
}
public void setFileFormatVersion(final int value) {
setAttribute(LaunchConfigurationConstants.ATTR_FILE_FORMAT_VERSION, value);
}
public void setGdbPath(final String value) {
setAttribute(IGDBLaunchConfigurationConstants.ATTR_DEBUG_NAME, value);
}
public void setOpenOcdPath(final String value) {
setAttribute(LaunchConfigurationConstants.ATTR_DEBUGGER_OPENOCD_BIN_PATH, value);
}
public void setOpenOcdConfig(final String value) {
setAttribute(LaunchConfigurationConstants.ATTR_DEBUGGER_EXTERNAL_TOOLS_OPENOCD_PATH, value);
}
public void setHostAddress(final String value) {
setAttribute(LaunchConfigurationConstants.ATTR_DEBUGGER_GDB_ADDRESS, value);
}
public void setGdbServerPort(final String value) {
setAttribute(IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_PORT, value);
}
public void setComPort(final String value) {
setAttribute(LaunchConfigurationConstants.ATTR_DEBUGGER_COM_PORT, value);
}
public void setLaunchTerminal(final boolean value) {
setAttribute(LaunchConfigurationConstants.ATTR_DEBUGGER_TERMINAL_DEFAULT, value);
}
public void setNsimUseDefaultDirectory(final boolean value) {
setAttribute(LaunchConfigurationConstants.ATTR_DEBUGGER_NSIM_USE_DEFAULT_DIRECTORY, value);
}
public void setNsimUseNsimHostLink(final boolean value) {
setAttribute(LaunchConfigurationConstants.ATTR_DEBUGGER_USE_NSIMHOSTLINK, value);
}
public void setGdbServer(final String value) {
setAttribute(LaunchConfigurationConstants.ATTR_DEBUGGER_EXTERNAL_TOOLS, value);
}
public void setNsimPath(final String value) {
setAttribute(LaunchConfigurationConstants.ATTR_DEBUGGER_EXTERNAL_TOOLS_NSIM_PATH, value);
}
public void setNsimTcfPath(final String value) {
setAttribute(LaunchConfigurationConstants.ATTR_NSIM_TCF_FILE, value);
}
public void setNsimUseTcf(final boolean value) {
setAttribute(LaunchConfigurationConstants.ATTR_DEBUGGER_USE_NSIMTCF, value);
}
public void setNsimPropsPath(final String value) {
setAttribute(LaunchConfigurationConstants.ATTR_NSIM_PROP_FILE, value);
}
public void setNsimUseProps(final boolean value) {
setAttribute(LaunchConfigurationConstants.ATTR_DEBUGGER_USE_NSIMPROPS, value);
}
public void setNsimUseNsimHostlink(final boolean value) {
setAttribute(LaunchConfigurationConstants.ATTR_DEBUGGER_USE_NSIMHOSTLINK, value);
}
public void setNsimUseJit(final boolean value) {
setAttribute(LaunchConfigurationConstants.ATTR_DEBUGGER_USE_NSIMJIT, value);
}
public void setNsimJitThreads(final String value) {
setAttribute(LaunchConfigurationConstants.ATTR_DEBUGGER_USE_NSIMJITTHREAD, value);
}
public void setNsimSimulateMemoryExceptions(final boolean value) {
setAttribute(LaunchConfigurationConstants.ATTR_DEBUGGER_USE_NSIMMEMOEXPT, value);
}
public void setNsimSimulateExceptions(final boolean value) {
setAttribute(LaunchConfigurationConstants.ATTR_DEBUGGER_USE_NSIMENABLEEXPT, value);
}
public void setNsimSimulateInvalidInstructionExceptions(final boolean value) {
setAttribute(LaunchConfigurationConstants.ATTR_DEBUGGER_USE_NSIMINVAINSTRUEXPT, value);
}
public void setNsimWorkingDirectoryPath(final String value) {
setAttribute(LaunchConfigurationConstants.ATTR_DEBUGGER_NSIM_WORKING_DIRECTORY, value);
}
public void setAshlingPath(final String value) {
setAttribute(LaunchConfigurationConstants.ATTR_DEBUGGER_EXTERNAL_TOOLS_ASHLING_PATH, value);
}
public void setAshlingXmlPath(final String value) {
setAttribute(LaunchConfigurationConstants.ATTR_ASHLING_XML_PATH, value);
}
public void setAshlingTDescPath(final String value) {
setAttribute(LaunchConfigurationConstants.ATTR_ASHLING_TDESC_PATH, value);
}
public void setAshlingJtagFrequency(final String value) {
setAttribute(LaunchConfigurationConstants.ATTR_JTAG_FREQUENCY, value);
}
public void setCustomGdbServerPath(final String value) {
setAttribute(LaunchConfigurationConstants.ATTR_DEBUGGER_CUSTOM_GDBSERVER_BIN_PATH, value);
}
public void setCustomGdbServerArgs(final String value) {
setAttribute(LaunchConfigurationConstants.ATTR_DEBUGGER_CUSTOM_GDBSERVER_COMMAND, value);
}
public void setStopAtMain(final boolean value) {
setAttribute(ICDTLaunchConfigurationConstants.ATTR_DEBUGGER_STOP_AT_MAIN, value);
}
public void setStopSymbol(final String value) {
setAttribute(ICDTLaunchConfigurationConstants.ATTR_DEBUGGER_STOP_AT_MAIN_SYMBOL, value);
}
public void setUserInitCommands(final String value) {
setAttribute(LaunchConfigurationConstants.ATTR_DEBUGGER_COMMANDS_INIT, value);
}
public void setUserRunCommands(final String value) {
setAttribute(LaunchConfigurationConstants.ATTR_DEBUGGER_COMMANDS_RUN, value);
}
public void setFtdiDevice(final String value) {
setAttribute(LaunchConfigurationConstants.ATTR_FTDI_DEVICE, value);
}
public void setFtdiCore(final String value) {
setAttribute(LaunchConfigurationConstants.ATTR_FTDI_CORE, value);
}
public void setGdbServerCommand(final String value) {
setAttribute(IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_COMMAND, value);
}
public void setDoLaunchTerminal(final boolean value){
setAttribute(LaunchConfigurationConstants.ATTR_DEBUGGER_TERMINAL_DEFAULT, value);
}
public void setNsimDefaultPath(final String value){
setAttribute(LaunchConfigurationConstants.ATTR_NSIM_DEFAULT_PATH, value);
}
}