Remote Systems
v6.4.1

com.ibm.etools.systems.subsystems.impl
Class SubSystemImpl

java.lang.Object
  extended byEObjectImpl
      extended bycom.ibm.etools.systems.subsystems.impl.SubSystemImpl
All Implemented Interfaces:
IAdaptable, IRemoteObjectResolver, ISystemResourceChangeEvents, SubSystem, SystemFilterPoolReferenceManagerProvider
Direct Known Subclasses:
DefaultSubSystemImpl, RemoteCmdSubSystemImpl, RemoteFileSubSystemImpl, RemoteJobSubSystemImpl

public class SubSystemImpl
extends EObjectImpl
implements IAdaptable, SystemFilterPoolReferenceManagerProvider, ISystemResourceChangeEvents, SubSystem

See Also:
Serialized Form

Nested Class Summary
 class SubSystemImpl.ConnectRunnable
          Inner class which implements IRunnable to connect this connection on the UI Thread via sync/asyncExec when no Shell is available from the caller
protected  class SubSystemImpl.DisplayErrorMessageRunnable
          Inner class which implements IRunnable to allow us to show an error message, which is a GUI operation, from a non-GUI thread.
 
Field Summary
protected  boolean _connectionError
           
protected  boolean _disconnecting
           
protected  ISystem _system
           
protected static String ADDITIONAL_ATTRIBUTES_EDEFAULT
          The default value of the 'Additional Attributes' attribute
protected  String additionalAttributes
           
protected  boolean additionalAttributesESet
          This is true if the Additional Attributes attribute has been set
protected  boolean cancelable
           
static String copyright
           
static String DELIM_VENDOR_ATTR_VALUE
          Delimiter string for each vendor attribute, between the name and the value: "==="
static String DELIM_VENDOR_ATTRS
          Delimiter string for each vendor attribute: ";;;"
static String DELIM_VENDOR_NAME
          Delimiter string for each vendor attribute, between the vendor name and the attribute name: "___"
protected  boolean doConnection
           
protected static String FACTORY_ID_EDEFAULT
          The default value of the 'Factory Id' attribute
protected  String factoryId
           
protected  SystemFilterPoolReferenceManager filterPoolReferenceManager
           
protected  boolean hidden
           
protected static boolean HIDDEN_EDEFAULT
          The default value of the 'Hidden' attribute
protected static String IBM_ATTRIBUTES_EDEFAULT
          The default value of the 'Ibm Attributes' attribute
protected  String ibmAttributes
           
protected  boolean ibmAttributesESet
          This is true if the Ibm Attributes attribute has been set
protected  Hashtable ibmAttrs
           
protected  IProgressMonitor monitor
           
protected  String name
           
protected static String NAME_EDEFAULT
          The default value of the 'Name' attribute
protected  int operation
           
protected static int OPERATION_CANCEL_SHELL
           
protected static int OPERATION_CONNECT
           
protected static int OPERATION_DISCONNECT
           
protected static int OPERATION_GET_PROPERTIES
           
protected static int OPERATION_GET_PROPERTY
           
protected static int OPERATION_REMOVE_SHELL
           
protected static int OPERATION_RESOLVE_ABSOLUTE
           
protected static int OPERATION_RESOLVE_ABSOLUTES
           
protected static int OPERATION_RESOLVE_RELATIVE
           
protected static int OPERATION_RUN_COMMAND
           
protected static int OPERATION_RUN_SHELL
           
protected static int OPERATION_SEND_COMMAND_TO_SHELL
           
protected static int OPERATION_SET_PROPERTIES
           
protected static int OPERATION_SET_PROPERTY
           
protected  SystemConnection parentConnection
           
protected  SubSystemFactory parentSubSystemFactory
           
protected  ProgressMonitorDialog pmDialog
           
protected  Integer port
           
protected static Integer PORT_EDEFAULT
          The default value of the 'Port' attribute
protected  String previousUserIdKey
           
protected  ServerLauncher remoteServerLauncher
          The cached value of the 'Remote Server Launcher' containment reference
protected  Object runContext
           
protected  Exception runException
           
protected  String runInput
           
protected  String runInput2
           
protected  String[] runInputs
           
protected  String[] runInputs2
           
protected  boolean runInterpret
           
protected  boolean runInThread
           
protected  Object runObject
           
protected  Object runOutput
           
protected  Object[] runOutputs
           
protected  String runOutputString
           
protected  String[] runOutputStrings
           
protected  String saveFileName
           
protected  Shell shell
           
protected  boolean sortResults
           
protected static String SUBSYSTEM_FILE_NAME
           
protected  boolean supportsConnecting
           
protected static boolean USE_SSL_EDEFAULT
          The default value of the 'Use SSL' attribute
protected static String USER_ID_EDEFAULT
          The default value of the 'User Id' attribute
protected  String userId
           
protected  boolean useSSL
           
protected static String VENDOR_ATTRIBUTES_EDEFAULT
          The default value of the 'Vendor Attributes' attribute
protected  String vendorAttributes
           
protected  boolean vendorAttributesESet
          This is true if the Vendor Attributes attribute has been set
protected  Hashtable vendorAttrs
           
 
Fields inherited from interface com.ibm.etools.systems.model.ISystemResourceChangeEvents
EVENT_ADD, EVENT_ADD_FILTER_REFERENCE, EVENT_ADD_FILTERSTRING_REFERENCE, EVENT_ADD_MANY, EVENT_ADD_RELATIVE, EVENT_CHANGE_CHILDREN, EVENT_CHANGE_FILTER_REFERENCE, EVENT_CHANGE_FILTERSTRING_REFERENCE, EVENT_COLLAPSE_ALL, EVENT_COLLAPSE_SELECTED, EVENT_COMMAND_FINISHED, EVENT_COMMAND_HISTORY_UPDATE, EVENT_COMMAND_MESSAGE, EVENT_COMMAND_RUN, EVENT_COMMAND_SHELL_FINISHED, EVENT_COMMAND_SHELL_REMOVED, EVENT_COMPILE_COMMAND_RUN, EVENT_DELETE, EVENT_DELETE_FILTER_REFERENCE, EVENT_DELETE_FILTERSTRING_REFERENCE, EVENT_DELETE_MANY, EVENT_EXPAND_SELECTED, EVENT_ICON_CHANGE, EVENT_MOVE_FILTER_REFERENCES, EVENT_MOVE_FILTERSTRING_REFERENCES, EVENT_MOVE_MANY, EVENT_MUST_COLLAPSE, EVENT_PROPERTY_CHANGE, EVENT_PROPERTYSHEET_UPDATE, EVENT_REFRESH, EVENT_REFRESH_REMOTE, EVENT_REFRESH_SELECTED, EVENT_REFRESH_SELECTED_FILTER, EVENT_REFRESH_SELECTED_PARENT, EVENT_RENAME, EVENT_RENAME_FILTER_REFERENCE, EVENT_REPLACE_CHILDREN, EVENT_REVEAL_AND_SELECT, EVENT_SEARCH_FINISHED, EVENT_SELECT, EVENT_SELECT_EXPAND, EVENT_SELECT_REMOTE, PROPERTYSHEET_UPDATE_EVENT
 
Fields inherited from interface com.ibm.etools.systems.subsystems.IRemoteObjectResolver
Copyright
 
Constructor Summary
protected SubSystemImpl()
          Constructor.
 
Method Summary
protected  void addResolvedFilterStringObjects(Vector allChildrenSoFar, Object[] childrenForThisFilterString, String[] allFilterStrings, int currFilterStringIndex)
          Overridable extension point for adding the results of a filter string to the overall list of results.
 NotificationChain basicSetFilterPoolReferenceManager(SystemFilterPoolReferenceManager newFilterPoolReferenceManager, NotificationChain msgs)
           
 NotificationChain basicSetRemoteServerLauncher(ServerLauncher newRemoteServerLauncher, NotificationChain msgs)
           
 void cancelShell(Shell shell, Object commandObject)
          Cancel a shell or running command.
 void checkIsConnected()
          This is a helper method you can call when performing actions that must be certain there is a connection.
 void clearLocalUserId()
          Called to clear the local user Id such that subsequent requests to getUserId() will return the parent connection's default user Id.
 void connect()
          Attempt to connect to the remote system when a Shell is not available.
 void connect(Shell shell)
          Attempt to connect to the remote system.
 void connect(Shell shell, boolean forcePrompt)
          Connect to the remote system, optionally forcing a signon prompt even if the password is cached in memory or on disk.
 void deletingConnection()
          Private method called when the parent connection is being deleted, so the subsystem can do any pre-death cleanup it needs to.
 void disconnect(Shell shell)
          Disconnect from the remote system You do not need to override this, as it does the progress monitor and error message displaying for you.
 void disconnect(Shell shell, boolean collapseTree)
          Disconnect from the remote system You do not need to override this, as it does the progress monitor and error message displaying for you.
protected  void displayAsyncMsg(SystemMessageException msg)
          Display message on message thread
 boolean doesFilterListContentsOf(SystemFilter filter, String remoteObjectAbsoluteName)
          Return true if the given filter lists the contents of the given remote object.
 boolean doesFilterMatch(SystemFilter filter, String remoteObjectAbsoluteName)
          Return true if the given remote object name will pass the filtering criteria for any of the filter strings in this filter.
 boolean doesFilterStringListContentsOf(SystemFilterString filterString, String remoteObjectAbsoluteName)
          Return true if the given filter string lists the contents of the given remote object.
 boolean doesFilterStringMatch(String filterString, String remoteObjectAbsoluteName, boolean caseSensitive)
          Return true if the given remote object name will pass the filtering criteria for the given filter string.
protected  boolean doesFilterTypeMatch(SystemFilter filter, String remoteObjectAbsoluteName)
          Override this method if you support typed filters.
 Object eGet(EStructuralFeature eFeature, boolean resolve)
           
 NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs)
           
 NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs)
           
 boolean eIsSet(EStructuralFeature eFeature)
          Private.
 void eSet(EStructuralFeature eFeature, Object newValue)
          Private.
