|
org.eclipse.rse.subsystems.files.core.subsystems
Class RemoteFileSubSystem
java.lang.Object
org.eclipse.rse.core.model.RSEPersistableObject
org.eclipse.rse.core.model.PropertySetContainer
org.eclipse.rse.core.model.RSEModelObject
org.eclipse.rse.core.subsystems.SubSystem
org.eclipse.rse.subsystems.files.core.subsystems.RemoteFileSubSystem
-
All Implemented Interfaces:
-
IAdaptable,
ISchedulingRule,
ISystemFilterPoolReferenceManagerProvider,
IPropertySetContainer,
IRSEModelObject,
IRSEPersistableContainer,
ICommunicationsListener,
IRemoteObjectResolver,
ISubSystem,
IRemoteFileSubSystem
-
Direct Known Subclasses:
-
FileServiceSubSystem
-
public abstract class RemoteFileSubSystem
- extends
SubSystem
- implements
IRemoteFileSubSystem,
ICommunicationsListener
Specialization for file subsystem factories.
It is subclassed via use of a Rose model and MOF/EMF, or better yet
by subclassing
FileServiceSubSystem .
For your convenience, there is built-in name filtering support. To use it,
call:
This class returns instances of
RemoteFile objects.
Nested classes/interfaces inherited from class org.eclipse.rse.core.subsystems.
SubSystem
|
SubSystem.ChangeStatusJob,
SubSystem.ConnectJob,
SubSystem.DisconnectJob,
SubSystem.DisplayErrorMessageJob,
SubSystem.GetPropertiesJob,
SubSystem.GetPropertyJob,
SubSystem.ResolveAbsoluteJob,
SubSystem.ResolveAbsolutesJob,
SubSystem.ResolveRelativeJob,
SubSystem.SetPropertiesJob,
SubSystem.SetPropertyJob,
SubSystem.SubSystemOperationJob,
SubSystem.SystemMessageDialogRunnable
|
Fields inherited from class org.eclipse.rse.core.subsystems.
SubSystem
|
_connectionError,
_connectorService,
_disconnecting,
_hidden,
_host,
_name,
_subsystemConfigurationId,
cancelable,
doConnection,
filterPoolReferenceManager,
OPERATION_CANCEL_SHELL,
OPERATION_CONNECT,
OPERATION_DISCONNECT,
OPERATION_GET_PROPERTIES,
OPERATION_GET_PROPERTY,
OPERATION_REMOVE_SHELL,
OPERATION_RESOLVE_ABSOLUTE,
OPERATION_RESOLVE_ABSOLUTES,
OPERATION_RESOLVE_RELATIVE,
OPERATION_RUN_COMMAND,
OPERATION_RUN_SHELL,
OPERATION_SEND_COMMAND_TO_SHELL,
OPERATION_SET_PROPERTIES,
OPERATION_SET_PROPERTY,
parentSubSystemConfiguration,
pmDialog,
previousUserIdKey,
runInThread,
saveFileName,
shell,
sortResults,
SUBSYSTEM_FILE_NAME,
supportsConnecting
|
Method Summary
|
protected boolean
|
accept
(
String name,
boolean isFile)
Method to decide if a given folder or file name matches the present criteria. |
protected void
|
addResolvedFilterStringObjects
(
Vector allChildrenSoFar,
Object[] childrenForThisFilterString,
String[] allFilterStrings,
int currFilterStringIndex)
Overridable parent extension point for adding the results of a filter string
to the overall list of results. |
void
|
cacheRemoteFile
(
IRemoteFile file)
Store the IRemoteFile in a hashmap to quick subsequent retrieval |
void
|
cacheRemoteFile
(
IRemoteFile file,
String path)
Store the IRemoteFile in a hashmap to quick subsequent retrieval |
void
|
cancelSearch
(
IHostSearchResultConfiguration searchConfig)
Deprecated. Do not call this method directly since it is not implemented.
|
void
|
communicationsStateChange
(
CommunicationsEvent e)
This method is invoked whenever the communications state is invoked
immediately before and after the state of the communications changes. |
boolean
|
doesFilterMatch
(
ISystemFilter 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
(
ISystemFilterString 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. |
IRemoteFile
|
getCachedRemoteFile
(
String path)
Returns the cached remote file with the specified path. |
protected
RemoteFileContext
|
getContext
(
IRemoteFile parent)
|
protected
RemoteFileContext
|
getContext
(
IRemoteFile parent,
RemoteFileFilterString rffs)
|
protected
RemoteFileFilterString
|
getCurrentFilterString
()
|
protected
RemoteFileContext
|
getDefaultContext
()
|
protected
RemoteFileContext
|
getDefaultContextNoFilterString
()
|
protected
RemoteFileFilterString
|
getFilterStringListRoots
()
|
protected
String
|
getFirstParentFilterString
(
Object parent)
Called by parent when we defer getting a filter string until later, where we query it from
the parent. |
String
|
getLineSeparator
()
Return as a string the line separator. |
InetAddress
|
getLocalAddress
()
Returns the address found by calling InetAddress.getLocalHost() . |
Object
|
getObjectWithAbsoluteName
(
String key,
IProgressMonitor monitor)
Return the object within the subsystem that corresponds to the specified
unique ID. |
String
|
getParentFolderName
(
IRemoteFile folderOrFile)
Given a folder or file, return its parent folder name, fully qualified |
IRemoteFileSubSystemConfiguration
|
getParentRemoteFileSubSystemConfiguration
()
Return parent subsystem factory, cast to a RemoteFileSubSystemConfiguration
Assumes
SubSystem.setSubSystemConfiguration(ISubSystemConfiguration) has already been called. |
String
|
getPathSeparator
()
Return in string format the character used to separate paths. |
char
|
getPathSeparatorChar
()
Return in char format the character used to separate paths. |
PropertyPage
|
getPropertyPage
(
Composite parent)
Return the single property page to show in the tabbed notebook for the
for SubSystem property of the parent Connection. |
String
|
getRemoteEncoding
()
Returns the local platform encoding if the default encoding of the host was not set. |
IRemoteFile[]
|
getRemoteFileObjects
(
String[] folderOrFileNames,
IProgressMonitor monitor)
Given a set of fully qualified file or folder names, return an
ISystemResourceSet object for it. |
IRemoteSearchResult
|
getRemoteSearchResultObject
(
String key)
Given a key, returns a search result object for it. |
String
|
getSeparator
()
Return in string format the character used to separate folders. |
char
|
getSeparatorChar
()
Return in character format the character used to separate folders. |
Object
|
getTargetForFilter
(
ISystemFilterReference filterRef)
Returns the parent object associated with a filter reference. |
int
|
getUnusedPort
()
Returns -1 by default. |
void
|
initializeSubSystem
(
IProgressMonitor monitor)
Initialize this subsystem instance after the corresponding
IConnectorService connect method finishes. |
protected
Object[]
|
internalResolveFilterString
(
Object parent,
String filterString,
IProgressMonitor monitor)
Actually resolve a relative filter string. |
protected
Object[]
|
internalResolveFilterString
(
String filterString,
IProgressMonitor monitor)
Actually resolve an absolute filter string. |
Object[]
|
internalResolveFilterStrings
(
String[] filterStrings,
IProgressMonitor monitor)
Resolves filter strings. |
protected
Object[]
|
internalResolveOneFilterString
(
Object parent,
RemoteFileFilterString fs,
boolean sort,
IProgressMonitor monitor)
Do one filter string relative resolve |
boolean
|
isCaseSensitive
()
Return true if file names are case-sensitive. |
boolean
|
isPassiveCommunicationsListener
()
This method determines if the communications listener is a passive or
active listener. |
boolean
|
isPrimarySubSystem
()
|
IRemoteFile[]
|
list
(
IRemoteFile parent,
int fileType,
IProgressMonitor monitor)
Return a list of all remote folders and files in the given folder. |
IRemoteFile[]
|
list
(
IRemoteFile parent,
IProgressMonitor monitor)
Return a list of all remote folders and files in the given folder. |
IRemoteFile[]
|
list
(
IRemoteFile parent,
String fileNameFilter,
int fileType,
IProgressMonitor monitor)
Return a list of remote folders and files in the given folder. |
IRemoteFile[]
|
listMultiple
(
IRemoteFile[] parents,
int[] fileTypes,
IProgressMonitor monitor)
Return a list of all remote folders and files in the given folder. |
IRemoteFile[]
|
listMultiple
(
IRemoteFile[] parents,
int fileType,
IProgressMonitor monitor)
Return a list of all remote folders and files in the given folder. |
IRemoteFile[]
|
listRoots
(
IProgressMonitor monitor)
Return a list of roots/drives on the remote system |
protected void
|
removeCachedRemoteFile
(
IRemoteFile file)
|
protected void
|
removeCachedRemoteFile
(
String path)
|
static int
|
runLocalCommand
(
String cmd,
Vector lines)
helper method to run an external command |
protected void
|
setListValues
(int includeFilesOrFolders,
String nameFilter)
Method to set variables to affect the folder content subsetting. |
protected void
|
setListValues
(int includeFilesOrFolders,
String folderNameFilter,
String fileNameFilter)
Overloaded method to set variables to affect the folder content subsetting,
when there is separate filters for both folder names and filter names. |
Object[]
|
sortResolvedFilterStringObjects
(
Object[] children)
Sort the concatenated list of all objects returned by resolving one or more
filter strings. |
void
|
uninitializeSubSystem
(
IProgressMonitor monitor)
Uninitialize this subsystem just after disconnect. |
Methods inherited from class org.eclipse.rse.core.subsystems.
SubSystem
|
canSwitchTo,
checkIsConnected,
clearLocalUserId,
commit,
connect,
connect,
contains,
deletingConnection,
disconnect,
disconnect,
displayAsyncMsg,
doesFilterListContentsOf,
doesFilterTypeMatch,
filterEventFilterCreated,
filterEventFilterPoolReferenceCreated,
filterEventFilterPoolReferenceDeleted,
filterEventFilterPoolReferenceRenamed,
filterEventFilterPoolReferenceReset,
filterEventFilterPoolReferencesRePositioned,
filterEventFilterPoolReferencesReset,
filterEventFilterStringCreated,
fireEvent,
fireEvent,
fireEvent,
fireEvent,
fireEvent,
fireEvent,
forceUserIdToUpperCase,
getAdapter,
getCacheManager,
getChildren,
getConfigurationId,
getConnectionOwnedFilterPoolName,
getConnectionPrivateFilterPool,
getConnectorService,
getExecutedCommands,
getFilterPoolReferenceManager,
getFilterReferenceWithAbsoluteName,
getHost,
getHostAliasName,
getHostName,
getInteractionProvider,
getLocalUserId,
getLocalUserId,
getName,
getObjectWithAbsoluteName,
getPersistableChildren,
getPersistableParent,
getPreferencesKey,
getPreferencesKey,
getPrimarySubSystem,
getProperties,
getProperty,
getQueryingMessage,
getQueryingMessage,
getRemoteAttribute,
getResolvingMessage,
getRunnableContext,
getRunningMessage,
getServiceType,
getSettingMessage,
getSettingMessage,
getShell,
getSubSystemConfiguration,
getSystemFilterPoolReferenceManager,
getSystemProfile,
getSystemProfileName,
getTargetsForFilter,
getUniqueOwningSystemFilterPool,
getUserId,
getVendorAttribute,
hasChildren,
implicitConnect,
internalDisconnect,
internalGetProperties,
internalGetProperty,
internalSetProperties,
internalSetProperty,
internalSwitchSubSystemConfiguration,
isConflicting,
isConnected,
isConnectionError,
isHidden,
isOffline,
promptForPassword,
promptForPassword,
renamingConnection,
renamingProfile,
resolveFilterString,
resolveFilterString,
resolveFilterStrings,
scheduleJob,
selectCommandSubSystem,
setConfigurationId,
setConnectionError,
setConnectorService,
setFilterPoolReferenceManager,
setHidden,
setHost,
setInteractionProvider,
setName,
setProperties,
setProperty,
setRemoteAttribute,
setSubSystemConfiguration,
setVendorAttribute,
showConnectCancelledMessage,
showConnectErrorMessage,
showDisconnectCancelledMessage,
showDisconnectErrorMessage,
showOperationCancelledMessage,
showOperationErrorMessage,
showOperationMessage,
supportsCaching,
switchServiceFactory
|
Methods inherited from class java.lang.
Object
|
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
|
Methods inherited from interface org.eclipse.rse.subsystems.files.core.subsystems.
IRemoteFileSubSystem
|
copy,
copyBatch,
createFile,
createFolder,
createFolders,
delete,
deleteBatch,
download,
downloadMultiple,
getInputStream,
getLanguageUtilityFactory,
getOutputStream,
getOutputStream,
getParentFolder,
getRemoteFileObject,
getRemoteFileObject,
list,
listMultiple,
listMultiple,
listRoots,
move,
rename,
search,
setLastModified,
setReadOnly,
supportsEncodingConversion,
upload,
upload,
uploadMultiple,
uploadMultiple
|
Methods inherited from interface org.eclipse.rse.core.subsystems.
ISubSystem
|
canSwitchTo,
checkIsConnected,
clearLocalUserId,
connect,
connect,
deletingConnection,
disconnect,
disconnect,
doesFilterListContentsOf,
forceUserIdToUpperCase,
getCacheManager,
getChildren,
getConfigurationId,
getConnectorService,
getFilterPoolReferenceManager,
getHost,
getHostAliasName,
getLocalUserId,
getName,
getPrimarySubSystem,
getProperties,
getProperty,
getServiceType,
getSubSystemConfiguration,
getSystemFilterPoolReferenceManager,
getSystemProfile,
getSystemProfileName,
getUserId,
getVendorAttribute,
hasChildren,
isConnected,
isConnectionError,
isHidden,
isOffline,
renamingConnection,
renamingProfile,
resolveFilterString,
resolveFilterString,
resolveFilterStrings,
setConfigurationId,
setConnectionError,
setConnectorService,
setFilterPoolReferenceManager,
setHidden,
setHost,
setName,
setProperties,
setProperty,
setSubSystemConfiguration,
setVendorAttribute,
supportsCaching,
switchServiceFactory
|
osVarsSet
public boolean osVarsSet
osWindows
public boolean osWindows
osWindows95
public boolean osWindows95
osWindowsNT
public boolean osWindowsNT
osName
public
String osName
osCmdShell
public
String osCmdShell
matcher
protected
IMatcher matcher
folderNameMatcher
protected
NamePatternMatcher folderNameMatcher
currFilterString
protected
RemoteFileFilterString currFilterString
FILTERSTRING_LISTROOTS
protected
RemoteFileFilterString FILTERSTRING_LISTROOTS
DEFAULT_CONTEXT
protected
RemoteFileContext DEFAULT_CONTEXT
DEFAULT_CONTEXT_NOFILTERSTRING
protected
RemoteFileContext DEFAULT_CONTEXT_NOFILTERSTRING
_searchHistory
protected
ArrayList _searchHistory
_cachedRemoteFiles
protected
HashMap _cachedRemoteFiles
RemoteFileSubSystem
public RemoteFileSubSystem(
IHost host,
IConnectorService connectorService)
- Default constructor. Do not call directly! Rather, use the mof generated factory method to create.
After instantiation, be sure to call
SubSystem.setSubSystemConfiguration(ISubSystemConfiguration) .
isPrimarySubSystem
public boolean isPrimarySubSystem()
-
-
Specified by:
-
isPrimarySubSystem
in interface
ISubSystem
-
Overrides:
-
isPrimarySubSystem
in class
SubSystem
-
-
Returns:
- true if this subsystem's properties should take precedence
over other subsystems that share the same
IConnectorService
getParentRemoteFileSubSystemConfiguration
public
IRemoteFileSubSystemConfiguration getParentRemoteFileSubSystemConfiguration()
- Return parent subsystem factory, cast to a RemoteFileSubSystemConfiguration
Assumes
SubSystem.setSubSystemConfiguration(ISubSystemConfiguration) has already been called.
-
-
Specified by:
-
getParentRemoteFileSubSystemConfiguration
in interface
IRemoteFileSubSystem
-
isCaseSensitive
public boolean isCaseSensitive()
- Return true if file names are case-sensitive. Used when doing name or type filtering
Default is false, but can be overridden.
-
-
Specified by:
-
isCaseSensitive
in interface
IRemoteFileSubSystem
-
getCurrentFilterString
protected
RemoteFileFilterString getCurrentFilterString()
-
-
getFilterStringListRoots
protected
RemoteFileFilterString getFilterStringListRoots()
-
-
getDefaultContext
protected
RemoteFileContext getDefaultContext()
-
-
getDefaultContextNoFilterString
protected
RemoteFileContext getDefaultContextNoFilterString()
-
-
getContext
protected
RemoteFileContext getContext(
IRemoteFile parent)
-
-
getContext
protected
RemoteFileContext getContext(
IRemoteFile parent,
RemoteFileFilterString rffs)
-
-
getSeparator
public
String getSeparator()
- Return in string format the character used to separate folders. Eg, "\" or "/".
Shortcut to
getParentRemoteFileSubSystemConfiguration() .getSeparator()
-
-
Specified by:
-
getSeparator
in interface
IRemoteFileSubSystem
-
getSeparatorChar
public char getSeparatorChar()
- Return in character format the character used to separate folders. Eg, "\" or "/"
Shortcut to
getParentRemoteFileSubSystemConfiguration() .getSeparatorChar()
-
-
Specified by:
-
getSeparatorChar
in interface
IRemoteFileSubSystem
-
getPathSeparator
public
String getPathSeparator()
- Return in string format the character used to separate paths. Eg, ";" or ":"
Shortcut to
getParentRemoteFileSubSystemConfiguration() .getPathSeparator()
-
-
Specified by:
-
getPathSeparator
in interface
IRemoteFileSubSystem
-
getPathSeparatorChar
public char getPathSeparatorChar()
- Return in char format the character used to separate paths. Eg, ";" or ":"
Shortcut to
getParentRemoteFileSubSystemConfiguration() .getPathSeparatorChar()
-
-
Specified by:
-
getPathSeparatorChar
in interface
IRemoteFileSubSystem
-
getLineSeparator
public
String getLineSeparator()
- Return as a string the line separator.
Shortcut to
getParentRemoteFileSubSystemConfiguration() .getLineSeparator()
-
-
Specified by:
-
getLineSeparator
in interface
IRemoteFileSubSystem
-
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 SubSystemPortPrompt widget.
-
-
Overrides:
-
getPropertyPage
in class
SubSystem
-
doesFilterMatch
public boolean doesFilterMatch(
ISystemFilter filter,
String remoteObjectAbsoluteName)
-
Description copied from class:
SubSystem
- 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
ISubSystem
-
Overrides:
-
doesFilterMatch
in class
SubSystem
-
-
See Also:
-
SubSystem.doesFilterMatch(org.eclipse.rse.core.filters.ISystemFilter, java.lang.String)
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.
There is a hack here if you want to tell us the absolute name is that of a folder: append " -folder" to the name!
-
-
Specified by:
-
doesFilterStringMatch
in interface
ISubSystem
-
Overrides:
-
doesFilterStringMatch
in class
SubSystem
-
doesFilterStringListContentsOf
public boolean doesFilterStringListContentsOf(
ISystemFilterString 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
ISubSystem
-
Overrides:
-
doesFilterStringListContentsOf
in class
SubSystem
-
internalResolveFilterStrings
public
Object[] internalResolveFilterStrings(
String[] filterStrings,
IProgressMonitor monitor)
throws
InvocationTargetException,
InterruptedException
- Resolves filter strings.
The default implementation of this simply calls
internalResolveFilterString(String, IProgressMonitor) .
If the result for each filter string is a SystemMessage (e.g. an error), then the messages are returned.
If the result for any filter string is not a message (i.e. an array of children), then the children are returned,
and the messages are not. This avoids mixing chuldren as a result of successful resolution of a filter string with
messages that might result for other filter strings.
So the returned results are always the successful results, or messages (never a mix of the two).
-
-
Overrides:
-
internalResolveFilterStrings
in class
SubSystem
-
-
Parameters:
-
filterStrings - array of filter patterns for objects to return. -
monitor - the progress monitor we are running under
-
Returns:
- Array of objects that are the result of resolving all the filter strings
-
Throws:
-
InvocationTargetException
-
InterruptedException
-
See Also:
-
SubSystem.internalResolveFilterStrings(java.lang.String[], org.eclipse.core.runtime.IProgressMonitor)
addResolvedFilterStringObjects
protected void addResolvedFilterStringObjects(
Vector allChildrenSoFar,
Object[] childrenForThisFilterString,
String[] allFilterStrings,
int currFilterStringIndex)
- Overridable parent 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.
-
-
Overrides:
-
addResolvedFilterStringObjects
in class
SubSystem
-
internalResolveFilterString
protected
Object[] internalResolveFilterString(
String filterString,
IProgressMonitor monitor)
throws
InvocationTargetException,
InterruptedException
- Actually resolve an absolute filter string. This is called by the
run(IProgressMonitor monitor) method, which in turn is called by resolveFilterString.
-
-
Overrides:
-
internalResolveFilterString
in class
SubSystem
-
-
Throws:
-
InvocationTargetException
-
InterruptedException
-
See Also:
-
SubSystem.internalResolveFilterString(String,IProgressMonitor)
sortResolvedFilterStringObjects
public
Object[] sortResolvedFilterStringObjects(
Object[] children)
- 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.
-
-
Overrides:
-
sortResolvedFilterStringObjects
in class
SubSystem
-
getFirstParentFilterString
protected
String getFirstParentFilterString(
Object parent)
- Called by parent when 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.
-
-
Overrides:
-
getFirstParentFilterString
in class
SubSystem
-
internalResolveFilterString
protected
Object[] internalResolveFilterString(
Object parent,
String filterString,
IProgressMonitor monitor)
throws
InvocationTargetException,
InterruptedException
- Actually resolve a relative filter string. This is called by the
run(IProgressMonitor monitor) method, which in turn is called by resolveFilterString.
As per IRunnableWithProgress rules:
- if the user cancels (monitor.isCanceled()), throw new InterruptedException()
- if something else bad happens, throw new java.lang.reflect.InvocationTargetException(exc);
- do not worry about calling monitor.done() ... caller will do that!
YOU MUST OVERRIDE THIS IF YOU SUPPORT FILTERS!
-
-
Overrides:
-
internalResolveFilterString
in class
SubSystem
-
-
Throws:
-
InvocationTargetException
-
InterruptedException
internalResolveOneFilterString
protected
Object[] internalResolveOneFilterString(
Object parent,
RemoteFileFilterString fs,
boolean sort,
IProgressMonitor monitor)
throws
InvocationTargetException,
InterruptedException,
SystemMessageException
- Do one filter string relative resolve
-
-
-
Throws:
-
InvocationTargetException
-
InterruptedException
-
SystemMessageException
listRoots
public
IRemoteFile[] listRoots(
IProgressMonitor monitor)
throws
InterruptedException
- Return a list of roots/drives on the remote system
-
-
Specified by:
-
listRoots
in interface
IRemoteFileSubSystem
-
-
Throws:
-
InterruptedException
listMultiple
public
IRemoteFile[] listMultiple(
IRemoteFile[] parents,
int[] fileTypes,
IProgressMonitor monitor)
throws
SystemMessageException
- Return a list of all remote folders and files in the given folder. The
list is not subsetted.
-
-
Specified by:
-
listMultiple
in interface
IRemoteFileSubSystem
-
-
Parameters:
-
parents - The parent folders to list folders and files in -
fileTypes - - indicates whether to query files, folders, both or
some other type -
monitor - the progress monitor
-
Throws:
-
SystemMessageException
-
Since:
- 3.0
listMultiple
public
IRemoteFile[] listMultiple(
IRemoteFile[] parents,
int fileType,
IProgressMonitor monitor)
throws
SystemMessageException
- Return a list of all remote folders and files in the given folder. The
list is not subsetted.
-
-
Specified by:
-
listMultiple
in interface
IRemoteFileSubSystem
-
-
Parameters:
-
parents - The parent folders to list folders and files in -
fileType - - indicates whether to query files, folders, both or some
other type -
monitor - the progress monitor
-
Throws:
-
SystemMessageException
-
Since:
- 3.0
list
public
IRemoteFile[] list(
IRemoteFile parent,
IProgressMonitor monitor)
throws
SystemMessageException
- Return a list of all remote folders and files in the given folder. The
list is not subsetted.
-
-
Specified by:
-
list
in interface
IRemoteFileSubSystem
-
-
Parameters:
-
parent - The parent folder to list folders and files in -
monitor - the progress monitor
-
Throws:
-
SystemMessageException
-
Since:
- 3.0 renamed from listFoldersAndFiles()
list
public
IRemoteFile[] list(
IRemoteFile parent,
int fileType,
IProgressMonitor monitor)
throws
SystemMessageException
- Return a list of all remote folders and files in the given folder. The
list is not subsetted.
-
-
Specified by:
-
list
in interface
IRemoteFileSubSystem
-
-
Parameters:
-
parent - The parent folder to list folders and files in -
fileType - the type of file -
monitor - the monitor
-
Throws:
-
SystemMessageException
-
Since:
- 3.0 using int fileType parameter
list
public
IRemoteFile[] list(
IRemoteFile parent,
String fileNameFilter,
int fileType,
IProgressMonitor monitor)
throws
SystemMessageException
- Return a list of remote folders and files in the given folder.
The files part of the list is subsetted by the given file name filter. It
can be null for no subsetting.
-
-
Specified by:
-
list
in interface
IRemoteFileSubSystem
-
-
Parameters:
-
parent - The parent folder to list folders and files in -
fileNameFilter - The name pattern to subset the file list by, or
null to return all files. -
fileType - the type of file -
monitor - the monitor
-
Throws:
-
SystemMessageException
-
Since:
- 3.0 using int fileType parameter
getParentFolderName
public
String getParentFolderName(
IRemoteFile folderOrFile)
- Given a folder or file, return its parent folder name, fully qualified
-
-
Specified by:
-
getParentFolderName
in interface
IRemoteFileSubSystem
-
-
Parameters:
-
folderOrFile - folder or file to return parent of.
getRemoteSearchResultObject
public
IRemoteSearchResult getRemoteSearchResultObject(
String key)
throws
SystemMessageException
-
Description copied from interface:
IRemoteFileSubSystem
- Given a key, returns a search result object for it. For the key, see <
-
-
Specified by:
-
getRemoteSearchResultObject
in interface
IRemoteFileSubSystem
-
-
Parameters:
-
key - the key that uniquely identifies a search result.
-
Throws:
-
SystemMessageException
getRemoteFileObjects
public
IRemoteFile[] getRemoteFileObjects(
String[] folderOrFileNames,
IProgressMonitor monitor)
throws
SystemMessageException
- Given a set of fully qualified file or folder names, return an
ISystemResourceSet object for it. Overrideable Override this
method to provide optimized implementation
-
-
Specified by:
-
getRemoteFileObjects
in interface
IRemoteFileSubSystem
-
-
Parameters:
-
folderOrFileNames - Fully qualified folder or file names -
monitor - the progress monitor
-
Returns:
- the set of resources
-
Throws:
-
SystemMessageException
-
Since:
- 3.0
getObjectWithAbsoluteName
public
Object getObjectWithAbsoluteName(
String key,
IProgressMonitor monitor)
throws
Exception
- Return the object within the subsystem that corresponds to the specified
unique ID.
For remote files, assuming the key is the absolute path of a file, this
is simply a wrapper to getRemoteFileObject().
-
-
Specified by:
-
getObjectWithAbsoluteName
in interface
IRemoteObjectResolver
-
Overrides:
-
getObjectWithAbsoluteName
in class
SubSystem
-
-
Parameters:
-
key - the unique id of the remote object. Must not be
null . -
monitor - the progress monitor
-
Returns:
- the remote object instance, or
null if no object is
found with the given id.
-
Throws:
-
Exception
- in case an error occurs contacting the remote system
while retrieving the requested remote object. Extenders are
encouraged to throw
SystemMessageException in order to
support good user feedback in case of errors. Since exceptions
should only occur while retrieving new remote objects during
startup, clients are typically allowed to ignore these exceptions
and treat them as if the remote object were simply not there. -
See Also:
-
SubSystem.getObjectWithAbsoluteName(String, IProgressMonitor)
setListValues
protected void setListValues(int includeFilesOrFolders,
String nameFilter)
- Method to set variables to affect the folder content subsetting.
Use this when only listing either files or folders, but not both.
-
-
-
Parameters:
-
includeFilesOrFolders - A constant from
IFileConstants
-
nameFilter - The pattern to filter the file or folder names by. Can be null to include all.
setListValues
protected void setListValues(int includeFilesOrFolders,
String folderNameFilter,
String fileNameFilter)
- Overloaded method to set variables to affect the folder content subsetting,
when there is separate filters for both folder names and filter names.
-
-
-
Parameters:
-
includeFilesOrFolders - A constant from
IFileConstants
-
folderNameFilter - The pattern to filter the folder names by. Can be null to include all folders -
fileNameFilter - The pattern to filter the file names by. Can be null to include all files
accept
protected boolean accept(
String name,
boolean isFile)
- Method to decide if a given folder or file name matches the present criteria.
You must have previously called
setListValues(int, String) or
setListValues(int, String, String)
-
-
-
Parameters:
-
name - The file or folder name to test -
isFile - true if this is a file name, false if it is a folder name.
-
Returns:
- true if the name matches the previously specified criteria
runLocalCommand
public static int runLocalCommand(
String cmd,
Vector lines)
throws
Exception
- helper method to run an external command
-
-
-
Throws:
-
Exception
initializeSubSystem
public void initializeSubSystem(
IProgressMonitor monitor)
throws
SystemMessageException
-
Description copied from class:
SubSystem
- Initialize this subsystem instance after the corresponding
IConnectorService connect method finishes. This method should be
overridden if any initialization for the subsystem needs to occur at this
time.
The default implementation currently does nothing, but overriding methods
should call super before doing any other work.
-
-
Specified by:
-
initializeSubSystem
in interface
ISubSystem
-
Overrides:
-
initializeSubSystem
in class
SubSystem
-
-
Parameters:
-
monitor - a progress monitor that can be used to show progress
during long-running operation. Cancellation is typically not
supported since it might leave the system in an inconsistent
state.
-
Throws:
-
SystemMessageException
- if an error occurs during initialization.
uninitializeSubSystem
public void uninitializeSubSystem(
IProgressMonitor monitor)
-
Description copied from class:
SubSystem
- Uninitialize this subsystem just after disconnect. The default
implementation currently does nothing. Overriding methods should call
super after doing their own work.
-
-
Specified by:
-
uninitializeSubSystem
in interface
ISubSystem
-
Overrides:
-
uninitializeSubSystem
in class
SubSystem
-
-
Parameters:
-
monitor - a progress monitor that can be used to show progress
during long-running operation. Cancellation is typically not
supported since it might leave the system in an inconsistent
state.
cacheRemoteFile
public void cacheRemoteFile(
IRemoteFile file,
String path)
- Store the IRemoteFile in a hashmap to quick subsequent retrieval
-
-
-
Parameters:
-
file - the file
cacheRemoteFile
public void cacheRemoteFile(
IRemoteFile file)
- Store the IRemoteFile in a hashmap to quick subsequent retrieval
-
-
-
Parameters:
-
file - the file
getCachedRemoteFile
public
IRemoteFile getCachedRemoteFile(
String path)
- Returns the cached remote file with the specified path. If no such file
is found, returns null
-
-
-
Parameters:
-
path -
-
Returns:
- the cached file, if found in the cache, else null
removeCachedRemoteFile
protected void removeCachedRemoteFile(
IRemoteFile file)
-
-
removeCachedRemoteFile
protected void removeCachedRemoteFile(
String path)
-
-
communicationsStateChange
public void communicationsStateChange(
CommunicationsEvent e)
-
Description copied from interface:
ICommunicationsListener
- This method is invoked whenever the communications state is invoked
immediately before and after the state of the communications changes.
The state field in CommunicationsEvent determines which state
change is about to or has occurred.
-
-
Specified by:
-
communicationsStateChange
in interface
ICommunicationsListener
-
isPassiveCommunicationsListener
public boolean isPassiveCommunicationsListener()
-
Description copied from interface:
ICommunicationsListener
- This method determines if the communications listener is a passive or
active listener. Typically a passive listener registers with the communications
system and responds to events as they occur. An active listener typically
registers with the communications system only for the duration of the task (i.e.
user editing a file, or outstanding communications request.)
The user will be prompted on a disconnect if there are any active communication
listeners registered.
-
-
Specified by:
-
isPassiveCommunicationsListener
in interface
ICommunicationsListener
-
-
Returns:
- false if the communications listener is an active listener, true if the
communications listener is a passive listener.
-
See Also:
-
ICommunicationsListener.isPassiveCommunicationsListener()
getUnusedPort
public int getUnusedPort()
- Returns -1 by default. Subclasses should override if necessary.
-
-
Specified by:
-
getUnusedPort
in interface
IRemoteFileSubSystem
-
-
Returns:
- an unused port number on the host, or -1 if none could be found.
-
See Also:
-
IRemoteFileSubSystem.getUnusedPort()
getLocalAddress
public
InetAddress getLocalAddress()
- Returns the address found by calling
InetAddress.getLocalHost() . If that
call returns the local loopback address, it returns null .
Subclasses should reimplement to handle cases where systems have multiple IP addresses due
to multiple network cards or VPN. This method should return an address
that is usable from the remote system to connect back to the local system.
-
-
Specified by:
-
getLocalAddress
in interface
IRemoteFileSubSystem
-
-
Returns:
- the local TCP/IP address accessible from the remote system, or
null if
no address can be resolved. -
See Also:
-
IRemoteFileSubSystem.getLocalAddress()
getTargetForFilter
public
Object getTargetForFilter(
ISystemFilterReference filterRef)
-
Description copied from interface:
ISubSystem
- 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
ISubSystem
-
Overrides:
-
getTargetForFilter
in class
SubSystem
-
-
Parameters:
-
filterRef - the filter reference to determine a target object from.
-
Returns:
- An object representing the parent
cancelSearch
public void cancelSearch(
IHostSearchResultConfiguration searchConfig)
-
Deprecated. Do not call this method directly since it is not implemented.
- Given a search configuration, cancel the search.
-
-
Specified by:
-
cancelSearch
in interface
IRemoteFileSubSystem
-
-
Parameters:
-
searchConfig - a search configuration.
getRemoteEncoding
public
String getRemoteEncoding()
- Returns the local platform encoding if the default encoding of the host was not set.
Subclasses should override to return the actual remote encoding.
-
-
Specified by:
-
getRemoteEncoding
in interface
IRemoteFileSubSystem
-
-
Returns:
- the encoding of the remote system.
-
See Also:
-
IRemoteFileSubSystem.getRemoteEncoding()
Copyright (c) IBM Corporation and others 2000, 2008. All Rights Reserved.
|
|