blob: d4b854cfe50e688fc3405a46108aab95b7e1f768 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008 IBM Corporation.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
******************************************************************************/
/**
*
*/
package org.eclipse.ptp.rm.core.rmsystem;
/**
* @author greg
*/
public abstract class AbstractToolRMServiceProvider extends AbstractRemoteResourceManagerServiceProvider implements IToolRMConfiguration {
public static final String EMPTY_STRING = ""; //$NON-NLS-1$
private static final String TAG_LAUNCH_CMD = "launchCmd"; //$NON-NLS-1$
private static final String TAG_DEBUG_CMD = "debugCmd"; //$NON-NLS-1$
private static final String TAG_DISCOVER_CMD = "discoverCmd"; //$NON-NLS-1$
private static final String TAG_PERIODIC_MONITOR_CMD = "periodicMonitorCmd"; //$NON-NLS-1$
private static final String TAG_PERIODIC_MONITOR_TIME = "periodicMonitorTime"; //$NON-NLS-1$
private static final String TAG_CONTINUOUS_MONITOR_CMD = "continuousMonitorCmd"; //$NON-NLS-1$
private static final String TAG_REMOTE_INSTALL_PATH = "remoteInstallPath"; //$NON-NLS-1$
private static final String TAG_USE_TOOL_DEFAULTS = "useToolDefaults"; //$NON-NLS-1$
private static final String TAG_USE_INSTALL_DEFAULTS = "useInstallDefaults"; //$NON-NLS-1$
private static final String TAG_COMMANDS_ENABLED = "commandsEnabled"; //$NON-NLS-1$
private int fCapabilities;
public AbstractToolRMServiceProvider(int capabilities) {
fCapabilities = capabilities;
}
/**
* Constructor for creating a working copy of the service provider
*
* @param provider provider we are making a copy from
*/
public AbstractToolRMServiceProvider(AbstractToolRMServiceProvider provider) {
super(provider);
fCapabilities = provider.getCapabilities();
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.core.rmsystem.IToolRMConfiguration#getCapabilities()
*/
public int getCapabilities() {
return fCapabilities;
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.core.rmsystem.IToolRMConfiguration#getCommandsEnabled()
*/
public boolean getCommandsEnabled() {
return getBoolean(TAG_COMMANDS_ENABLED, true);
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.core.rmsystem.IToolRMConfiguration#getContinuousMonitorCmd()
*/
public String getContinuousMonitorCmd() {
return getString(TAG_CONTINUOUS_MONITOR_CMD, ""); //$NON-NLS-1$
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.core.rmsystem.IToolRMConfiguration#getDebugCmd()
*/
public String getDebugCmd() {
return getString(TAG_DEBUG_CMD, ""); //$NON-NLS-1$
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.core.rmsystem.IToolRMConfiguration#getDiscoverCmd()
*/
public String getDiscoverCmd() {
return getString(TAG_DISCOVER_CMD, ""); //$NON-NLS-1$
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.core.rmsystem.IToolRMConfiguration#getLaunchCmd()
*/
public String getLaunchCmd() {
return getString(TAG_LAUNCH_CMD, ""); //$NON-NLS-1$
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.core.rmsystem.IToolRMConfiguration#getPeriodicMonitorCmd()
*/
public String getPeriodicMonitorCmd() {
return getString(TAG_PERIODIC_MONITOR_CMD, ""); //$NON-NLS-1$
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.core.rmsystem.IToolRMConfiguration#getPeriodicMonitorTime()
*/
public int getPeriodicMonitorTime() {
return getInt(TAG_PERIODIC_MONITOR_TIME, 0);
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.core.rmsystem.IToolRMConfiguration#getRemoteInstallPath()
*/
public String getRemoteInstallPath() {
return getString(TAG_REMOTE_INSTALL_PATH, ""); //$NON-NLS-1$
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.core.rmsystem.IToolRMConfiguration#getUseInstallDefaults()
*/
public boolean getUseInstallDefaults() {
return getBoolean(TAG_USE_INSTALL_DEFAULTS, true);
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.core.rmsystem.IToolRMConfiguration#getUseToolDefaults()
*/
public boolean getUseToolDefaults() {
return getBoolean(TAG_USE_TOOL_DEFAULTS, true);
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.core.rmsystem.IToolRMConfiguration#hasContinuousMonitorCmd()
*/
public boolean hasContinuousMonitorCmd() {
return (fCapabilities & CAP_CONTINUOUS_MONITOR) != 0
&& getContinuousMonitorCmd() != null
&& !getContinuousMonitorCmd().trim().equals(EMPTY_STRING);
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.core.rmsystem.IToolRMConfiguration#hasDebugCmd()
*/
public boolean hasDebugCmd() {
return (fCapabilities & CAP_LAUNCH) != 0 && getDebugCmd() != null
&& !getDebugCmd().trim().equals(EMPTY_STRING);
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.core.rmsystem.IToolRMConfiguration#hasDiscoverCmd()
*/
public boolean hasDiscoverCmd() {
return (fCapabilities & CAP_DISCOVER) != 0 && getDiscoverCmd() != null
&& !getDiscoverCmd().trim().equals(EMPTY_STRING);
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.core.rmsystem.IToolRMConfiguration#hasLaunchCmd()
*/
public boolean hasLaunchCmd() {
return (fCapabilities & CAP_LAUNCH) != 0 && getLaunchCmd() != null
&& !getLaunchCmd().trim().equals(EMPTY_STRING);
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.core.rmsystem.IToolRMConfiguration#hasPeriodicMonitorCmd()
*/
public boolean hasPeriodicMonitorCmd() {
return (fCapabilities & CAP_PERIODIC_MONITOR) != 0
&& getPeriodicMonitorCmd() != null
&& !getPeriodicMonitorCmd().trim().equals(EMPTY_STRING);
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rmsystem.AbstractResourceManagerServiceProvider#needsDebuggerLaunchHelp()
*/
@Override
public boolean needsDebuggerLaunchHelp() {
return true;
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.core.rmsystem.IToolRMConfiguration#setCommandsEnabled(boolean)
*/
public void setCommandsEnabled(boolean commandsEnabled) {
putBoolean(TAG_COMMANDS_ENABLED, commandsEnabled);
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.core.rmsystem.IToolRMConfiguration#setContinuousMonitorCmd(java.lang.String)
*/
public void setContinuousMonitorCmd(String continuousMonitorCmd) {
putString(TAG_CONTINUOUS_MONITOR_CMD, continuousMonitorCmd);
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.core.rmsystem.IToolRMConfiguration#setDebugCmd(java.lang.String)
*/
public void setDebugCmd(String debugCmd) {
putString(TAG_DEBUG_CMD, debugCmd);
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.core.rmsystem.IToolRMConfiguration#setDiscoverCmd(java.lang.String)
*/
public void setDiscoverCmd(String discoverCmd) {
putString(TAG_DISCOVER_CMD, discoverCmd);
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.core.rmsystem.IToolRMConfiguration#setLaunchCmd(java.lang.String)
*/
public void setLaunchCmd(String launchCmd) {
putString(TAG_LAUNCH_CMD, launchCmd);
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.core.rmsystem.IToolRMConfiguration#setPeriodicMonitorCmd(java.lang.String)
*/
public void setPeriodicMonitorCmd(String periodicMonitorCmd) {
putString(TAG_PERIODIC_MONITOR_CMD, periodicMonitorCmd);
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.core.rmsystem.IToolRMConfiguration#setPeriodicMonitorTime(int)
*/
public void setPeriodicMonitorTime(int periodicMonitorTime) {
putInt(TAG_PERIODIC_MONITOR_TIME, periodicMonitorTime);
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.core.rmsystem.IToolRMConfiguration#setRemoteInstallPath(java.lang.String)
*/
public void setRemoteInstallPath(String remoteInstallPath) {
putString(TAG_REMOTE_INSTALL_PATH, remoteInstallPath);
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.core.rmsystem.IToolRMConfiguration#setUseInstallDefaults(boolean)
*/
public void setUseInstallDefaults(boolean useInstallDefaults) {
putBoolean(TAG_USE_INSTALL_DEFAULTS, useInstallDefaults);
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.core.rmsystem.IToolRMConfiguration#setUseToolDefaults(boolean)
*/
public void setUseToolDefaults(boolean useToolDefaults) {
putBoolean(TAG_USE_TOOL_DEFAULTS, useToolDefaults);
}
}