protected  EClass eStaticClass()
           
 void eUnset(EStructuralFeature eFeature)
          Private.
 void filterEventFilterCreated(Object selectedObject, SystemFilter newFilter)
          A new filter has been created.
 void filterEventFilterPoolReferenceCreated(SystemFilterPoolReference newPoolRef)
          A new filter pool reference has been created
 void filterEventFilterPoolReferenceDeleted(SystemFilterPoolReference filterPoolRef)
          A filter pool reference has been deleted
 void filterEventFilterPoolReferenceRenamed(SystemFilterPoolReference poolRef, String oldName)
          A filter pool reference has been renamed (ie, its reference filter pool renamed)
 void filterEventFilterPoolReferenceReset(SystemFilterPoolReference filterPoolRef)
          A single filter pool reference has been reset to reference a new pool
 void filterEventFilterPoolReferencesRePositioned(SystemFilterPoolReference[] poolRefs, int delta)
          One or more filter pool references have been re-ordered within their manager
 void filterEventFilterPoolReferencesReset()
          All filter pool references has been reset.
 void filterEventFilterStringCreated(Object selectedObject, SystemFilterString newFilterString)
          A new filter string has been created.
protected  void fireEvent(Object[] multiSrc, int eventId, Object parent)
           
protected  void fireEvent(Object[] src, int eventId, Object parent, int position)
           
protected  void fireEvent(Object src, int eventId, Object parent)
           
protected  void fireEvent(Object src, int eventId, Object parent, Object grandParent)
           
protected  void fireEvent(SystemResourceChangeEvent event)
           
protected  void fireEvent(SystemResourceChangeEvent event, Object grandParent)
           
 boolean forceUserIdToUpperCase()
          Return true if userId and password should be forced to uppercase.
static Shell getActiveWorkbenchShell()
          Helper/convenience method.
static IWorkbenchWindow getActiveWorkbenchWindow()
          Helper/convenience method.
 Object getAdapter(Class adapterType)
          This is the method required by the IAdaptable interface.
 String getAdditionalAttributes()
          Private.
 ICacheManager getCacheManager()
          Return the CacheManager for this subsystem.
 Object[] getChildren()
          Return the children of this subsystem, to populate the GUI subtree of this subsystem.
 RemoteCmdSubSystem getCommandSubSystem()
          Return the associated command subsystem.
 String getConnectionOwnedFilterPoolName(String profileName, String connectionName)
          Return the name for the connection-owned filter pool.
 SystemFilterPool getConnectionPrivateFilterPool(boolean createIfNotFound)
          Find or create a new filter pool, unique to this subsystem's connection.
 String[] getExecutedCommands()
          Provide list of executed commands on subsystem.This is only applicable if the subsystem factory reports true for supportsCommands().
 String getFactoryId()
          Private.
 SystemFilterPoolReferenceManager getFilterPoolReferenceManager()
          Private.
protected  Object getFilterReferenceWithAbsoluteName(String key)
          Return the filter reference that corresponds to the specified key.
protected  String getFirstParentFilterString(Object parent)
          Called by resolveFilterString when given null for the filter string, meaning we defer getting a filter string until later, where we query it from the parent.
 String getHostName()
          Return the host name for the connection this system's subsystem is associated with
 String getIBMAttribute(String attributeName)
          For IBM teams defining their own subsystems.
 String getIbmAttributes()
          Private.
 String getLocalUserId()
          Alternative to getUserId when we don't want to resolve it from parent connection.
protected  String getLocalUserId(String key)
          Internal-use method for getting the local user ID, without resolution.
 String getName()
          Private.
 Object getObjectWithAbsoluteName(String key)
          For drag and drop, and clipboard, support of remote objects.
 SubSystemFactory getParentSubSystemFactory()
          Return the parent subsystem factory that owns this subsystem.
 Integer getPort()
          Private.
 int getPortAsInt()
          Return the port for this subsystem
protected  String getPreferencesKey()
          Helper method to compute a unique name for a given subsystem instance
protected  String getPreferencesKey(String profileName, String connectionName)
          Helper method to compute a unique name for a given subsystem instance, given a profile and connection name
protected  SystemPreferencesManager getPreferencesManager()
          Helper method to return preference manager
 SubSystem getPrimarySubSystem()
          Return the primary subsystem associated with this subsystem's ISystem
 String[] getProperties(Object subject, String[] keys, Shell shell)
          Get a remote property.
 String getProperty(Object subject, String key, Shell shell)
          Get a remote property.
 PropertyPage getPropertyPage(Composite parent)
          Return the single property page to show in the tabbed notebook for the for SubSystem property of the parent Connection.
protected static String getQueryingMessage()
          Helper method to return the message "Querying properties..."
protected static String getQueryingMessage(String key)
          Helper method to return the message "Querying &1..."
 ServerLauncher getRemoteServerLauncher()
           
protected static String getResolvingMessage(String filterString)
          Helper method to return the message "Resolving to &1..."
protected  IRunnableContext getRunnableContext(Shell rshell)
          Get the progress monitor dialog for this operation.
protected static String getRunningMessage(String cmd)
          Helper method to return the message "Running command &1..."
 String getSaveFileName()
          Return the unqualified file name to save this subsystem to.
protected static String getSettingMessage()
          Helper method to return the message "Setting properties..."
protected static String getSettingMessage(String key)
          Helper method to return the message "Setting &1..."
protected  Shell getShell()
          Return the shell for the current operation
 ISystem getSystem()
          Return the ISystem object that represents the live connection for this system.
 SystemConnection getSystemConnection()
          Return the connection object this subsystem is associated with.
 String getSystemConnectionName()
          Return the name of system connection object this subsystem is associated with.
 SystemFilterPoolReferenceManager getSystemFilterPoolReferenceManager()
          Return the system filter pool reference manager, as per the interface SystemFilterPoolReferenceManagerProvider
 AbstractSystemManager getSystemManager()
          Return a singleton instance of an AbstractSystemManager subclass that manages a pool of ISystem objects, one per system connection.
 SystemProfile getSystemProfile()
          Return the system profile object this subsystem is associated with.
 String getSystemProfileName()
          Return the name of system profile object this subsystem is associated with.
 String getSystemType()
          Return the system type for this connection.
 Object getTargetForFilter(SystemFilterReference filterRef)
          Returns the parent object associated with a filter reference.
 SystemUDActionSubsystem getUDActionSubsystem()
          Defer to our subsystem factory, the request to get its singleton instance of the user defined action subsystem class.
 SystemFilterPool getUniqueOwningSystemFilterPool(boolean createIfNotFound)
          Return the owning filter pool that is unique to this provider.
 String getUserId()
          Returns the value of this subsystem's local user id if it is not null.
 String getUserIdGen()
          Private.
 String getVendorAttribute(String vendorName, String attributeName)
          For business partners defining their own subsystems.
 String getVendorAttributes()
          Private.
 boolean hasChildren()
          CHILD CLASSES MAY OVERRIDE THIS.
protected  void internalCancelShell(IProgressMonitor monitor, Object command)
           
protected  void internalConnect(IProgressMonitor monitor, String hostName, int port)
          Actually connect to the remote host.
protected  void internalDisconnect(IProgressMonitor monitor, String hostName, int port)
          Actually disconnect from the remote host.
protected  String[] internalGetProperties(IProgressMonitor monitor, Object subject, String[] keys)
          Actually get multiple remote properties.
protected  String internalGetProperty(IProgressMonitor monitor, Object subject, String key)
          Actually get a remote property.
protected  void internalRemoveShell(Object command)
           
protected  Object[] internalResolveFilterString(IProgressMonitor monitor, Object parent, String filterString)
          Resolve a relative filter string.
protected  Object[] internalResolveFilterString(IProgressMonitor monitor, String filterString)
          Resolve an absolute filter string.
 Object[] internalResolveFilterStrings(IProgressMonitor monitor, String[] filterStrings)
          Resolve multiple absolute filter strings.
protected  Object[] internalRunCommand(IProgressMonitor monitor, String cmd, Object context)
          Actually run a remote command.
protected  Object[] internalRunCommand(IProgressMonitor monitor, String cmd, Object context, boolean interpretOutput)
          Actually run a remote command.
protected  IRemoteCommandShell internalRunShell(IProgressMonitor monitor, Object context)
           
protected  void internalSendCommandToShell(IProgressMonitor monitor, String cmd, Object command)
           
protected  Object internalSetProperties(IProgressMonitor monitor, Object subject, String[] keys, String[] values)
          Actually set multiple remote properties.
protected  Object internalSetProperty(IProgressMonitor monitor, Object subject, String key, String value)
          Actually set a remote property.
 boolean isConnected()
          Return true if this subsystem is currently connected to its remote system.
 boolean isConnectionError()
          Return true if the last attempt to connect this subsystem to its remote system failed.
 boolean isHidden()
          Private.
 boolean isOffline()
          Returns the offline property for this subsystem's System Connection.
 boolean isSetAdditionalAttributes()
          Private.
 boolean isSetIbmAttributes()
          Private.
 boolean isSetVendorAttributes()
          Private.
 boolean isUseSSL()
          Private.
 void removeShell(Shell shell, Object commandObject)
          Remove and Cancel a shell or running command.
 void renamingConnection(String newName)
          The connection is being renamed, so we are called to do our thing with any information stored that is keyed by the connection name.
 void renamingProfile(String oldName, String newName)
          The profile is being renamed, so we are called to do our thing with any information stored that is keyed by the profile name.
 Object[] resolveFilterString(IProgressMonitor monitor, Object parent, String filterString)
          Modal thread version of resolve filter strings Resolve an absolute filter string.
 Object[] resolveFilterString(IProgressMonitor monitor, String filterString)
          Modal thread version of resolve filter strings Resolve an absolute filter string.
 Object[] resolveFilterString(Object parent, String filterString, Shell shell)
          Resolve a relative filter string.
 Object[] resolveFilterString(String filterString, Shell shell)
          Resolve an absolute filter string.
 Object[] resolveFilterStrings(IProgressMonitor monitor, String[] filterStrings)
          Modal thread version of resolve filter strings Resolve an absolute filter string.
 Object[] resolveFilterStrings(String[] filterStrings, Shell shell)
          Resolve multiple absolute filter strings.
 void run(IProgressMonitor monitor)
          Method required by IRunnableWithProgress interface.
 Object[] runCommand(String command, Shell shell, Object context)
          Execute a remote command.
 Object[] runCommand(String command, Shell shell, Object context, boolean interpretOutput)
          Execute a remote command.
 IRemoteCommandShell runShell(Shell shell, Object context)
          Launch a new command shell.
