mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-04 07:35:24 +02:00
[168977][api][refactor] - stage 2.2
- Completing server launching protocol in the IConnectorService - Completing new javadoc in IConnectorService - Removing notify methods from IConnectorService - not API - making protected in the implementation - made non-overridable methods final in SuperAbstractConnectorService.
This commit is contained in:
parent
927be1022e
commit
f408d0f68c
4 changed files with 212 additions and 237 deletions
|
@ -414,11 +414,11 @@ public class DStoreConnectorService extends AbstractConnectorService implements
|
|||
|
||||
/**
|
||||
* Return if you support remotely launching a server script
|
||||
* @deprecated Use instead {@link #isEnabledServerLaunchType(ISubSystem, ServerLaunchType)}
|
||||
* @deprecated Use instead {@link #isServerLaunchTypeEnabled(ISubSystem, ServerLaunchType)}
|
||||
* or {@link org.eclipse.rse.core.subsystems.SubSystemConfiguration#supportsServerLaunchType(ServerLaunchType)}
|
||||
*/
|
||||
public boolean getRexecLaunchEnabled(SubSystem subsystemImpl) {
|
||||
return isEnabledServerLaunchType(subsystemImpl, ServerLaunchType.REXEC_LITERAL);
|
||||
return isServerLaunchTypeEnabled(subsystemImpl, ServerLaunchType.REXEC_LITERAL);
|
||||
}
|
||||
|
||||
// /**
|
||||
|
@ -432,11 +432,11 @@ public class DStoreConnectorService extends AbstractConnectorService implements
|
|||
|
||||
/**
|
||||
* Return if you support connecting to a server already running
|
||||
* @deprecated Use instead {@link #isEnabledServerLaunchType(ISubSystem, ServerLaunchType)}
|
||||
* @deprecated Use instead {@link #isServerLaunchTypeEnabled(ISubSystem, ServerLaunchType)}
|
||||
* or {@link org.eclipse.rse.core.subsystems.SubSystemConfiguration#supportsServerLaunchType(ServerLaunchType)}
|
||||
*/
|
||||
public boolean getNoLaunchEnabled(SubSystem subsystemImpl) {
|
||||
return isEnabledServerLaunchType(subsystemImpl, ServerLaunchType.RUNNING_LITERAL);
|
||||
return isServerLaunchTypeEnabled(subsystemImpl, ServerLaunchType.RUNNING_LITERAL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -465,12 +465,6 @@ public class DStoreConnectorService extends AbstractConnectorService implements
|
|||
setDirty(true);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean hasRemoteServerLauncherProperties() {
|
||||
return _remoteServerLauncherProperties != null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @see org.eclipse.rse.core.subsystems.IConnectorService#connect(IProgressMonitor)
|
||||
|
@ -1275,9 +1269,9 @@ public class DStoreConnectorService extends AbstractConnectorService implements
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.eclipse.rse.core.subsystems.AbstractConnectorService#getPasswordInformation()
|
||||
*/
|
||||
// /**
|
||||
// * @see org.eclipse.rse.core.subsystems.AbstractConnectorService#getPasswordInformation()
|
||||
// */
|
||||
// public SystemSignonInformation getPasswordInformation()
|
||||
// {
|
||||
// // For Windows we want to avoid the signon prompt (because we never
|
||||
|
@ -1301,9 +1295,9 @@ public class DStoreConnectorService extends AbstractConnectorService implements
|
|||
// }
|
||||
// }
|
||||
|
||||
/**
|
||||
* @see org.eclipse.rse.core.subsystems.AbstractConnectorService#isPasswordCached()
|
||||
*/
|
||||
// /**
|
||||
// * @see AbstractConnectorService#hasPassword(boolean)
|
||||
// */
|
||||
// public boolean isPasswordCached()
|
||||
// {
|
||||
// // For Windows we never prompt for userid / password so we don't need
|
||||
|
|
|
@ -21,12 +21,13 @@ import org.eclipse.rse.core.model.IHost;
|
|||
import org.eclipse.rse.core.model.IRSEModelObject;
|
||||
|
||||
/**
|
||||
* This is the interface implemented by AbstractConnectorService
|
||||
* (formerly System) objects.
|
||||
* A connector service provides the means of establishing a connection from
|
||||
* a subsystem (or a number of subsystems) to a target system (a host).
|
||||
* <p>
|
||||
* A connector service manages a live connection to a remote system, with
|
||||
* operations for connecting and disconnecting, and storing information
|
||||
* typically cached from a subsystem: credentials, port, etc.
|
||||
* typically cached from a subsystem: credentials (such as a userId/password),
|
||||
* port, etc.
|
||||
* <p>
|
||||
* The SubSystem interface includes a method, getConnectorService(),
|
||||
* which returns an instance of an object that implements this interface
|
||||
|
@ -41,57 +42,52 @@ import org.eclipse.rse.core.model.IRSEModelObject;
|
|||
public interface IConnectorService extends IRSEModelObject {
|
||||
|
||||
/**
|
||||
* Return the subsystem object this system is associated with
|
||||
* @return the primary subsystem object this connector service is associated
|
||||
* with. This is usually the subsystem that first established this
|
||||
* connector service.
|
||||
*/
|
||||
public ISubSystem getPrimarySubSystem();
|
||||
|
||||
/**
|
||||
* Return all the subsystems that use this service
|
||||
* Return all the subsystems that use this connector service
|
||||
* @return the subsystems that use this service
|
||||
*/
|
||||
public ISubSystem[] getSubSystems();
|
||||
|
||||
/**
|
||||
* Set the subsystem, when its not known at constructor time
|
||||
* Adds a subsystem to this connector service. Does nothing if the
|
||||
* subsystem is already known to this connector service.
|
||||
* @param ss a subsystem that is using this connector service.
|
||||
*/
|
||||
public void registerSubSystem(ISubSystem ss);
|
||||
|
||||
/**
|
||||
* Deregister the subsystem
|
||||
* @param ss
|
||||
* Deregister the subsystem. Does nothing if the subsystem is not present.
|
||||
* @param ss the subsystem to remove from this connector service.
|
||||
*/
|
||||
public void deregisterSubSystem(ISubSystem ss);
|
||||
|
||||
/**
|
||||
* Return true if currently connected.
|
||||
* @return true if currently connected.
|
||||
*/
|
||||
public boolean isConnected();
|
||||
|
||||
/**
|
||||
* Attempt to connect to the remote system.
|
||||
* Connects to the remote system.
|
||||
* @param monitor a monitor for tracking the progress and canceling a connect
|
||||
* operation.
|
||||
* @throws Exception an exception of there is a failure to connect.
|
||||
*/
|
||||
public void connect(IProgressMonitor monitor) throws Exception;
|
||||
|
||||
/**
|
||||
* Disconnect from the remote system
|
||||
* Disconnects from the remote system.
|
||||
* @param monitor a monitor for tracking the progress and canceling a disconnect
|
||||
* operation.
|
||||
* @throws Exception an exception of the disconnect fails.
|
||||
*/
|
||||
public void disconnect(IProgressMonitor monitor) throws Exception;
|
||||
|
||||
/**
|
||||
* Notifies all listeners of a disconnection through a communications event
|
||||
*/
|
||||
public void notifyDisconnection();
|
||||
|
||||
/**
|
||||
* Notifies all listeners of a connection through a communications event
|
||||
*/
|
||||
public void notifyConnection();
|
||||
|
||||
/**
|
||||
* Notifies all listeners of an error through a communications event
|
||||
*/
|
||||
public void notifyError();
|
||||
|
||||
/**
|
||||
* Reset after some fundamental change, such as a hostname change.
|
||||
* Clear any memory of the current connection.
|
||||
|
@ -99,206 +95,239 @@ public interface IConnectorService extends IRSEModelObject {
|
|||
public void reset();
|
||||
|
||||
/**
|
||||
* Return the version, release, modification of the remote system,
|
||||
* if connected, if applicable and if available. Else return null.
|
||||
* <p>
|
||||
* Up to each implementer to decide if this will be cached.
|
||||
* @return the version, release, modification of the remote system,
|
||||
* if connected, if applicable, and if available. Return null if
|
||||
* this information is not available.
|
||||
*/
|
||||
public String getVersionReleaseModification();
|
||||
|
||||
/**
|
||||
* Return the home directory of the remote system for the current user, if available.
|
||||
* <p>
|
||||
* Up to each implementer to decide how to implement, and if this will be cached.
|
||||
* @return the home directory of the remote system for the current user,
|
||||
* if available.
|
||||
*/
|
||||
public String getHomeDirectory();
|
||||
|
||||
/**
|
||||
* Return the temp directory of the remote system for the current user, if available.
|
||||
* <p>
|
||||
* Up to each implementer to decide how to implement, and if this will be cached.
|
||||
* @return the temporary directory of the remote system for the current user,
|
||||
* if available.
|
||||
*/
|
||||
public String getTempDirectory();
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
// Utility methods that offer combined connection and subsystem info...
|
||||
// --------------------------------------------------------------------
|
||||
/**
|
||||
* Return the system type for this connection.
|
||||
* @return the system type for this connection.
|
||||
*/
|
||||
public String getHostType();
|
||||
|
||||
/**
|
||||
* Return the name of this connector service
|
||||
* @return the name of this connector service
|
||||
*/
|
||||
public String getName();
|
||||
|
||||
/**
|
||||
* Sets the host used by this connector service.
|
||||
* @param host
|
||||
*/
|
||||
public void setHost(IHost host);
|
||||
|
||||
/**
|
||||
* Return the host
|
||||
* @return the host
|
||||
* @return the host used by this connector service.
|
||||
*/
|
||||
public IHost getHost();
|
||||
|
||||
/**
|
||||
* Return the host name for the connection this system's subsystem is associated with
|
||||
* @return the host name for the connection associated with this
|
||||
* connector service.
|
||||
*/
|
||||
public String getHostName();
|
||||
|
||||
/**
|
||||
* Return the port for this connector
|
||||
* @return the port for this connector service. Usually only used for
|
||||
* IP based connections.
|
||||
*/
|
||||
public int getPort();
|
||||
|
||||
/**
|
||||
* Set the port for this connector
|
||||
* @param port
|
||||
* Set the port for this connector. Usually only used by IP based
|
||||
* connections.
|
||||
* @param port the IP port used by this connector service.
|
||||
*/
|
||||
public void setPort(int port);
|
||||
|
||||
/**
|
||||
* Return the userId for this system's subsystem we are associated with
|
||||
* @return true if this connector service will attempt to
|
||||
* use SSL when establishing its connection.
|
||||
*/
|
||||
public boolean isUsingSSL();
|
||||
|
||||
/**
|
||||
* @param flag true if the connector service should attempt to use SSL when
|
||||
* establishing the connection.
|
||||
*/
|
||||
public void setIsUsingSSL(boolean flag);
|
||||
|
||||
/**
|
||||
* @return the userId that will be used by this connector when
|
||||
* establishing its connection.
|
||||
*/
|
||||
public String getUserId();
|
||||
|
||||
/**
|
||||
* Set the user id for this connector
|
||||
* @param userId
|
||||
* Set the user id this connector service will use when establishing its
|
||||
* connection.
|
||||
* @param userId the user id string for this connector service.
|
||||
*/
|
||||
public void setUserId(String userId);
|
||||
|
||||
public boolean isUsingSSL();
|
||||
|
||||
public void setIsUsingSSL(boolean flag);
|
||||
|
||||
/**
|
||||
* Return the password for this system's subsystem we are associated with.
|
||||
* Acquire the password for this connector service.
|
||||
* <p>
|
||||
* If not currently set in transient memory, prompts the user for a password.
|
||||
* Implementations may retain a remembered password or
|
||||
* use this acquire the password using some implementation defined means.
|
||||
* <p>
|
||||
* Throws InterruptedException if user is prompted and user cancels that prompt.
|
||||
* @param forcePrompt forces the prompt dialog to be displayed even if the password is currently
|
||||
* in memory.
|
||||
* Throws InterruptedException if acquisition of the
|
||||
* password is canceled for some reason.
|
||||
* @param reacquire if true will force the connector service to discard
|
||||
* any remembered value and reacquire the password.
|
||||
*/
|
||||
public void promptForPassword(boolean forcePrompt) throws InterruptedException;
|
||||
public void promptForPassword(boolean reacquire) throws InterruptedException;
|
||||
|
||||
/**
|
||||
* Set the password if you got it from somewhere
|
||||
* Sets the password used by this connector service.
|
||||
* Can be used if the connector service acquires a password by some external
|
||||
* means.
|
||||
* @param matchingUserId The user id to be associated with this password.
|
||||
* @param password the password
|
||||
* @param persist true if the password is to be persisted for later use.
|
||||
*/
|
||||
public void setPassword(String matchingUserId, String password, boolean persist);
|
||||
|
||||
/**
|
||||
* Clear internal userId cache. Called when user uses the property dialog to
|
||||
* change his userId.
|
||||
* Clears the userId held by this service.
|
||||
* Should be called if there is a change to the user id for
|
||||
* any using subsystem.
|
||||
*/
|
||||
public void clearUserId();
|
||||
|
||||
/**
|
||||
* Clear internal password cache. Called when user uses the property dialog to
|
||||
* Clear password held by this service and optionally
|
||||
* clear its persistent form.
|
||||
* Called when user uses the property dialog to
|
||||
* change his userId.
|
||||
* @param onDisk if true, clears the password from disk
|
||||
* @param onDisk if true, clears the persistent form of the password
|
||||
*/
|
||||
public void clearPassword(boolean onDisk);
|
||||
|
||||
/**
|
||||
* Return true if password is currently cached.
|
||||
* @param onDisk retrieve the persistent form of the password.
|
||||
* @return true if password is currently known to this service.
|
||||
*/
|
||||
public boolean hasPassword(boolean onDisk);
|
||||
|
||||
/**
|
||||
* Return true if this system can inherit the uid and password of
|
||||
* other ISystems in this connection
|
||||
*
|
||||
* Returns true if this system can inherit the uid and password of
|
||||
* from the connection (Host).
|
||||
* @return true if it can inherit the user/password
|
||||
*/
|
||||
public boolean inheritConnectionUserPassword();
|
||||
|
||||
/*
|
||||
* Return true if this system can share it's uid and password
|
||||
* with other ISystems in this connection
|
||||
*
|
||||
* @return true if it can share the user/password
|
||||
/**
|
||||
* Return true if this system can share it's userId and password
|
||||
* with other connector services in this host.
|
||||
* @return true if it can share the userId/password
|
||||
*/
|
||||
public boolean shareUserPasswordWithConnection();
|
||||
|
||||
/**
|
||||
* Register a communications listener
|
||||
* Register a communications listener. These listeners will be informed
|
||||
* of connect and disconnect events.
|
||||
* @param listener a listener for the communications event.
|
||||
*/
|
||||
public void addCommunicationsListener(ICommunicationsListener listener);
|
||||
|
||||
/**
|
||||
* Remove a communications listener
|
||||
* Remove a communications listener.
|
||||
* @param listener a listener for the communications event.
|
||||
*/
|
||||
public void removeCommunicationsListener(ICommunicationsListener listener);
|
||||
|
||||
/**
|
||||
* Returns the suppressSignonPrompt flag. If this is set to true then the user
|
||||
* will not be prompted to signon, instead an InterruptedException will be thrown
|
||||
* by the promptForPassword method.
|
||||
*
|
||||
* @return boolean
|
||||
* @return true if the password acquisition is to be suppressed.
|
||||
*/
|
||||
public boolean isSuppressSignonPrompt();
|
||||
|
||||
/**
|
||||
* Sets the suppressSignonPrompt flag. Tool writers can use this to temporarily
|
||||
* disable the user from being prompted to signon. This would cause the promptForPassword
|
||||
* method to throw an InterruptedException instead of prompting. The intent of this
|
||||
* method is to allow tool writeres to prevent multiple signon prompts during a
|
||||
* set period of time (such as a series of related communication calls) if the user
|
||||
* cancels the first prompt. <b>It is the callers responsability to set this value
|
||||
* back to false when the tool no longer needs to suppress the signon prompt or all
|
||||
* other tools sharing this connection will be affected.</b>
|
||||
* Suppresses the acquisition of a password by the connector service.
|
||||
* Causes {@link #promptForPassword(boolean)} to immediately
|
||||
* throw an InterruptedException.
|
||||
* <p>
|
||||
* The intent is to allow tool writers to prevent multiple
|
||||
* attempts to acquire a password during a set period of time.
|
||||
* <b>It is the callers responsibility to set this value
|
||||
* back to false when the tool no longer needs to suppress
|
||||
* acquisition of the password.</b>
|
||||
*
|
||||
* @param suppressSignonPrompt
|
||||
* @param suppressSignonPrompt <code>true</code> if acquisition is to be suppressed.
|
||||
* <code>false</code> if acquisition is to be allowed.
|
||||
*/
|
||||
public void setSuppressSignonPrompt(boolean suppressSignonPrompt);
|
||||
|
||||
/**
|
||||
* Returns the value of the '<em><b>Remote Server Launcher</b></em>' containment reference.
|
||||
* It is bidirectional and its opposite is '{@link org.eclipse.rse.core.subsystems.IServerLauncherProperties#getConnectorService()}'.
|
||||
* <!-- begin-user-doc -->
|
||||
* <p>
|
||||
* Get the remote server launcher, which may be null. This an optional object containing
|
||||
* properties used to launch the remote server that communicates with this subsystem.
|
||||
* </p>
|
||||
* <!-- end-user-doc -->
|
||||
* @return the value of the '<em>Remote Server Launcher</em>' containment reference.
|
||||
* @see #setRemoteServerLauncherProperties(IServerLauncherProperties)
|
||||
* @see org.eclipse.rse.core.subsystems.IServerLauncherProperties#getConnectorService()
|
||||
* @model opposite="parentSubSystem" containment="true"
|
||||
* @generated
|
||||
* This methods returns the enablement state of a server launch type.
|
||||
* If {@link RemoteServerLauncher#enableServerLaunchType(ServerLaunchType, boolean)} has not been
|
||||
* called for this server launch type, then it is enabled by default.
|
||||
* @param subsystem the subystem for which this may be enabled.
|
||||
* @param serverLaunchType the type to check for enabledment.
|
||||
* @return true if the connector service supports server launching and
|
||||
* this launch type is enabled.
|
||||
* @see org.eclipse.rse.core.subsystems.ServerLaunchType
|
||||
*/
|
||||
public boolean isServerLaunchTypeEnabled(ISubSystem subsystem, ServerLaunchType serverLaunchType);
|
||||
|
||||
/**
|
||||
* Gets the properties associated with a remote server launcher.
|
||||
* These may be null.
|
||||
* This an optional object containing
|
||||
* properties used to launch the remote server that
|
||||
* communicates with this client.
|
||||
* @return the properties of the server launcher
|
||||
*/
|
||||
IServerLauncherProperties getRemoteServerLauncherProperties();
|
||||
|
||||
/**
|
||||
* Sets the value of the '{@link org.eclipse.rse.core.subsystems.IConnectorService#getRemoteServerLauncherProperties()}' containment reference.
|
||||
* <!-- begin-user-doc -->
|
||||
* Set the remote server launcher, which is an optional object containing
|
||||
* properties used to launch the remote server that communicates with this subsystem.
|
||||
* <!-- end-user-doc -->
|
||||
* Set the properties for the remote server launcher
|
||||
* This is an object containing
|
||||
* properties used to launch a remote server that
|
||||
* communicates with this client.
|
||||
* @param value the new value of the '<em>Remote Server Launcher</em>' containment reference.
|
||||
* @see #getRemoteServerLauncherProperties()
|
||||
* @generated
|
||||
*/
|
||||
void setRemoteServerLauncherProperties(IServerLauncherProperties value);
|
||||
|
||||
/**
|
||||
* @return true if the connector service has server launcher properties.
|
||||
*/
|
||||
boolean hasRemoteServerLauncherProperties();
|
||||
|
||||
boolean supportsRemoteServerLaunching();
|
||||
|
||||
/**
|
||||
* Tell us if this subsystem factory supports server launch properties, which allow the user
|
||||
* to configure how the server-side code for these subsystems are started. There is a Server
|
||||
* Launch Setting property page, with a pluggable composite, where users can configure these
|
||||
* properties.
|
||||
* @return true if the connector service supports the concept of remote
|
||||
* server launch properties. This will always return false {@link #supportsRemoteServerLaunching()}
|
||||
* is false.
|
||||
*/
|
||||
public boolean supportsServerLaunchProperties();
|
||||
boolean supportsServerLaunchProperties();
|
||||
|
||||
/**
|
||||
* Report if this connector service can use a user identifier.
|
||||
* @return true if the connector service supports the concept of remote
|
||||
* server launching.
|
||||
*/
|
||||
boolean supportsRemoteServerLaunching();
|
||||
|
||||
/**
|
||||
* @return the server launcher. Will be null unless {@link #supportsRemoteServerLaunching()}
|
||||
* is true.
|
||||
*/
|
||||
IServerLauncher getRemoteServerLauncher();
|
||||
|
||||
/**
|
||||
* Reports if this connector service can use a user identifier.
|
||||
* Returns true in default implementation.
|
||||
* Typically used to indicate if a login dialog needs to be presented when connecting.
|
||||
* @return true if and only if the connector service can use a user id.
|
||||
|
@ -306,7 +335,7 @@ public interface IConnectorService extends IRSEModelObject {
|
|||
public boolean supportsUserId();
|
||||
|
||||
/**
|
||||
* Report if this connector service requires a user id.
|
||||
* Reports if this connector service requires a user id.
|
||||
* Returns true in default implementation.
|
||||
* Typically used to indicate if a login dialog can allow an empty user id.
|
||||
* Must be ignored if supportsUserId() is false.
|
||||
|
@ -315,17 +344,20 @@ public interface IConnectorService extends IRSEModelObject {
|
|||
public boolean requiresUserId();
|
||||
|
||||
/**
|
||||
* Can be used to determine if a password field is present on a login dialog for this connector service.
|
||||
* Determines if this connector service understand the concept of a
|
||||
* password.
|
||||
* The default implementation of this interface should return true.
|
||||
* @return true if the subsystem can use a password, false if a password is irrelevant.
|
||||
* @return true if the connector service can use a password,
|
||||
* false if a password is irrelevant.
|
||||
*/
|
||||
public boolean supportsPassword();
|
||||
|
||||
/**
|
||||
* If a password is supported this is used to determine if the password is required.
|
||||
* Must be ignored if supportsPassword() returns false.
|
||||
* Determines if a password is required for this connector service.
|
||||
* Must be ignored if {@link #supportsPassword()} returns false.
|
||||
* The default implementation of this interface should return true.
|
||||
* @return true if the connector service requires a password, false if a password may be empty.
|
||||
* @return true if the connector service requires a password,
|
||||
* false if a password may be empty.
|
||||
*/
|
||||
public boolean requiresPassword();
|
||||
|
||||
|
|
|
@ -50,6 +50,19 @@ public abstract class SuperAbstractConnectorService extends RSEModelObject imple
|
|||
_port = port;
|
||||
}
|
||||
|
||||
public final boolean isServerLaunchTypeEnabled(ISubSystem subsystem, ServerLaunchType serverLaunchType) {
|
||||
IServerLauncher sl = getRemoteServerLauncher();
|
||||
if (sl instanceof RemoteServerLauncher) {
|
||||
RemoteServerLauncher isl = (RemoteServerLauncher) sl;
|
||||
return isl.isEnabledServerLaunchType(serverLaunchType);
|
||||
} else
|
||||
return subsystem.getSubSystemConfiguration().supportsServerLaunchType(serverLaunchType);
|
||||
}
|
||||
|
||||
public IServerLauncher getRemoteServerLauncher() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean supportsRemoteServerLaunching() {
|
||||
return false;
|
||||
}
|
||||
|
@ -65,15 +78,15 @@ public abstract class SuperAbstractConnectorService extends RSEModelObject imple
|
|||
public void setRemoteServerLauncherProperties(IServerLauncherProperties newRemoteServerLauncher) {
|
||||
}
|
||||
|
||||
public boolean hasRemoteServerLauncherProperties() {
|
||||
return false;
|
||||
public final boolean hasRemoteServerLauncherProperties() {
|
||||
return getRemoteServerLauncherProperties() != null;
|
||||
}
|
||||
|
||||
/**
|
||||
* <i>Fully implemented, no need to override.</i><br>
|
||||
* @see IConnectorService#addCommunicationsListener(ICommunicationsListener)
|
||||
*/
|
||||
public void addCommunicationsListener(ICommunicationsListener listener) {
|
||||
public final void addCommunicationsListener(ICommunicationsListener listener) {
|
||||
if (!commListeners.contains(listener)) {
|
||||
commListeners.add(listener);
|
||||
}
|
||||
|
@ -83,7 +96,7 @@ public abstract class SuperAbstractConnectorService extends RSEModelObject imple
|
|||
* <i>Fully implemented, no need to override.</i><br>
|
||||
* @see IConnectorService#removeCommunicationsListener(ICommunicationsListener)
|
||||
*/
|
||||
public void removeCommunicationsListener(ICommunicationsListener listener) {
|
||||
public final void removeCommunicationsListener(ICommunicationsListener listener) {
|
||||
commListeners.remove(listener);
|
||||
}
|
||||
|
||||
|
@ -112,14 +125,6 @@ public abstract class SuperAbstractConnectorService extends RSEModelObject imple
|
|||
commListeners.clear();
|
||||
}
|
||||
|
||||
public final IHost getHost() {
|
||||
return _host;
|
||||
}
|
||||
|
||||
public final void setHost(IHost host) {
|
||||
_host = host;
|
||||
}
|
||||
|
||||
/**
|
||||
* <i><b>Private</b> - used internally.</i><br>
|
||||
* Helper method for firing communication events
|
||||
|
@ -135,6 +140,14 @@ public abstract class SuperAbstractConnectorService extends RSEModelObject imple
|
|||
|
||||
}
|
||||
|
||||
public final IHost getHost() {
|
||||
return _host;
|
||||
}
|
||||
|
||||
public final void setHost(IHost host) {
|
||||
_host = host;
|
||||
}
|
||||
|
||||
public final String getDescription() {
|
||||
return _description;
|
||||
}
|
||||
|
@ -146,7 +159,7 @@ public abstract class SuperAbstractConnectorService extends RSEModelObject imple
|
|||
return _name;
|
||||
}
|
||||
|
||||
public void setPort(int port) {
|
||||
public final void setPort(int port) {
|
||||
if (port != _port)
|
||||
{
|
||||
_port = port;
|
||||
|
@ -154,7 +167,7 @@ public abstract class SuperAbstractConnectorService extends RSEModelObject imple
|
|||
}
|
||||
}
|
||||
|
||||
public int getPort() {
|
||||
public final int getPort() {
|
||||
return _port;
|
||||
}
|
||||
|
||||
|
@ -177,7 +190,7 @@ public abstract class SuperAbstractConnectorService extends RSEModelObject imple
|
|||
/**
|
||||
* Set the subsystem, when its not known at constructor time
|
||||
*/
|
||||
public void registerSubSystem(ISubSystem ss) {
|
||||
public final void registerSubSystem(ISubSystem ss) {
|
||||
if (!_registeredSubSystems.contains(ss))
|
||||
{
|
||||
_registeredSubSystems.add(ss);
|
||||
|
@ -192,7 +205,7 @@ public abstract class SuperAbstractConnectorService extends RSEModelObject imple
|
|||
_registeredSubSystems.remove(ss);
|
||||
}
|
||||
|
||||
public boolean commit() {
|
||||
public final boolean commit() {
|
||||
return RSECorePlugin.getThePersistenceManager().commit(getHost());
|
||||
}
|
||||
|
||||
|
@ -208,6 +221,18 @@ public abstract class SuperAbstractConnectorService extends RSEModelObject imple
|
|||
return ""; //$NON-NLS-1$
|
||||
}
|
||||
|
||||
/**
|
||||
* <i>Not implemented, you should override if possible.</i><br>
|
||||
* Return the temp directory of the remote system for the current user, if available.
|
||||
* <p>
|
||||
* Up to each implementer to decide how to implement, and if this will be cached.
|
||||
* <p>
|
||||
* Returns an empty string by default, override if possible
|
||||
*/
|
||||
public String getTempDirectory() {
|
||||
return ""; //$NON-NLS-1$
|
||||
}
|
||||
|
||||
/**
|
||||
* <i>Useful utility method. Fully implemented, do not override.</i><br>
|
||||
* Returns the system type for this connection:<br> <code>getSubSystem().getSystemConnection().getSystemType()</code>
|
||||
|
@ -265,26 +290,26 @@ public abstract class SuperAbstractConnectorService extends RSEModelObject imple
|
|||
public void reset() {
|
||||
}
|
||||
|
||||
public void notifyDisconnection() {
|
||||
protected void notifyDisconnection() {
|
||||
|
||||
// Fire comm event to signal state changed
|
||||
if (!isConnected()) fireCommunicationsEvent(CommunicationsEvent.AFTER_DISCONNECT);
|
||||
}
|
||||
|
||||
public void notifyConnection() {
|
||||
protected void notifyConnection() {
|
||||
if (isConnected()) fireCommunicationsEvent(CommunicationsEvent.AFTER_CONNECT);
|
||||
}
|
||||
|
||||
public void notifyError() {
|
||||
protected void notifyError() {
|
||||
fireCommunicationsEvent(CommunicationsEvent.CONNECTION_ERROR);
|
||||
|
||||
}
|
||||
|
||||
public boolean isUsingSSL() {
|
||||
public final boolean isUsingSSL() {
|
||||
return _usingSSL;
|
||||
}
|
||||
|
||||
public void setIsUsingSSL(boolean flag) {
|
||||
public final void setIsUsingSSL(boolean flag) {
|
||||
if (_usingSSL != flag)
|
||||
{
|
||||
_usingSSL = flag;
|
||||
|
@ -307,58 +332,6 @@ public abstract class SuperAbstractConnectorService extends RSEModelObject imple
|
|||
return (ISubSystem[])_registeredSubSystems.toArray(new ISubSystem[_registeredSubSystems.size()]);
|
||||
}
|
||||
|
||||
/**
|
||||
* <i>Not implemented, you should override if possible.</i><br>
|
||||
* Return the temp directory of the remote system for the current user, if available.
|
||||
* <p>
|
||||
* Up to each implementer to decide how to implement, and if this will be cached.
|
||||
* <p>
|
||||
* Returns an empty string by default, override if possible
|
||||
*/
|
||||
public String getTempDirectory() {
|
||||
return ""; //$NON-NLS-1$
|
||||
}
|
||||
|
||||
/**
|
||||
* This methods returns the enablement state per server launch type.
|
||||
* If {@link RemoteServerLauncher#enableServerLaunchType(ServerLaunchType, boolean)} has not been
|
||||
* called for this server launch type, then it is enabled by default.
|
||||
* @see org.eclipse.rse.core.subsystems.ServerLaunchType
|
||||
*/
|
||||
protected boolean isEnabledServerLaunchType(ISubSystem subsystem, ServerLaunchType serverLaunchType) {
|
||||
IServerLauncherProperties sl = getRemoteServerLauncherProperties();
|
||||
if (sl instanceof RemoteServerLauncher)
|
||||
{
|
||||
RemoteServerLauncher isl = (RemoteServerLauncher)sl;
|
||||
return isl.isEnabledServerLaunchType(serverLaunchType);
|
||||
}
|
||||
else
|
||||
return subsystem.getSubSystemConfiguration().supportsServerLaunchType(serverLaunchType);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the remote server launcher, which implements IServerLauncher.
|
||||
* This is called by the default implementation of connect() and disconnect(), if
|
||||
* subsystem.getParentSubSystemConfiguration().supportsServerLaunchProperties returns true.
|
||||
* <p>This returns null be default!
|
||||
*/
|
||||
public IServerLauncher getRemoteServerLauncher() {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* <i>You must override</i>
|
||||
* unless subsystem.getParentSubSystemConfiguration().supportsServerLaunchProperties
|
||||
* returns true.
|
||||
* <p>
|
||||
* Attempt to connect to the remote system.<br>
|
||||
* If the subsystem supports server launch,
|
||||
* the default behavior is to get the remote server launcher by
|
||||
* {@link #getRemoteServerLauncher()}, and if {@link IServerLauncher#isLaunched()}
|
||||
* returns false, to call {@link IServerLauncher#launch(IProgressMonitor)}.
|
||||
* <p>
|
||||
* This is called, by default, from the connect(...) methods of the subsystem.
|
||||
*/
|
||||
protected abstract void internalConnect(IProgressMonitor monitor) throws Exception;
|
||||
|
||||
protected abstract void internalDisconnect(IProgressMonitor monitor) throws Exception;
|
||||
|
|
|
@ -240,30 +240,6 @@ public abstract class AbstractDelegatingConnectorService implements IDelegatingC
|
|||
return false;
|
||||
}
|
||||
|
||||
public void notifyConnection() {
|
||||
IConnectorService conServ = getRealConnectorService();
|
||||
if (conServ != null)
|
||||
{
|
||||
conServ.notifyConnection();
|
||||
}
|
||||
}
|
||||
|
||||
public void notifyDisconnection() {
|
||||
IConnectorService conServ = getRealConnectorService();
|
||||
if (conServ != null)
|
||||
{
|
||||
conServ.notifyDisconnection();
|
||||
}
|
||||
}
|
||||
|
||||
public void notifyError() {
|
||||
IConnectorService conServ = getRealConnectorService();
|
||||
if (conServ != null)
|
||||
{
|
||||
conServ.notifyError();
|
||||
}
|
||||
}
|
||||
|
||||
public void promptForPassword(boolean forcePrompt)
|
||||
throws InterruptedException {
|
||||
IConnectorService conServ = getRealConnectorService();
|
||||
|
|
Loading…
Add table
Reference in a new issue