protected  SubSystem selectCommandSubSystem(SubSystem[] allCmdSubSystems)
          Internal method to select the appropriate command subsystem when there are multiple defined for this connection.
 void sendCommandToShell(String input, Shell shell, Object commandObject)
          Send a command as input to a running command shell.
 void setAdditionalAttributes(String newAdditionalAttributes)
          Private.
 void setConnectionError(boolean error)
          Sets whether the last attempt to connect this subsystem to its remote system failed.
 void setFactoryId(String newFactoryId)
          Private.
 void setFilterPoolReferenceManager(SystemFilterPoolReferenceManager newFilterPoolReferenceManager)
          Private.
 void setHidden(boolean newHidden)
          Private.
 void setIBMAttribute(String attributeName, String attributeValue)
          For IBM teams defining their own subsystems.
 void setIbmAttributes(String newIbmAttributes)
          Private.
 void setName(String newName)
          Private.
 void setParentConnection(SystemConnection conn)
          Set the parent connection that owns this subsystem.
 void setParentSubSystemFactory(SubSystemFactory ssf)
          Return the parent subsystem factory that owns this subsystem.
 void setPort(Integer newPort)
          Private.
 Object setProperties(Object subject, String[] keys, String[] values, Shell shell)
          Set multiple remote properties.
 Object setProperty(Object subject, String key, String value, Shell shell)
          Set a remote property.
 void setRemoteServerLauncher(ServerLauncher newRemoteServerLauncher)
           
 void setSaveFileName(String name)
          Set the unqualified file name to save this subsystem to.
 void setUserId(String newId)
          Sets the local userId for this subsystem.
 void setUserIdGen(String newUserId)
          Private.
 void setUseSSL(boolean newUseSSL)
          Private.
 void setVendorAttribute(String vendorName, String attributeName, String attributeValue)
          For business partners defining their own subsystems.
 void setVendorAttributes(String newVendorAttributes)
          Private.
protected  void showConnectCancelledMessage(Shell shell, String hostName, int port)
          Show an error message when the user cancels the connection.
protected  void showConnectErrorMessage(Shell shell, String hostName, int port, Throwable exc)
          Show an error message when the connection fails.
protected  void showDisconnectCancelledMessage(Shell shell, String hostName, int port)
          Show an error message when the user cancels the disconnection.
protected  void showDisconnectErrorMessage(Shell shell, String hostName, int port, Exception exc)
          Show an error message when the disconnection fails.
protected  void showOperationCancelledMessage(Shell shell)
          Show an error message when the user cancels the operation.
protected  void showOperationErrorMessage(Shell shell, Throwable exc)
          Show an error message when the operation fails.
protected  void showOperationMessage(Exception exc, Shell shell)
           
protected  Object[] sortResolvedFilterStringObjects(Object[] input)
          Sort the concatenated list of all objects returned by resolving one or more filter strings.
 boolean supportsCaching()
          Check if the SubSystem supports caching.
 String toString()
           
 void unsetAdditionalAttributes()
          Private.
 void unsetIbmAttributes()
          Private.
 void unsetVendorAttributes()
          Private.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

NAME_EDEFAULT

protected static final String NAME_EDEFAULT
The default value of the 'Name' attribute.

See Also:
getName()

copyright

public static final String copyright
See Also:
Constant Field Values

SUBSYSTEM_FILE_NAME

protected static final String SUBSYSTEM_FILE_NAME
See Also:
Constant Field Values

OPERATION_RESOLVE_ABSOLUTE

protected static final int OPERATION_RESOLVE_ABSOLUTE
See Also:
Constant Field Values

OPERATION_RESOLVE_ABSOLUTES

protected static final int OPERATION_RESOLVE_ABSOLUTES
See Also:
Constant Field Values

OPERATION_RESOLVE_RELATIVE

protected static final int OPERATION_RESOLVE_RELATIVE
See Also:
Constant Field Values

OPERATION_RUN_COMMAND

protected static final int OPERATION_RUN_COMMAND
See Also:
Constant Field Values

OPERATION_GET_PROPERTY

protected static final int OPERATION_GET_PROPERTY
See Also:
Constant Field Values

OPERATION_SET_PROPERTY

protected static final int OPERATION_SET_PROPERTY
See Also:
Constant Field Values

OPERATION_GET_PROPERTIES

protected static final int OPERATION_GET_PROPERTIES
See Also:
Constant Field Values

OPERATION_SET_PROPERTIES

protected static final int OPERATION_SET_PROPERTIES
See Also:
Constant Field Values

OPERATION_CONNECT

protected static final int OPERATION_CONNECT
See Also:
Constant Field Values

OPERATION_DISCONNECT

protected static final int OPERATION_DISCONNECT
See Also:
Constant Field Values

OPERATION_RUN_SHELL

protected static final int OPERATION_RUN_SHELL
See Also:
Constant Field Values

OPERATION_SEND_COMMAND_TO_SHELL

protected static final int OPERATION_SEND_COMMAND_TO_SHELL
See Also:
Constant Field Values

OPERATION_CANCEL_SHELL

protected static final int OPERATION_CANCEL_SHELL
See Also:
Constant Field Values

OPERATION_REMOVE_SHELL

protected static final int OPERATION_REMOVE_SHELL
See Also:
Constant Field Values

DELIM_VENDOR_ATTRS

public static final String DELIM_VENDOR_ATTRS
Delimiter string for each vendor attribute: ";;;"

See Also:
Constant Field Values

DELIM_VENDOR_ATTR_VALUE

public static final String DELIM_VENDOR_ATTR_VALUE
Delimiter string for each vendor attribute, between the name and the value: "==="

See Also:
Constant Field Values

DELIM_VENDOR_NAME

public static final String DELIM_VENDOR_NAME
Delimiter string for each vendor attribute, between the vendor name and the attribute name: "___"

See Also:
Constant Field Values

parentSubSystemFactory

protected SubSystemFactory parentSubSystemFactory

parentConnection

protected SystemConnection parentConnection

previousUserIdKey

protected String previousUserIdKey

operation

protected int operation

runInput

protected String runInput

runInput2

protected String runInput2

runObject

protected Object runObject

runInputs

protected String[] runInputs

runInputs2

protected String[] runInputs2

runOutput

protected Object runOutput

runOutputString

protected String runOutputString

runOutputs

protected Object[] runOutputs

runOutputStrings

protected String[] runOutputStrings

runContext

protected Object runContext

runInterpret

protected boolean runInterpret

runException

protected Exception runException

shell

protected Shell shell

supportsConnecting

protected boolean supportsConnecting

sortResults

protected boolean sortResults

runInThread

protected boolean runInThread

cancelable

protected boolean cancelable

doConnection

protected boolean doConnection

pmDialog

protected ProgressMonitorDialog pmDialog

vendorAttrs

protected Hashtable vendorAttrs

ibmAttrs

protected Hashtable ibmAttrs

monitor

protected IProgressMonitor monitor

saveFileName

protected String saveFileName

_system

protected ISystem _system

_connectionError

protected boolean _connectionError

_disconnecting

protected boolean _disconnecting

name

protected String name

USER_ID_EDEFAULT

protected static final String USER_ID_EDEFAULT
The default value of the 'User Id' attribute.

See Also:
getUserId()

userId

protected String userId

PORT_EDEFAULT

protected static final Integer PORT_EDEFAULT
The default value of the 'Port' attribute.

See Also:
getPort()

port

protected Integer port

FACTORY_ID_EDEFAULT

protected static final String FACTORY_ID_EDEFAULT
The default value of the 'Factory Id' attribute.

See Also:
getFactoryId()

factoryId

protected String factoryId

HIDDEN_EDEFAULT

protected static final boolean HIDDEN_EDEFAULT
The default value of the 'Hidden' attribute.

See Also:
isHidden(), Constant Field Values

hidden

protected boolean hidden

USE_SSL_EDEFAULT

protected static final boolean USE_SSL_EDEFAULT
The default value of the 'Use SSL' attribute.

See Also:
isUseSSL(), Constant Field Values

useSSL

protected boolean useSSL

VENDOR_ATTRIBUTES_EDEFAULT

protected static final String VENDOR_ATTRIBUTES_EDEFAULT
The default value of the 'Vendor Attributes' attribute.

See Also:
getVendorAttributes()

vendorAttributes

protected String vendorAttributes

vendorAttributesESet

protected boolean vendorAttributesESet
This is true if the Vendor Attributes attribute has been set.


ADDITIONAL_ATTRIBUTES_EDEFAULT

protected static final String ADDITIONAL_ATTRIBUTES_EDEFAULT
The default value of the 'Additional Attributes' attribute.

See Also:
getAdditionalAttributes()

additionalAttributes

protected String additionalAttributes

additionalAttributesESet

protected boolean additionalAttributesESet
This is true if the Additional Attributes attribute has been set.


IBM_ATTRIBUTES_EDEFAULT

protected static final String IBM_ATTRIBUTES_EDEFAULT
The default value of the 'Ibm Attributes' attribute.

See Also:
getIbmAttributes()

ibmAttributes

protected String ibmAttributes

ibmAttributesESet

protected boolean ibmAttributesESet
This is true if the Ibm Attributes attribute has been set.


filterPoolReferenceManager

protected SystemFilterPoolReferenceManager filterPoolReferenceManager

remoteServerLauncher

protected ServerLauncher remoteServerLauncher
The cached value of the 'Remote Server Launcher' containment reference.

See Also:
getRemoteServerLauncher()
Constructor Detail

SubSystemImpl

protected SubSystemImpl()
Constructor. Do not call directly. MOF calls it.

Method Detail

eStaticClass

protected EClass eStaticClass()


getCommandSubSystem

public RemoteCmdSubSystem getCommandSubSystem()
Return the associated command subsystem. By default, returns the first command subsystem found for this connection, but can be refined by each subsystem implementation. For command subsystems, returns "this".

Specified by:
getCommandSubSystem in interface SubSystem

selectCommandSubSystem

protected SubSystem selectCommandSubSystem(SubSystem[] allCmdSubSystems)
Internal method to select the appropriate command subsystem when there are multiple defined for this connection. The default implementation is to return the first, but child classes can refine this. Input is always an array of length greater than one.


getParentSubSystemFactory

public SubSystemFactory getParentSubSystemFactory()
Return the parent subsystem factory that owns this subsystem.

Specified by:
getParentSubSystemFactory in interface SubSystem

setParentSubSystemFactory

public void setParentSubSystemFactory(SubSystemFactory ssf)
Return the parent subsystem factory that owns this subsystem.

Specified by:
setParentSubSystemFactory in interface SubSystem

setParentConnection

public void setParentConnection(SystemConnection conn)
Set the parent connection that owns this subsystem.

Specified by:
setParentConnection in interface SubSystem

forceUserIdToUpperCase

public boolean forceUserIdToUpperCase()
Return true if userId and password should be forced to uppercase. Shortcut to calling same method in parent connection.

Specified by:
forceUserIdToUpperCase in interface SubSystem

renamingProfile

public void renamingProfile(String oldName,
                            String newName)
The profile is being renamed, so we are called to do our thing with any information stored that is keyed by the profile name.

This is called AFTER the profile is renamed!

Specified by:
renamingProfile in interface SubSystem

renamingConnection

public void renamingConnection(String newName)
The connection is being renamed, so we are called to do our thing with any information stored that is keyed by the connection name.

Specified by:
renamingConnection in interface SubSystem

deletingConnection

public void deletingConnection()
Private method called when the parent connection is being deleted, so the subsystem can do any pre-death cleanup it needs to.

What we need to do is delete our entry in the preference store for our userId.

Specified by:
deletingConnection in interface SubSystem

getUserId

public String getUserId()
Returns the value of this subsystem's local user id if it is not null. If it is null, it returns the parent connection object's default user Id. It in turn queries the preferences if its local value is null.

In fact, we now don't store the user Id in the subsystem object itself, but rather store it in the user preferences, so that such things are not shared among the team on a synchronize operation. This is transparent to callers of this method however, as this method resolves from the preferences.

Specified by:
getUserId in interface SubSystem
Returns:
The value of the UserId attribute
See Also:
SystemConnection.getDefaultUserId(), setUserId(String), getLocalUserId(), clearLocalUserId()

setUserId

public void setUserId(String newId)
Sets the local userId for this subsystem. This causes the local password cache to be cleared.

Behind the scenes, the user Id is in fact not stored in this subsystem object. Rather, it is stored in the user's preferences and the key value for that preference value is stored in the subsystem object. The methods getUserId() and getLocalUserId() will take care of resolving from the user preferences and returning the resolved value.

We store the userId in the user preferences to they are not shared among the team when the remote systems project is synchronized with a repository.

NOTE: YOU SHOULD USUALLY NOT CALL THIS. RATHER YOU SHOULD USUALLY CALL: SubSystemFactory.updateSubSystem(Shell,SubSystem,boolean,String,boolean,Integer).

Specified by:
setUserId in interface SubSystem
Parameters:
newId - The new value of the UserId attribute. If it is null, then this is the same as calling SubSystem.clearLocalUserId().

getPreferencesManager

protected SystemPreferencesManager getPreferencesManager()
Helper method to return preference manager


getPreferencesKey

protected String getPreferencesKey()
Helper method to compute a unique name for a given subsystem instance


getPreferencesKey

protected String getPreferencesKey(String profileName,
                                   String connectionName)
Helper method to compute a unique name for a given subsystem instance, given a profile and connection name


getLocalUserId

protected String getLocalUserId(String key)
Internal-use method for getting the local user ID, without resolution.


getLocalUserId

public String getLocalUserId()
Alternative to getUserId when we don't want to resolve it from parent connection. This is used when showing the properties.

Unlike getUserId() this one does not defer to the connection's default user Id if the subsystem's userId attribute is null.

To set the local user Id, simply call setUserId(String id). To clear it, call clearLocalUserId().

Specified by:
getLocalUserId in interface SubSystem
See Also:
SystemConnection.getDefaultUserId(), clearLocalUserId(), getUserId(), setUserId(String)

clearLocalUserId

public void clearLocalUserId()
Called to clear the local user Id such that subsequent requests to getUserId() will return the parent connection's default user Id. Sets the user Id attribute for this subsystem to null.

Specified by:
clearLocalUserId in interface SubSystem
See Also:
SystemConnection.getDefaultUserId(), getUserId(), getLocalUserId(), setUserId(String)

getPortAsInt

public int getPortAsInt()
Return the port for this subsystem

Specified by:
getPortAsInt in interface SubSystem

checkIsConnected

public void checkIsConnected()
                      throws SystemMessageException
This is a helper method you can call when performing actions that must be certain there is a connection. If there is no connection it will attempt to connect, and if that fails will throw a SystemMessageException you can easily display to the user by using a method in it.

Specified by:
checkIsConnected in interface SubSystem
Throws:
SystemMessageException

getAdapter

public Object getAdapter(Class adapterType)
This is the method required by the IAdaptable interface. Given an adapter class type, return an object castable to the type, or null if this is not possible.

By default this returns Platform.getAdapterManager().getAdapter(this, adapterType); This in turn results in the default subsystem adapter SystemViewSubSystemAdapter, in package com.ibm.etools.systems.core.ui.view.

Specified by:
getAdapter in interface IAdaptable

getSystemProfile

public SystemProfile getSystemProfile()
Return the system profile object this subsystem is associated with.

Specified by:
getSystemProfile in interface SubSystem
See Also:
SubSystem.getName()

getSystemProfileName

public String getSystemProfileName()
Return the name of system profile object this subsystem is associated with.

Specified by:
getSystemProfileName in interface SubSystem
Returns:
The value of the profile that owns the connection that owns this subsystem. Fastpath.

getSystemConnection

public SystemConnection getSystemConnection()
Return the connection object this subsystem is associated with.

Specified by:
getSystemConnection in interface SubSystem

getSystemConnectionName

public String getSystemConnectionName()
Return the name of system connection object this subsystem is associated with.

Specified by:
getSystemConnectionName in interface SubSystem
Returns:
The name of the connection that owns this. Same as getSystemConnection().getAliasName()

getUniqueOwningSystemFilterPool

public SystemFilterPool getUniqueOwningSystemFilterPool(boolean createIfNotFound)
Return the owning filter pool that is unique to this provider. From SystemFilterPoolReferenceManagerProvider interface. We map to a call to getConnectionPrivateFilterPool(boolean).

Specified by:
getUniqueOwningSystemFilterPool in interface SystemFilterPoolReferenceManagerProvider

getConnectionPrivateFilterPool

public SystemFilterPool getConnectionPrivateFilterPool(boolean createIfNotFound)
Find or create a new filter pool, unique to this subsystem's connection. This will be in the same profile as the connection, and it will follow a naming convention that ties it to the connection: Filter Pool for xxx, where xxx is the connection name.

Parameters:
createIfNotFound - - true to create the pool if it doesn't exist

getConnectionOwnedFilterPoolName

public String getConnectionOwnedFilterPoolName(String profileName,
                                               String connectionName)
Return the name for the connection-owned filter pool.


doesFilterTypeMatch

protected boolean doesFilterTypeMatch(SystemFilter filter,
                                      String remoteObjectAbsoluteName)
Override this method if you support typed filters. Given an absolute remote object name, you can test if this filter's type matches that of the remote object. This is called as a pre-test in the following methods.


doesFilterListContentsOf

public boolean doesFilterListContentsOf(SystemFilter filter,
                                        String remoteObjectAbsoluteName)
Return true if the given filter lists the contents of the given remote object. For example, if given a folder, return true if any of the filter strings in this filter lists the contents of that folder. Used in impact analysis when a remote object is created, deleted, renamed, copied or moved, so as to establish which filters need to be refreshed or collapsed (if the folder is deleted, say).

Subclasses do not need to override this method. Rather, this method walks each filter string and calls doesFilterStringListContentsOf(...), and that is the method that child classes must override.

Specified by:
doesFilterListContentsOf in interface SubSystem

doesFilterStringListContentsOf

public boolean doesFilterStringListContentsOf(SystemFilterString filterString,
                                              String remoteObjectAbsoluteName)
Return true if the given filter string lists the contents of the given remote object. For example, if given a folder, return true if the given filter string lists the contents of that folder. Used in impact analysis when a remote object is created, deleted, renamed, copied or moved, so as to establish which filters need to be refreshed or collapsed (if the folder is deleted, say).

This should only return true if the filter string directly lists the contents of the given object, versus indirectly.

Subclasses should override this.

Specified by:
doesFilterStringListContentsOf in interface SubSystem

doesFilterMatch

public boolean doesFilterMatch(SystemFilter filter,
                               String remoteObjectAbsoluteName)
Return true if the given remote object name will pass the filtering criteria for any of the filter strings in this filter.

Subclasses do not need to override this method. Rather, this method walks each filter string and calls doesFilterStringMatch(...), and that is the method that child classes must override.

Specified by:
doesFilterMatch in interface SubSystem

doesFilterStringMatch

public boolean doesFilterStringMatch(String filterString,
                                     String remoteObjectAbsoluteName,
                                     boolean caseSensitive)
Return true if the given remote object name will pass the filtering criteria for the given filter string.

Subclasses need to override this. If in doubt, return true.

Specified by:
doesFilterStringMatch in interface SubSystem

getPropertyPage

public PropertyPage getPropertyPage(Composite parent)
Return the single property page to show in the tabbed notebook for the for SubSystem property of the parent Connection. Return null if no page is to be contributed for this. You are limited to a single page, so you may have to compress. It is recommended you prompt for the port if applicable since the common base subsystem property page is not shown To help with this you can use the SystemPortPrompt widget.

Specified by:
getPropertyPage in interface SubSystem

getObjectWithAbsoluteName

public Object getObjectWithAbsoluteName(String key)
                                 throws Exception
For drag and drop, and clipboard, support of remote objects.

Return the object within the subsystem that corresponds to the specified unique ID. Because each subsystem maintains it's own objects, it's the responsability of the subsystem to determine how an ID (or key) for a given object maps to the real object. By default this returns null.

This is the functional opposite of ISystemRemoteElementAdapter.getAbsoluteName(Object).

Specified by:
getObjectWithAbsoluteName in interface IRemoteObjectResolver
Throws:
Exception

getFilterReferenceWithAbsoluteName

protected Object getFilterReferenceWithAbsoluteName(String key)
Return the filter reference that corresponds to the specified key. If there is no such filter reference, return null;

Parameters:
key - the absolute name for an object.
Returns:
a filter reference if there is one matching the key

setVendorAttribute

public void setVendorAttribute(String vendorName,
                               String attributeName,
                               String attributeValue)
For business partners defining their own subsystems.

This method allows an attribute to be persisted in this subsystem, given the following information:

Warning do not use any of the following characters in any of given parameters, or it will cause problems with parsing:

Specified by:
setVendorAttribute in interface SubSystem

getVendorAttribute

public String getVendorAttribute(String vendorName,
                                 String attributeName)
For business partners defining their own subsystems.

This method allows retrieval of a persisted attribute in this subsystem, given the following information:

Warning do not use any of the following characters in any of given parameters, or it will cause problems with parsing:

Specified by:
getVendorAttribute in interface SubSystem
Returns:
value of the attribute being queried, or null if not found

setIBMAttribute

public void setIBMAttribute(String attributeName,
                            String attributeValue)
For IBM teams defining their own subsystems. This method allows an attribute to be persisted in this subsystem, given the following information: Warning do not use any of the following characters in any of given parameters, or it will cause problems with parsing:


getIBMAttribute

public String getIBMAttribute(String attributeName)
For IBM teams defining their own subsystems. This method allows retrieval of a persisted attribute in this subsystem, given the following information: Warning do not use any of the following characters in any of given parameters, or it will cause problems with parsing:

Returns:
value of the attribute being queried, or null if not found

getSystemType

public String getSystemType()
Return the system type for this connection.


getHostName

public String getHostName()
Return the host name for the connection this system's subsystem is associated with


displayAsyncMsg

protected void displayAsyncMsg(SystemMessageException msg)
Display message on message thread


getSystemFilterPoolReferenceManager

public SystemFilterPoolReferenceManager getSystemFilterPoolReferenceManager()
Return the system filter pool reference manager, as per the interface SystemFilterPoolReferenceManagerProvider

Specified by:
getSystemFilterPoolReferenceManager in interface SystemFilterPoolReferenceManagerProvider

fireEvent

protected void fireEvent(SystemResourceChangeEvent event)

fireEvent

protected void fireEvent(SystemResourceChangeEvent event,
                         Object grandParent)

fireEvent

protected void fireEvent(Object src,
                         int eventId,
                         Object parent)

fireEvent

protected void fireEvent(Object[] multiSrc,
                         int eventId,
                         Object parent)

fireEvent

protected void fireEvent(Object[] src,
                         int eventId,
                         Object parent,
                         int position)

fireEvent

protected void fireEvent(Object src,
                         int eventId,
                         Object parent,
                         Object grandParent)

filterEventFilterPoolReferenceCreated

public void filterEventFilterPoolReferenceCreated(SystemFilterPoolReference newPoolRef)
A new filter pool reference has been created

Specified by:
filterEventFilterPoolReferenceCreated in interface SystemFilterPoolReferenceManagerProvider

filterEventFilterPoolReferenceDeleted

public void filterEventFilterPoolReferenceDeleted(SystemFilterPoolReference filterPoolRef)
A filter pool reference has been deleted

Specified by:
filterEventFilterPoolReferenceDeleted in interface SystemFilterPoolReferenceManagerProvider

filterEventFilterPoolReferenceReset

public void filterEventFilterPoolReferenceReset(SystemFilterPoolReference filterPoolRef)
A single filter pool reference has been reset to reference a new pool

Specified by:
filterEventFilterPoolReferenceReset in interface SystemFilterPoolReferenceManagerProvider

filterEventFilterPoolReferencesReset

public void filterEventFilterPoolReferencesReset()
All filter pool references has been reset. Happens after SelectFilterPools dialog

Specified by:
filterEventFilterPoolReferencesReset in interface SystemFilterPoolReferenceManagerProvider

filterEventFilterPoolReferenceRenamed

public void filterEventFilterPoolReferenceRenamed(SystemFilterPoolReference poolRef,
                                                  String oldName)
A filter pool reference has been renamed (ie, its reference filter pool renamed)

Specified by:
filterEventFilterPoolReferenceRenamed in interface SystemFilterPoolReferenceManagerProvider

filterEventFilterPoolReferencesRePositioned

public void filterEventFilterPoolReferencesRePositioned(SystemFilterPoolReference[] poolRefs,
                                                        int delta)
One or more filter pool references have been re-ordered within their manager

Specified by:
filterEventFilterPoolReferencesRePositioned in interface SystemFilterPoolReferenceManagerProvider

filterEventFilterCreated

public void filterEventFilterCreated(Object selectedObject,
                                     SystemFilter newFilter)
A new filter has been created. This is called when a filter pool reference is selected and a new filter is created, so that the provider can expand the selected filter pool reference and reveal the new filter within the selected pool reference.

Only the selected node should be expanded if not already. All other references to this pool will already have been informed of the new addition, and will have refreshed their children but not expanded them.

Specified by:
filterEventFilterCreated in interface SystemFilterPoolReferenceManagerProvider

filterEventFilterStringCreated

public void filterEventFilterStringCreated(Object selectedObject,
                                           SystemFilterString newFilterString)
A new filter string has been created. This is called when a filter reference is selected and a new filter string is created, so that the provider can expand the selected filter reference and reveal the new filter string within the selected filter reference.

Only the selected node should be expanded if not already. All other references to this filter will already have been informed of the new addition, and will have refreshed their children but not expanded them.

Specified by:
filterEventFilterStringCreated in interface SystemFilterPoolReferenceManagerProvider

run

public void run(IProgressMonitor monitor)
         throws InvocationTargetException,
                InterruptedException
Method required by IRunnableWithProgress interface. Allows execution of a long-running operation modally by via a thread. In our case, it runs one of five possible operations: Typically, you do not override this method. Rather, you override internalXXX, which this calls.

Throws:
InvocationTargetException
InterruptedException

showOperationMessage

protected void showOperationMessage(Exception exc,
                                    Shell shell)

showConnectErrorMessage

protected void showConnectErrorMessage(Shell shell,
                                       String hostName,
                                       int port,
                                       Throwable exc)
Show an error message when the connection fails. Shows a common message by default. Overridable.


showConnectCancelledMessage

protected void showConnectCancelledMessage(Shell shell,
                                           String hostName,
                                           int port)
Show an error message when the user cancels the connection. Shows a common message by default. Overridable.


showDisconnectErrorMessage

protected void showDisconnectErrorMessage(Shell shell,
                                          String hostName,
                                          int port,
                                          Exception exc)
Show an error message when the disconnection fails. Shows a common message by default. Overridable.


showDisconnectCancelledMessage

protected void showDisconnectCancelledMessage(Shell shell,
                                              String hostName,
                                              int port)
Show an error message when the user cancels the disconnection. Shows a common message by default. Overridable.


getResolvingMessage

protected static String getResolvingMessage(String filterString)
Helper method to return the message "Resolving to &1..."


getRunningMessage

protected static String getRunningMessage(String cmd)
Helper method to return the message "Running command &1..."


getQueryingMessage

protected static String getQueryingMessage(String key)
Helper method to return the message "Querying &1..."


getSettingMessage

protected static String getSettingMessage(String key)
Helper method to return the message "Setting &1..."


getQueryingMessage

protected static String getQueryingMessage()
Helper method to return the message "Querying properties..."


getSettingMessage

protected static String getSettingMessage()
Helper method to return the message "Setting properties..."


showOperationErrorMessage

protected void showOperationErrorMessage(Shell shell,
                                         Throwable exc)
Show an error message when the operation fails. Shows a common message by default, unless the exception is of type SystemMessageException, in which case the message is retrieved via getSystemMessage() and it is shown. Overridable.


showOperationCancelledMessage

protected void showOperationCancelledMessage(Shell shell)
Show an error message when the user cancels the operation. Shows a common message by default. Overridable.


isConnected

public boolean isConnected()
Return true if this subsystem is currently connected to its remote system. If the subsystem factory indicates its subsystems support connecting, then this method will call getSystem().isConnect().

Specified by:
isConnected in interface SubSystem

isOffline

public boolean isOffline()
Returns the offline property for this subsystem's System Connection.

Specified by:
isOffline in interface SubSystem

hasChildren

public boolean hasChildren()
CHILD CLASSES MAY OVERRIDE THIS. By default it returns true iff we support filters and there are filter pool references.

Specified by:
hasChildren in interface SubSystem

getChildren

public Object[] getChildren()
Return the children of this subsystem, to populate the GUI subtree of this subsystem. By default, this method: So, be sure to override this method IF you do not support filters.

Specified by:
getChildren in interface SubSystem

resolveFilterString

public Object[] resolveFilterString(String filterString,
                                    Shell shell)
                             throws Exception
Resolve an absolute filter string. This is only applicable if the subsystem factory reports true for SubSystemFactoryImpl.supportsFilters(), which is the default. Otherwise, getChildren() is called when the subsystem itself is expanded.

When a user expands a filter this method is invoked for each filter string and the results are concatenated and displayed to the user. You can affect the post-concatenated result by overriding sortResolvedFilterStringObjects(Object[]) if you desire to sort the result, say, or pick our redundancies.

The resulting objects are displayed in the tree in the Remote System view. There are two requirements on the returned objects:

  1. They must implement IAdaptable.
  2. Their must be an RSE remote-adapter registered for the object's class or interface type. Further, if this subsystem is visible in the RSE, which is the default, then there must also be an RSE GUI-adapter registered with the platform. The base class implementation of this interface is AbstractSystemViewAdapter.

A good place to start with your remote-resource classes to subclasss AbstractResource, as it already implements IAdaptable, and maintains a reference to this owning subsystem, which helps when implementing the remote-adapter.

Be sure to register your adapter factory in your plugin's startup method.

You do not need to override this, as it does the progress monitor and error message displaying for you. Just override internalResolveFilterString.

Specified by:
resolveFilterString in interface SubSystem
Parameters:
filterString - filter pattern for objects to return.
Returns:
Array of objects that are the result of this filter string
Throws:
Exception

resolveFilterStrings

public Object[] resolveFilterStrings(String[] filterStrings,
                                     Shell shell)
                              throws Exception
Resolve multiple absolute filter strings. This is only applicable if the subsystem factory reports true for supportsFilters().

This is the same as resolveFilterString(String,Shell) but takes an array of filter strings versus a single filter string.

The default implementation of this simply calls resolveFilterString(String,Shell) once for each filter string, and concatenates the result. The method sortResolvedFilterStringObject is called on the concatenated result, given subclasses an opportunity to sort the result.

After successful resolve, the sort method is called to sort the concatenated results before returning them.

Specified by:
resolveFilterStrings in interface SubSystem
Parameters:
filterStrings - array of filter patterns for objects to return.
Returns:
Array of objects that are the result of resolving all the filter strings
Throws:
Exception

sortResolvedFilterStringObjects

protected Object[] sortResolvedFilterStringObjects(Object[] input)
Sort the concatenated list of all objects returned by resolving one or more filter strings. The default implementation does nothing. Child classes can override if they wish to show their resulting objects sorted.


resolveFilterString

public Object[] resolveFilterString(IProgressMonitor monitor,
                                    String filterString)
                             throws Exception
Modal thread version of resolve filter strings Resolve an absolute filter string. This is only applicable if the subsystem factory reports true for supportsFilters().

When a user expands a filter containing filter strings, this method is invoked for each filter string.

The resulting objects are displayed in the remote system view tree. They can be anything, but at a minimum must support IAdaptable in order to drive the property sheet. You can just defer the getAdapter request to the platform's Adapter manager if desired.

You should supply an adapter class for the returned object's class, to render objects in the Remote System Explorer view. It will uses a label and content provider that defers all requests to the adapter, which it gets by querying the platform's adapter manager for the object type. Be sure to register your adapter factory.

Specified by:
resolveFilterString in interface SubSystem
Parameters:
monitor - the process monitor associated with this operation
filterString - filter pattern for objects to return.
Returns:
Array of objects that are the result of this filter string
Throws:
Exception

resolveFilterStrings

public Object[] resolveFilterStrings(IProgressMonitor monitor,
                                     String[] filterStrings)
                              throws Exception
Modal thread version of resolve filter strings Resolve an absolute filter string. This is only applicable if the subsystem factory reports true for supportsFilters().

When a user expands a filter containing filter strings, this method is invoked for each filter string.

The resulting objects are displayed in the remote system view tree. They can be anything, but at a minimum must support IAdaptable in order to drive the property sheet. You can just defer the getAdapter request to the platform's Adapter manager if desired.

You should supply an adapter class for the returned object's class, to render objects in the Remote System Explorer view. It will uses a label and content provider that defers all requests to the adapter, which it gets by querying the platform's adapter manager for the object type. Be sure to register your adapter factory.

Specified by:
resolveFilterStrings in interface SubSystem
Parameters:
monitor - the process monitor associated with this operation
filterStrings - filter patterns for objects to return.
Returns:
Array of objects that are the result of this filter string
Throws:
Exception

resolveFilterString

public Object[] resolveFilterString(IProgressMonitor monitor,
                                    Object parent,
                                    String filterString)
                             throws Exception
Modal thread version of resolve filter strings Resolve an absolute filter string. This is only applicable if the subsystem factory reports true for supportsFilters().

When a user expands a filter containing filter strings, this method is invoked for each filter string.

The resulting objects are displayed in the remote system view tree. They can be anything, but at a minimum must support IAdaptable in order to drive the property sheet. You can just defer the getAdapter request to the platform's Adapter manager if desired.

You should supply an adapter class for the returned object's class, to render objects in the Remote System Explorer view. It will uses a label and content provider that defers all requests to the adapter, which it gets by querying the platform's adapter manager for the object type. Be sure to register your adapter factory.

Specified by:
resolveFilterString in interface SubSystem
Parameters:
monitor - the process monitor associated with this operation
parent - the object to query
filterString - filter pattern for objects to return.
Returns:
Array of objects that are the result of this filter string
Throws:
Exception

resolveFilterString

public Object[] resolveFilterString(Object parent,
                                    String filterString,
                                    Shell shell)
                             throws Exception
Resolve a relative filter string.

When a user expands a remote resource this method is invoked and the results are potentially sorted and displayed to the user. You can affect the sorting behaviour by overriding sortResolvedFilterStringObjects(Object[]) if you desire to sort the result, say, or pick our redundancies.

The resulting objects are displayed in the tree in the Remote System view. There are two requirements on the returned objects:

  1. They must implement IAdaptable.
  2. Their must be an RSE remote-adapter registered for the object's class or interface type. Further, if this subsystem is visible in the RSE, which is the default, then there must also be an RSE GUI-adapter registered with the platform. The base class implementation of this interface is AbstractSystemViewAdapter.

A good place to start with your remote-resource classes to subclasss AbstractResource, as it already implements IAdaptable, and maintains a reference to this owning subsystem, which helps when implementing the remote-adapter.

Be sure to register your adapter factory in your plugin's startup method.

You do not need to override this, as it does the progress monitor and error message displaying for you. Override internalResolveFilterString instead.

Specified by:
resolveFilterString in interface SubSystem
Parameters:
parent - Object that is being expanded.
filterString - filter pattern for children of parent. Typically just "*".
Returns:
Array of objects that are the result of this filter string
Throws:
Exception

runCommand

public Object[] runCommand(String command,
                           Shell shell,
                           Object context)
                    throws Exception
Execute a remote command. This is only applicable if the subsystem factory reports true for supportsCommands().

Parameters:
command - Command to be executed remotely.
Returns:
Array of objects that are the result of running this command. Typically, these are messages logged by the command.
Throws:
Exception

runCommand

public Object[] runCommand(String command,
                           Shell shell,
                           Object context,
                           boolean interpretOutput)
                    throws Exception
Execute a remote command. This is only applicable if the subsystem factory reports true for supportsCommands().

Parameters:
command - Command to be executed remotely.
interpretOutput - indicates whether or not to interpret the output
Returns:
Array of objects that are the result of running this command. Typically, these are messages logged by the command.
Throws:
Exception

sendCommandToShell

public void sendCommandToShell(String input,
                               Shell shell,
                               Object commandObject)
                        throws Exception
Send a command as input to a running command shell.

Throws:
Exception

cancelShell

public void cancelShell(Shell shell,
                        Object commandObject)
                 throws Exception
Cancel a shell or running command.

Throws:
Exception

removeShell

public void removeShell(Shell shell,
                        Object commandObject)
                 throws Exception
Remove and Cancel a shell or running command.

Throws:
Exception

runShell

public IRemoteCommandShell runShell(Shell shell,
                                    Object context)
                             throws Exception
Launch a new command shell. This is only applicable if the subsystem factory reports true for supportsCommands().

Returns:
An object that represents the command and it's output.
Throws:
Exception

getExecutedCommands

public String[] getExecutedCommands()
Provide list of executed commands on subsystem.This is only applicable if the subsystem factory reports true for supportsCommands().


setProperty

public Object setProperty(Object subject,
                          String key,
                          String value,
                          Shell shell)
                   throws Exception
Set a remote property. Subsystems interpret as they wish. Eg, this might be to set a remote environment variable. This is only applicable if the subsystem factory reports true for supportsProperties().

Specified by:
setProperty in interface SubSystem
Parameters:
subject - Identifies which object to get the properties of
key - Identifies property to set
value - Value to set property to
Returns:
Object interpretable by subsystem. Might be a Boolean, or the might be new value for confirmation.
Throws:
Exception

getProperty

public String getProperty(Object subject,
                          String key,
                          Shell shell)
                   throws Exception
Get a remote property. Subsystems interpret as they wish. Eg, this might be to get a remote environment variable. This is only applicable if the subsystem factory reports true for supportsProperties().

Specified by:
getProperty in interface SubSystem
Parameters:
subject - Identifies which object to get the properties of
key - Identifies property to get value of
Returns:
String The value of the requested key.
Throws:
Exception

setProperties

public Object setProperties(Object subject,
                            String[] keys,
                            String[] values,
                            Shell shell)
                     throws Exception
Set multiple remote properties. Subsystems interpret as they wish. Eg, this might be to set a number of remote environment variables. This is only applicable if the subsystem factory reports true for supportsProperties().

Specified by:
setProperties in interface SubSystem
Parameters:
subject - Identifies which object to get the properties of
Returns:
Object interpretable by subsystem. Might be a Boolean, or the might be new values for confirmation.
Throws:
Exception

connect

public void connect(Shell shell,
                    boolean forcePrompt)
             throws Exception
Connect to the remote system, optionally forcing a signon prompt even if the password is cached in memory or on disk. You do not need to override this, as it does the progress monitor and error message displaying for you.

Override internalConnect if you want, but by default it calls getSystem().connect(IProgressMonitor).

Specified by:
connect in interface SubSystem
Parameters:
forcePrompt - Forces the signon prompt to be displayed even if a valid password in cached in memory or saved on disk.
Throws:
Exception

connect

public void connect(Shell shell)
             throws Exception
Attempt to connect to the remote system. You do not need to override this, as it does the progress monitor and error message displaying for you.

Override internalConnect if you want, but by default it calls getSystem().connect(IProgressMonitor).

Specified by:
connect in interface SubSystem
Throws:
Exception

connect

public void connect()
             throws Exception
Attempt to connect to the remote system when a Shell is not available. You do not need to override this, as it does the progress monitor and error message displaying for you.

Override internalConnect if you want, but by default it calls getSystem().connect(IProgressMonitor).

Specified by:
connect in interface SubSystem
Throws:
Exception

disconnect

public void disconnect(Shell shell)
                throws Exception
Disconnect from the remote system You do not need to override this, as it does the progress monitor and error message displaying for you.

Override internalDisconnect if you want, but by default it calls getSystem().disconnect(IProgressMonitor).

Specified by:
disconnect in interface SubSystem
Throws:
Exception

disconnect

public void disconnect(Shell shell,
                       boolean collapseTree)
                throws Exception
Disconnect from the remote system You do not need to override this, as it does the progress monitor and error message displaying for you.

Override internalDisconnect if you want, but by default it calls getSystem().disconnect(IProgressMonitor).

Specified by:
disconnect in interface SubSystem
Parameters:
collapseTree - collapse the tree in the system view
Throws:
Exception

isConnectionError

public boolean isConnectionError()
Description copied from interface: SubSystem
Return true if the last attempt to connect this subsystem to its remote system failed.

Specified by:
isConnectionError in interface SubSystem

setConnectionError

public void setConnectionError(boolean error)
Description copied from interface: SubSystem
Sets whether the last attempt to connect this subsystem to its remote system failed.

Specified by:
setConnectionError in interface SubSystem

getProperties

public String[] getProperties(Object subject,
                              String[] keys,
                              Shell shell)
                       throws Exception
Get a remote property. Subsystems interpret as they wish. Eg, this might be to get a remote environment variable. This is only applicable if the subsystem factory reports true for supportsProperties().

Specified by:
getProperties in interface SubSystem
Parameters:
subject - Identifies which object to get the properties of
Returns:
Object The values of the requested keys.
Throws:
Exception

getSystem

public ISystem getSystem()
Return the ISystem object that represents the live connection for this system. This must return an object that implements ISystem. A good starting point for that is the base class AbstractSystem.

If you only have a single subsystem class, you may override this method to return the ISystem object that manages the connect/disconnect actions. If, on the other hand, you have multiple subsystem classes that desire to share a single ISystem connection, (ie, share the same communications pipe) then do not override this. By default, this calls getSystemManager() which returns an AbstractSystemManager object that manages maintaining a singleton ISystem object per system connection. You should subclass AbstractSystemManager, and override getSystemManager() to return a singleton instance of that subclass.

Default implementation:


   return getSystemManager().getSystemObject(this);
 

We recommending using a subclass of AbstractSystemManager even for single subsystems, because it doesn't hurt and allows easy growth if new subsystems are added in the future.

Specified by:
getSystem in interface SubSystem

getSystemManager

public AbstractSystemManager getSystemManager()
Return a singleton instance of an AbstractSystemManager subclass that manages a pool of ISystem objects, one per system connection. By default, getSystem() calls this, unless you override getSystem().

By default, this returns null so must be overridden if getSystem is not.

Specified by:
getSystemManager in interface SubSystem

supportsCaching

public boolean supportsCaching()
Check if the SubSystem supports caching. This is the default implementation which returns false. Subclasses must override to support caching.

Specified by:
supportsCaching in interface SubSystem

getCacheManager

public ICacheManager getCacheManager()
Return the CacheManager for this subsystem. This is the default implementation which just returns null.

Specified by:
getCacheManager in interface SubSystem
See Also:
supportsCaching()

internalConnect

protected void internalConnect(IProgressMonitor monitor,
                               String hostName,
                               int port)
                        throws InvocationTargetException,
                               InterruptedException
Actually connect to the remote host. This is called by the run(IProgressMonitor monitor) method.

You DO NOT OVERRIDE THIS typically. Rather, this calls connect(IProgressMonitor) in your ISystem class that is returned from getSystem(). That is where your code to connect should go!

Your connect method in your ISystem class must follow these IRunnableWithProgress rules:

Throws:
InvocationTargetException
InterruptedException

internalDisconnect

protected void internalDisconnect(IProgressMonitor monitor,
                                  String hostName,
                                  int port)
                           throws InvocationTargetException,
                                  InterruptedException
Actually disconnect from the remote host. This is called by the run(IProgressMonitor monitor) method.

You DO NOT OVERRIDE THIS typically. Rather, this calls connect(IProgressMonitor) in your ISystem class that is returned from getSystem(). That is where your code to disconnect should go!

Your connect method in your ISystem class must follow these IRunnableWithProgress rules:

Throws:
InvocationTargetException
InterruptedException

internalResolveFilterString

protected Object[] internalResolveFilterString(IProgressMonitor monitor,
                                               String filterString)
                                        throws InvocationTargetException,
                                               InterruptedException
Resolve an absolute filter string. This is only applicable if the subsystem factory reports true for SubSystemFactoryImpl.supportsFilters(), which is the default. Otherwise, getChildren() is called when the subsystem itself is expanded.

When a user expands a filter this method is invoked for each filter string and the results are concatenated and displayed to the user. You can affect the post-concatenated result by overriding sortResolvedFilterStringObjects(Object[]) if you desire to sort the result, say, or pick our redundancies.

The resulting objects are displayed in the tree in the Remote System view. There are two requirements on the returned objects:

  1. They must implement IAdaptable.
  2. Their must be an RSE remote-adapter registered for the object's class or interface type. Further, if this subsystem is visible in the RSE, which is the default, then there must also be an RSE GUI-adapter registered with the platform. The base class implementation of this interface is AbstractSystemViewAdapter.

A good place to start with your remote-resource classes to subclasss AbstractResource, as it already implements IAdaptable, and maintains a reference to this owning subsystem, which helps when implementing the remote-adapter.

Be sure to register your adapter factory in your plugin's startup method.

Actually resolve an absolute filter string. This is called by the run(IProgressMonitor monitor) method, which in turn is called by resolveFilterString.

As per IRunnableWithProgress rules:

YOU MUST OVERRIDE THIS IF YOU SUPPORT FILTERS!

Throws:
InvocationTargetException
InterruptedException

internalResolveFilterStrings

public Object[] internalResolveFilterStrings(IProgressMonitor monitor,
                                             String[] filterStrings)
                                      throws InvocationTargetException,
                                             InterruptedException
Resolve multiple absolute filter strings. This is only applicable if the subsystem factory reports true for supportsFilters().

This is the same as resolveFilterString(String,Shell) but takes an array of filter strings versus a single filter string.

The default implementation of this simply calls resolveFilterString(String,Shell) once for each filter string, and concatenates the result. The method sortResolvedFilterStringObject is called on the concatenated result, given subclasses an opportunity to sort the result.

After successful resolve, the sort method is called to sort the concatenated results before returning them.

Parameters:
monitor - the progress monitor we are running under
filterStrings - array of filter patterns for objects to return.
Returns:
Array of objects that are the result of resolving all the filter strings
Throws:
InvocationTargetException
InterruptedException

addResolvedFilterStringObjects

protected void addResolvedFilterStringObjects(Vector allChildrenSoFar,
                                              Object[] childrenForThisFilterString,
                                              String[] allFilterStrings,
                                              int currFilterStringIndex)
Overridable extension point for adding the results of a filter string to the overall list of results.

Can be used to filter out redundant entries in the concatenated list, if this is desired.


internalResolveFilterString

protected Object[] internalResolveFilterString(IProgressMonitor monitor,
                                               Object parent,
                                               String filterString)
                                        throws InvocationTargetException,
                                               InterruptedException
Resolve a relative filter string.

When a user expands a remote resource this method is invoked and the results are potentially sorted and displayed to the user. You can affect the sorting behaviour by overriding sortResolvedFilterStringObjects(Object[]) if you desire to sort the result, say, or pick our redundancies.

The resulting objects are displayed in the tree in the Remote System view. There are two requirements on the returned objects:

  1. They must implement IAdaptable.
  2. Their must be an RSE remote-adapter registered for the object's class or interface type. Further, if this subsystem is visible in the RSE, which is the default, then there must also be an RSE GUI-adapter registered with the platform. The base class implementation of this interface is AbstractSystemViewAdapter.

A good place to start with your remote-resource classes to subclasss AbstractResource, as it already implements IAdaptable, and maintains a reference to this owning subsystem, which helps when implementing the remote-adapter.

Be sure to register your adapter factory in your plugin's startup method.

This is called by the run(IProgressMonitor monitor) method, which in turn is called by resolveFilterString.

As per IRunnableWithProgress rules:

YOU MUST OVERRIDE THIS IF YOU SUPPORT FILTERS!

Throws:
InvocationTargetException
InterruptedException

getFirstParentFilterString

protected String getFirstParentFilterString(Object parent)
Called by resolveFilterString when given null for the filter string, meaning we defer getting a filter string until later, where we query it from the parent. In this case we need the first filter string for the progress monitor msg.
Override if needed. By default we return "*";


internalRunCommand

protected Object[] internalRunCommand(IProgressMonitor monitor,
                                      String cmd,
                                      Object context)
                               throws InvocationTargetException,
                                      InterruptedException,
                                      SystemMessageException
Actually run a remote command. This is called by the run(IProgressMonitor monitor) method, which in turn is called by runCommand(...).

As per IRunnableWithProgress rules:

YOU MUST OVERRIDE THIS IF YOU SUPPORT COMMANDS!

Throws:
InvocationTargetException
InterruptedException
SystemMessageException

internalRunCommand

protected Object[] internalRunCommand(IProgressMonitor monitor,
                                      String cmd,
                                      Object context,
                                      boolean interpretOutput)
                               throws InvocationTargetException,
                                      InterruptedException,
                                      SystemMessageException
Actually run a remote command. This is called by the run(IProgressMonitor monitor) method, which in turn is called by runCommand(...).

As per IRunnableWithProgress rules:

YOU MUST OVERRIDE THIS IF YOU SUPPORT COMMANDS!

Throws:
InvocationTargetException
InterruptedException
SystemMessageException

internalRunShell

protected IRemoteCommandShell internalRunShell(IProgressMonitor monitor,
                                               Object context)
                                        throws InvocationTargetException,
                                               InterruptedException,
                                               SystemMessageException
Throws:
InvocationTargetException
InterruptedException
SystemMessageException

internalCancelShell

protected void internalCancelShell(IProgressMonitor monitor,
                                   Object command)
                            throws InvocationTargetException,
                                   InterruptedException
Throws:
InvocationTargetException
InterruptedException

internalRemoveShell

protected void internalRemoveShell(Object command)
                            throws InvocationTargetException,
                                   InterruptedException
Throws:
InvocationTargetException
InterruptedException

internalSendCommandToShell

protected void internalSendCommandToShell(IProgressMonitor monitor,
                                          String cmd,
                                          Object command)
                                   throws InvocationTargetException,
                                          InterruptedException
Throws:
InvocationTargetException
InterruptedException

internalGetProperty

protected String internalGetProperty(IProgressMonitor monitor,
                                     Object subject,
                                     String key)
                              throws InvocationTargetException,
                                     InterruptedException
Actually get a remote property. This is called by the run(IProgressMonitor monitor) method, which in turn is called by getProperty(...).

As per IRunnableWithProgress rules:

YOU MUST OVERRIDE THIS IF YOU SUPPORT PROPERTIES!

Throws:
InvocationTargetException
InterruptedException

internalSetProperty

protected Object internalSetProperty(IProgressMonitor monitor,
                                     Object subject,
                                     String key,
                                     String value)
                              throws InvocationTargetException,
                                     InterruptedException
Actually set a remote property. This is called by the run(IProgressMonitor monitor) method, which in turn is called by setProperty(...).

As per IRunnableWithProgress rules:

YOU MUST OVERRIDE THIS IF YOU SUPPORT PROPERTIES!

Throws:
InvocationTargetException
InterruptedException

internalGetProperties

protected String[] internalGetProperties(IProgressMonitor monitor,
                                         Object subject,
                                         String[] keys)
                                  throws InvocationTargetException,
                                         InterruptedException
Actually get multiple remote properties. This is called by the run(IProgressMonitor monitor) method, which in turn is called by getProperties(...).

As per IRunnableWithProgress rules:

YOU MUST OVERRIDE THIS IF YOU SUPPORT PROPERTIES!

Throws:
InvocationTargetException
InterruptedException

internalSetProperties

protected Object internalSetProperties(IProgressMonitor monitor,
                                       Object subject,
                                       String[] keys,
                                       String[] values)
                                throws InvocationTargetException,
                                       InterruptedException
Actually set multiple remote properties. This is called by the run(IProgressMonitor monitor) method, which in turn is called by setProperties(...).

As per IRunnableWithProgress rules:

YOU MUST OVERRIDE THIS IF YOU SUPPORT PROPERTIES!

Throws:
InvocationTargetException
InterruptedException

setSaveFileName

public void setSaveFileName(String name)
Set the unqualified file name to save this subsystem to. If you don't call this, the default is to use the parent subsystem's factory ID.

It is important the name end with "_subsystem", so we can deduce it is a subsystem file, so this will be appended if not found.

Specified by:
setSaveFileName in interface SubSystem

getSaveFileName

public String getSaveFileName()
Return the unqualified file name to save this subsystem to. It does not have the ".xmi" extension, that is added by the caller.

In release 1.0, returned getName(). However, this is a translated name hence caused problems in a multi-linqual team environment.

As of release 2.0, this now returns the last part of the id of the parent factory, plus "_subsystem". For example, for "ibm.filesLocal" it returns "filesLocal_subsystem".

This can be overridden by calling setSaveFileName.

Specified by:
getSaveFileName in interface SubSystem

getUDActionSubsystem

public SystemUDActionSubsystem getUDActionSubsystem()
Defer to our subsystem factory, the request to get its singleton instance of the user defined action subsystem class.

Specified by:
getUDActionSubsystem in interface SubSystem

getRunnableContext

protected IRunnableContext getRunnableContext(Shell rshell)
Get the progress monitor dialog for this operation. We try to use one for all phases of a single operation, such as connecting and resolving.


getShell

protected Shell getShell()
Return the shell for the current operation


getActiveWorkbenchShell

public static Shell getActiveWorkbenchShell()
Helper/convenience method. Return shell of active window.


getActiveWorkbenchWindow

public static IWorkbenchWindow getActiveWorkbenchWindow()
Helper/convenience method. Return active window


getName

public String getName()
Private. Do not override.

Specified by:
getName in interface SubSystem
Returns:
The value of the Name attribute

setName

public void setName(String newName)
Private. Do not override.

Specified by:
setName in interface SubSystem
Parameters:
newName - The new value of the Name attribute

getPort

public Integer getPort()
Private. Do not override.

Specified by:
getPort in interface SubSystem
Returns:
The value of the Port attribute

setPort

public void setPort(Integer newPort)
Private. Do not override or call.

NOTE: YOU SHOULD USUALLY NOT CALL THIS. RATHER YOU SHOULD USUALLY CALL: SubSystemFactory.updateSubSystem(Shell,SubSystem,boolean,String,boolean,Integer).

Specified by:
setPort in interface SubSystem
Parameters:
newPort - The new value of the Port attribute

getFactoryId

public String getFactoryId()
Private. Do not override.

Specified by:
getFactoryId in interface SubSystem
Returns:
The value of the FactoryId attribute Ties this subsystem to its owning subsystemfactory, via the id key string of the factory

setFactoryId

public void setFactoryId(String newFactoryId)
Private. Do not override.

Specified by:
setFactoryId in interface SubSystem
Parameters:
newFactoryId - The new value of the FactoryId attribute

isHidden

public boolean isHidden()
Private. Do not override.

Specified by:
isHidden in interface SubSystem
Returns:
The value of the Hidden attribute

setHidden

public void setHidden(boolean newHidden)
Private. Do not override.

Specified by:
setHidden in interface SubSystem
Parameters:
newHidden - The new value of the Hidden attribute

getFilterPoolReferenceManager

public SystemFilterPoolReferenceManager getFilterPoolReferenceManager()
Private. Do not override.

Specified by:
getFilterPoolReferenceManager in interface SubSystem
Returns:
The FilterPoolReferenceManager reference

basicSetFilterPoolReferenceManager

public NotificationChain basicSetFilterPoolReferenceManager(SystemFilterPoolReferenceManager newFilterPoolReferenceManager,
                                                            NotificationChain msgs)


setFilterPoolReferenceManager

public void setFilterPoolReferenceManager(SystemFilterPoolReferenceManager newFilterPoolReferenceManager)
Private. Do not override.

Specified by:
setFilterPoolReferenceManager in interface SubSystem

eInverseRemove

public NotificationChain eInverseRemove(InternalEObject otherEnd,
                                        int featureID,
                                        Class baseClass,
                                        NotificationChain msgs)


eGet

public Object eGet(EStructuralFeature eFeature,
                   boolean resolve)


eIsSet

public boolean eIsSet(EStructuralFeature eFeature)
Private. Do not call or override.


eSet

public void eSet(EStructuralFeature eFeature,
                 Object newValue)
Private. Do not call or override.


eUnset

public void eUnset(EStructuralFeature eFeature)
Private. Do not call or override.


toString

public String toString()

getUserIdGen

public String getUserIdGen()
Private. Do not call or override.


setUserIdGen

public void setUserIdGen(String newUserId)
Private. Do not call or override.


getVendorAttributes

public String getVendorAttributes()
Private. Do not call or override.
See instead getVendorAttribute(String,String)

Specified by:
getVendorAttributes in interface SubSystem
Returns:
The value of the VendorAttributes attribute Used to store vendor-supplied attributes via vendor___attr=value values, each semicolon separated. Vendors should not call this directly, but rather call setVendorAttribute and getVendorAttribute

setVendorAttributes

public void setVendorAttributes(String newVendorAttributes)
Private. Do not call or override.
See instead setVendorAttribute(String,String,String)

Specified by:
setVendorAttributes in interface SubSystem
Parameters:
newVendorAttributes - The new value of the VendorAttributes attribute

unsetVendorAttributes

public void unsetVendorAttributes()
Private. Do not call or override.

Specified by:
unsetVendorAttributes in interface SubSystem

isSetVendorAttributes

public boolean isSetVendorAttributes()
Private. Do not call or override.

Specified by:
isSetVendorAttributes in interface SubSystem
Returns:
true if the VendorAttributes attribute has been set

getAdditionalAttributes

public String getAdditionalAttributes()
Private. Do not call or override.

Specified by:
getAdditionalAttributes in interface SubSystem
Returns:
The value of the AdditionalAttributes attribute

setAdditionalAttributes

public void setAdditionalAttributes(String newAdditionalAttributes)
Private. Do not call or override.

Specified by:
setAdditionalAttributes in interface SubSystem
Parameters:
newAdditionalAttributes - The new value of the AdditionalAttributes attribute

unsetAdditionalAttributes

public void unsetAdditionalAttributes()
Private. Do not call or override.

Specified by:
unsetAdditionalAttributes in interface SubSystem

isSetAdditionalAttributes

public boolean isSetAdditionalAttributes()
Private. Do not call or override.

Specified by:
isSetAdditionalAttributes in interface SubSystem
Returns:
true if the AdditionalAttributes attribute has been set

isUseSSL

public boolean isUseSSL()
Private. Do not call or override.

Specified by:
isUseSSL in interface SubSystem
Returns:
The value of the UseSSL attribute Use secure socket layer when making connection

getPrimarySubSystem

public SubSystem getPrimarySubSystem()
Description copied from interface: SubSystem
Return the primary subsystem associated with this subsystem's ISystem

Specified by:
getPrimarySubSystem in interface SubSystem

setUseSSL

public void setUseSSL(boolean newUseSSL)
Private. Do not override.

Specified by:
setUseSSL in interface SubSystem
Parameters:
newUseSSL - The new value of the UseSSL attribute

getIbmAttributes

public String getIbmAttributes()
Private. Do not call or override.
See instead getIBMAttribute(String)

Specified by:
getIbmAttributes in interface SubSystem
Returns:
The value of the IbmAttributes attribute These are reserved for IBM, for subclasses that do not use MOF. Special methods are used to set and get attributes by key, all of which are stuffed into this one string

setIbmAttributes

public void setIbmAttributes(String newIbmAttributes)
Private. Do not call or override.
See instead setIBMAttribute(String,String)

Specified by:
setIbmAttributes in interface SubSystem
Parameters:
newIbmAttributes - The new value of the IbmAttributes attribute

unsetIbmAttributes

public void unsetIbmAttributes()
Private. Do not call or override.

Specified by:
unsetIbmAttributes in interface SubSystem

isSetIbmAttributes

public boolean isSetIbmAttributes()
Private. Do not call or override.

Specified by:
isSetIbmAttributes in interface SubSystem
Returns:
true if the IbmAttributes attribute has been set

getRemoteServerLauncher

public ServerLauncher getRemoteServerLauncher()

Specified by:
getRemoteServerLauncher in interface SubSystem
Returns:
the value of the 'Remote Server Launcher' containment reference.
See Also:
SubSystem.setRemoteServerLauncher(ServerLauncher), SubsystemsPackage.getSubSystem_RemoteServerLauncher(), ServerLauncher.getParentSubSystem()

basicSetRemoteServerLauncher

public NotificationChain basicSetRemoteServerLauncher(ServerLauncher newRemoteServerLauncher,
                                                      NotificationChain msgs)


setRemoteServerLauncher

public void setRemoteServerLauncher(ServerLauncher newRemoteServerLauncher)

Specified by:
setRemoteServerLauncher in interface SubSystem
Parameters:
newRemoteServerLauncher - the new value of the 'Remote Server Launcher' containment reference.
See Also:
SubSystem.getRemoteServerLauncher()

eInverseAdd

public NotificationChain eInverseAdd(InternalEObject otherEnd,
                                     int featureID,
                                     Class baseClass,
                                     NotificationChain msgs)


getTargetForFilter

public Object getTargetForFilter(SystemFilterReference filterRef)
Description copied from interface: SubSystem
Returns the parent object associated with a filter reference. It's up to the subsystem implementation to decide what "parent object" means for a filter reference.

Specified by:
getTargetForFilter in interface SubSystem
Parameters:
filterRef - the filter reference to determine a target object from.
Returns:

Remote Systems
v6.4.1

Copyright © 2005 IBM Corp. All Rights Reserved.

Note: This documentation is for part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.