diff --git a/rse/plugins/org.eclipse.rse.subsystems.files.core/src/org/eclipse/rse/subsystems/files/core/subsystems/IRemoteFileSubSystem.java b/rse/plugins/org.eclipse.rse.subsystems.files.core/src/org/eclipse/rse/subsystems/files/core/subsystems/IRemoteFileSubSystem.java index 17ca8e8e973..ae05f47d23b 100644 --- a/rse/plugins/org.eclipse.rse.subsystems.files.core/src/org/eclipse/rse/subsystems/files/core/subsystems/IRemoteFileSubSystem.java +++ b/rse/plugins/org.eclipse.rse.subsystems.files.core/src/org/eclipse/rse/subsystems/files/core/subsystems/IRemoteFileSubSystem.java @@ -7,10 +7,10 @@ * * Initial Contributors: * The following IBM employees contributed to the Remote System Explorer - * component that contains this file: David McKnight, Kushal Munir, - * Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson, + * component that contains this file: David McKnight, Kushal Munir, + * Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson, * Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley. - * + * * Contributors: * Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core * Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API @@ -20,6 +20,7 @@ * David McKnight (IBM) - [209552] API changes to use multiple and getting rid of deprecated * Kevin Doyle (IBM) - [208778] new API getOutputSteam for getting an output stream in append mode * David McKnight (IBM) - [209704] added supportsEncodingConversion() + * Martin Oberhuber (Wind River) - [226574][api] Add ISubSystemConfiguration#supportsEncoding() *******************************************************************************/ package org.eclipse.rse.subsystems.files.core.subsystems; @@ -53,11 +54,11 @@ public interface IRemoteFileSubSystem extends ISubSystem { // ---------------------- // HELPER METHODS... // ---------------------- - + /** * Return parent subsystem factory, cast to a RemoteFileSubSystemConfiguration */ - public IRemoteFileSubSystemConfiguration getParentRemoteFileSubSystemConfiguration(); + public IRemoteFileSubSystemConfiguration getParentRemoteFileSubSystemConfiguration(); /** * Return true if file names are case-sensitive. Used when doing name or type filtering */ @@ -65,7 +66,7 @@ public interface IRemoteFileSubSystem extends ISubSystem { // -------------------------------- // FILE SYSTEM ATTRIBUTE METHODS... - // -------------------------------- + // -------------------------------- /** * Return in string format the character used to separate folders. Eg, "\" or "/". *
@@ -77,21 +78,21 @@ public interface IRemoteFileSubSystem extends ISubSystem { * Return in character format the character used to separate folders. Eg, "\" or "/" *
* Shortcut to {@link #getParentRemoteFileSubSystemConfiguration()}.getSeparatorChar() - */ + */ public char getSeparatorChar(); /** * Return in string format the character used to separate paths. Eg, ";" or ":" *
* Shortcut to {@link #getParentRemoteFileSubSystemConfiguration()}.getPathSeparator() - */ + */ public String getPathSeparator(); /** * Return in char format the character used to separate paths. Eg, ";" or ":" *
* Shortcut to {@link #getParentRemoteFileSubSystemConfiguration()}.getPathSeparatorChar() - */ + */ public char getPathSeparatorChar(); /** @@ -100,7 +101,7 @@ public interface IRemoteFileSubSystem extends ISubSystem { * Shortcut to {@link #getParentRemoteFileSubSystemConfiguration()}.getLineSeparator() */ public String getLineSeparator(); - + // ---------------------- // FILE SYSTEM METHODS... // ---------------------- @@ -110,28 +111,28 @@ public interface IRemoteFileSubSystem extends ISubSystem { * This version is called directly by users. */ public IRemoteFile[] listRoots(IProgressMonitor monitor) throws InterruptedException, SystemMessageException; - - + + /** * Return a list of all remote folders and/or files in the given folders. This list is not filtered. - * + * * @param parents The parent folders to list folders and/or files in - * @param fileTypes - indicates whether to query files, folders, both or some other type. There + * @param fileTypes - indicates whether to query files, folders, both or some other type. There * should be exactly one fileType specified per parent. * For the default list of available file types see IFileServiceContants * @param monitor the progress monitor * @since 3.0 */ - public IRemoteFile[] listMultiple(IRemoteFile[] parents, int[] fileTypes, IProgressMonitor monitor) throws SystemMessageException; - + public IRemoteFile[] listMultiple(IRemoteFile[] parents, int[] fileTypes, IProgressMonitor monitor) throws SystemMessageException; + /** * Return a list of remote folders and/or files in the given folder. Only file names are filtered * by the given file name filters. It can be null for no sub-setting. - * + * * @param parents The parent folders to list folders and files in - * @param fileNameFilters The name patterns to subset the file list by, or null to return all files. + * @param fileNameFilters The name patterns to subset the file list by, or null to return all files. * There should be exactly one fileNameFilter per parent. - * @param fileTypes - indicates whether to query files, folders, both or some other type. There + * @param fileTypes - indicates whether to query files, folders, both or some other type. There * should be exactly one fileType specified per parent. * For the default list of available file types see IFileServiceContants * @param monitor the progress monitor @@ -141,58 +142,58 @@ public interface IRemoteFileSubSystem extends ISubSystem { /** * Return a list of all remote folders and/or files in the given folders. This list is not filtered. - * + * * @param parents The parent folders to list folders and/or files in * @param fileType - indicates whether to query files, folders, both or some other type. This fileType is used for each parent query. * For the default list of available file types see IFileServiceContants * @param monitor the progress monitor * @since 3.0 */ - public IRemoteFile[] listMultiple(IRemoteFile[] parents, int fileType, IProgressMonitor monitor) throws SystemMessageException; - + public IRemoteFile[] listMultiple(IRemoteFile[] parents, int fileType, IProgressMonitor monitor) throws SystemMessageException; + /** * Return a list of remote folders and/or files in the given folder. Only file names are filtered * by the given file name filters. It can be null for no sub-setting. - * + * * @param parents The parent folders to list folders and files in - * @param fileNameFilters The name patterns to subset the file list by, or null to return all files. + * @param fileNameFilters The name patterns to subset the file list by, or null to return all files. * There should be exactly one fileNameFilter per parent. - * @param fileType - indicates whether to query files, folders, both or some other type. + * @param fileType - indicates whether to query files, folders, both or some other type. * Available file types include {@link IFileService#FILE_TYPE_FILES}, - * {@link IFileService#FILE_TYPE_FOLDERS}, and + * {@link IFileService#FILE_TYPE_FOLDERS}, and * {@link IFileService#FILE_TYPE_FILES_AND_FOLDERS}. * @param monitor the progress monitor * @since 3.0 */ public IRemoteFile[] listMultiple(IRemoteFile[] parents, String[] fileNameFilters, int fileType, IProgressMonitor monitor) throws SystemMessageException; - + /** * Return a list of all remote folders and/or files in the given folder. The list is not filtered. - * + * * @param parent The parent folder to list folders and/or files in * @param monitor the progress monitor * @since 3.0 */ public IRemoteFile[] list(IRemoteFile parent, IProgressMonitor monitor) throws SystemMessageException; - + /** * Return a list of all remote folders and/or files in the given folder. The list is not filtered. - * + * * @param parent The parent folder to list folders and files in - * @param fileType - indicates whether to query files, folders, both or some other type. + * @param fileType - indicates whether to query files, folders, both or some other type. * Available file types include {@link IFileService#FILE_TYPE_FILES}, - * {@link IFileService#FILE_TYPE_FOLDERS}, and + * {@link IFileService#FILE_TYPE_FOLDERS}, and * {@link IFileService#FILE_TYPE_FILES_AND_FOLDERS}. * @param monitor the progress monitor * @since 3.0 */ - public IRemoteFile[] list(IRemoteFile parent, int fileType, IProgressMonitor monitor) throws SystemMessageException; - + public IRemoteFile[] list(IRemoteFile parent, int fileType, IProgressMonitor monitor) throws SystemMessageException; + /** * Return a list of remote folders and/or files in the given folder. Only file names are filtered * by the given file name filter. It can be null for no filtering. - * + * * @param parent The parent folder to list folders and files in * @param fileNameFilter The name pattern to subset the file list by, or null to return all files. * @param fileType - indicates whether to query files, folders, both or some other type. @@ -203,9 +204,9 @@ public interface IRemoteFileSubSystem extends ISubSystem { public IRemoteFile[] list(IRemoteFile parent, String fileNameFilter, int fileType, IProgressMonitor monitor) throws SystemMessageException; /** - * Return a list of remote folders and/or files in the given folder. The files part of the list is filtered + * Return a list of remote folders and/or files in the given folder. The files part of the list is filtered * by the given file name filter. It can be null for no filtering. - * + * * @param parent The parent folder to list folders and files in * @param fileNameFilter The name pattern to subset the file list by, or null to return all files. * @param context The holder of state information @@ -218,7 +219,7 @@ public interface IRemoteFileSubSystem extends ISubSystem { */ public IRemoteFile[] list(IRemoteFile parent, String fileNameFilter, IRemoteFileContext context, int fileType, IProgressMonitor monitor) throws SystemMessageException; - + /** * Given a search configuration, searches for its results. @@ -236,7 +237,7 @@ public interface IRemoteFileSubSystem extends ISubSystem { * Given a folder or file, return its parent folder object. * @param folderOrFile folder or file to return parent of. * @param monitor the progress monitor - * + * * @return the remote file */ public IRemoteFile getParentFolder(IRemoteFile folderOrFile, IProgressMonitor monitor); @@ -246,39 +247,30 @@ public interface IRemoteFileSubSystem extends ISubSystem { * @param folderOrFile folder or file to return parent of. */ public String getParentFolderName(IRemoteFile folderOrFile); - - /** - * Returns whether the file subsystem supports encodings. There are file subsystems that deal with codepages and encodings - * using other mechanisms besides encodings, and such platforms should return false. Other file subsystems - * may not deal with encodings at all. - * @return true if the file subsystem supports encodings, false otherwise. - * @since 2.0 - */ - public boolean supportsEncoding(); /** * Returns the encoding of the remote system. * @return the encoding of the remote system. */ public String getRemoteEncoding(); - + /** * Returns the encoding of the file with the remote path. * @param remotePath the remote path of the file. * @return the encoding of the remote file. */ // public String getEncoding(String remotePath); - + /** * Given a set of fully qualified file or folder names, return an ISystemResourceSet object for it. * @param folderOrFileNames Fully qualified folder or file names * @param monitor the progress monitor - * + * * @return the set of resources * @since 3.0 */ public IRemoteFile[] getRemoteFileObjects(String[] folderOrFileNames, IProgressMonitor monitor) throws SystemMessageException; - + /** * Given a fully qualified file or folder name, return an IRemoteFile * object for it. @@ -295,22 +287,22 @@ public interface IRemoteFileSubSystem extends ISubSystem { public IRemoteFile getRemoteFileObject(String folderOrFileName, IProgressMonitor monitor) throws SystemMessageException; /** - * Given a un-qualified file or folder name, and its parent folder object, + * Given a un-qualified file or folder name, and its parent folder object, * return an IRemoteFile object for the file. * @param parent Folder containing the folder or file * @param folderOrFileName Un-qualified folder or file name * @param monitor the progress monitor - * + * * @return the requested IRemoteFile object */ public IRemoteFile getRemoteFileObject(IRemoteFile parent, String folderOrFileName, IProgressMonitor monitor) throws SystemMessageException; - + /** * Given a key, returns a search result object for it. For the key, see < * @param key the key that uniquely identifies a search result. */ public IRemoteSearchResult getRemoteSearchResultObject(String key) throws SystemMessageException; - + /** * Create a new file, given its IRemoteFile object (these do not have to represent existing files). *

@@ -319,13 +311,13 @@ public interface IRemoteFileSubSystem extends ISubSystem { *

  • If this file already exists, this is a no-op. *
  • If the given object is a folder, not a file, this is a no-op. * - * + * * @see #createFolders(IRemoteFile,IProgressMonitor) - * + * * @param fileToCreate The object representing the file to be created. * @return The same input object returned for convenience. Will throw exception if it fails. - * @throws SystemMessageException if an error occurs. - * Typically this would be one of those in the + * @throws SystemMessageException if an error occurs. + * Typically this would be one of those in the * {@link RemoteFileException} family. */ public IRemoteFile createFile(IRemoteFile fileToCreate, IProgressMonitor monitor) throws SystemMessageException; @@ -338,18 +330,18 @@ public interface IRemoteFileSubSystem extends ISubSystem { *
  • If this folder already exists, this is a no-op. *
  • If the given object is a file, not a folder, this is a no-op. * - * + * * @see #createFolders(IRemoteFile, IProgressMonitor) - * + * * @param folderToCreate The object representing the folder to be created. * @param monitor the progress monitor * @return The same input object returned for convenience. Will throw exception if it fails. - * @throws SystemMessageException if an error occurs. - * Typically this would be one of those in the + * @throws SystemMessageException if an error occurs. + * Typically this would be one of those in the * {@link RemoteFileException} family. */ - public IRemoteFile createFolder(IRemoteFile folderToCreate, IProgressMonitor monitor) throws SystemMessageException; - + public IRemoteFile createFolder(IRemoteFile folderToCreate, IProgressMonitor monitor) throws SystemMessageException; + /** * Given an IRemoteFile for a folder, this will create that folder and any missing parent folders in its path. * Use getParentFolder to get the parent object of your file or folder in order to call this method. @@ -358,35 +350,35 @@ public interface IRemoteFileSubSystem extends ISubSystem { *
  • If this folder already exists, this is a no-op. *
  • If the given object is a file, not a folder, this is a no-op. * - * + * * @see #getParentFolder(IRemoteFile, IProgressMonitor) - * + * * @param folderToCreate The object representing the folder to be created, along with its parents. * @param monitor the progress monitor * @return The same input object returned for convenience. Will throw exception if it fails. - * @throws SystemMessageException if an error occurs. - * Typically this would be one of those in the + * @throws SystemMessageException if an error occurs. + * Typically this would be one of those in the * {@link RemoteFileException} family. */ - public IRemoteFile createFolders(IRemoteFile folderToCreate, IProgressMonitor monitor) throws SystemMessageException; - + public IRemoteFile createFolders(IRemoteFile folderToCreate, IProgressMonitor monitor) throws SystemMessageException; + /** - * Delete the given remote file or folder. + * Delete the given remote file or folder. *
      *
    • If the input is a folder, that folder must be empty for this to succeed. *
    - * + * * @param folderOrFile represents the object to be deleted. * @param monitor progressMonitor * @return false if the given folder/file didn't exist to begin with, else true. Throws an exception if anything fails. - * @throws SystemMessageException if an error occurs. - * Typically this would be one of those in the + * @throws SystemMessageException if an error occurs. + * Typically this would be one of those in the * {@link RemoteFileException} family. */ public boolean delete(IRemoteFile folderOrFile, IProgressMonitor monitor) throws SystemMessageException; /** - * Delete the given batch of remote file or folder. + * Delete the given batch of remote file or folder. *
      *
    • If any of the inputs are a folder, those folders must be empty for this to succeed. *
    @@ -395,8 +387,8 @@ public interface IRemoteFileSubSystem extends ISubSystem { * @param folderOrFiles represents the objects to be deleted. * @param monitor progressMonitor * @return false if any of the given folder/file dont exist to begin with, else true. Throws an exception if anything fails. - * @throws SystemMessageException if an error occurs. - * Typically this would be one of those in the + * @throws SystemMessageException if an error occurs. + * Typically this would be one of those in the * {@link RemoteFileException} family. */ public boolean deleteBatch(IRemoteFile[] folderOrFiles, IProgressMonitor monitor) throws SystemMessageException; @@ -407,26 +399,26 @@ public interface IRemoteFileSubSystem extends ISubSystem { * @param newName new name to give it. * @param monitor the progress monitor * @return false if the given folder/file didn't exist on disk (still renamed in memory), else true. Throws an exception if anything fails. - * @throws SystemMessageException if an error occurs. - * Typically this would be one of those in the + * @throws SystemMessageException if an error occurs. + * Typically this would be one of those in the * {@link RemoteFileException} family. */ - public boolean rename(IRemoteFile folderOrFile, String newName, IProgressMonitor monitor) throws SystemMessageException; + public boolean rename(IRemoteFile folderOrFile, String newName, IProgressMonitor monitor) throws SystemMessageException; /** * Move a file or folder to a new target parent folder. - * + * * @param sourceFolderOrFile The file or folder to move * @param targetFolder The folder to move to. No guarantee it is on the same system, so be sure to check getSystemConnection()! * @param newName The new name for the moved file or folder * @param monitor progress monitor * @return true if the move succeeded - * @throws SystemMessageException if an error occurs. - * Typically this would be one of those in the + * @throws SystemMessageException if an error occurs. + * Typically this would be one of those in the * {@link RemoteFileException} family. */ public boolean move(IRemoteFile sourceFolderOrFile, IRemoteFile targetFolder, String newName,IProgressMonitor monitor) throws SystemMessageException; - + /** * Set the last modified date for the given file or folder. Like a Unix "touch" operation. * Folder or file must exist on disk for this to succeed. @@ -434,8 +426,8 @@ public interface IRemoteFileSubSystem extends ISubSystem { * @param newDate new date, in milliseconds from epoch, to assign. * @param monitor the progress monitor * @return false if the given folder/file didn't exist on disk (operation fails), else true. Throws an exception if anything fails. - * @throws SystemMessageException if an error occurs. - * Typically this would be one of those in the + * @throws SystemMessageException if an error occurs. + * Typically this would be one of those in the * {@link RemoteFileException} family. */ public boolean setLastModified(IRemoteFile folderOrFile, long newDate, IProgressMonitor monitor) throws SystemMessageException; @@ -447,29 +439,29 @@ public interface IRemoteFileSubSystem extends ISubSystem { * @param readOnly whether to set it to be read-only or not * @param monitor the progress monitor * @return false if the given folder/file didn't exist on disk (operation fails), else true. Throws an exception if anything fails. - * @throws SystemMessageException if an error occurs. - * Typically this would be one of those in the + * @throws SystemMessageException if an error occurs. + * Typically this would be one of those in the * {@link RemoteFileException} family. */ public boolean setReadOnly(IRemoteFile folderOrFile, boolean readOnly, IProgressMonitor monitor) throws SystemMessageException; - + // ---------------------------- // METHODS FOR FILE TRANSFER... // ---------------------------- - + // Beginning of methods for downloading remote files from the server - + /** * Copy a file or folder to a new target parent folder. - * + * * @param sourceFolderOrFile The file or folder to copy * @param targetFolder The folder to copy to. No guarantee it is on the same system, so be sure to check getSystemConnection()! * @param newName The new name for the copied file or folder * @param monitor progress monitor * @return true if the copy succeeded - * @throws SystemMessageException if an error occurs. - * Typically this would be one of those in the + * @throws SystemMessageException if an error occurs. + * Typically this would be one of those in the * {@link RemoteFileException} family. */ public boolean copy(IRemoteFile sourceFolderOrFile, IRemoteFile targetFolder, String newName, IProgressMonitor monitor) throws SystemMessageException; @@ -477,22 +469,22 @@ public interface IRemoteFileSubSystem extends ISubSystem { /** * Copy a set of remote files or folders to a new target parent folder. Precondition: Sources and target must all be on the same system! * @param sourceFolderOrFile The file or folder to copy - * @param targetFolder The folder to copy to. + * @param targetFolder The folder to copy to. * @param monitor progress monitor * @return true if all copies succeeded - * @throws SystemMessageException if an error occurs. - * Typically this would be one of those in the + * @throws SystemMessageException if an error occurs. + * Typically this would be one of those in the * {@link RemoteFileException} family. */ public boolean copyBatch(IRemoteFile[] sourceFolderOrFile, IRemoteFile targetFolder, IProgressMonitor monitor) throws SystemMessageException; - + /** * Get the remote file and save it locally. - * + * * The file is saved in the encoding specified, with two exceptions: *
      *
    • If the remote file is binary, encoding does not apply.
    • - *
    • If the remote file is a XML file, then it will be + *
    • If the remote file is a XML file, then it will be * copied to local in the encoding specified in the XML * declaration, or as determined from the XML specification.
    • *
    @@ -500,20 +492,20 @@ public interface IRemoteFileSubSystem extends ISubSystem { * @param destination the absolute path of the local file * @param encoding the encoding of the local file * @param monitor the progress monitor - * @throws SystemMessageException if an error occurs. - * Typically this would be one of those in the + * @throws SystemMessageException if an error occurs. + * Typically this would be one of those in the * {@link RemoteFileException} family. */ public void download(IRemoteFile source, String destination, String encoding, IProgressMonitor monitor) throws SystemMessageException; - - + + /** * Get the remote files and save them locally. - * + * * The files are saved in the encodings specified, with two exceptions: *
      *
    • If a remote file is binary, encoding does not apply.
    • - *
    • If a remote file is a XML file, then it will be + *
    • If a remote file is a XML file, then it will be * copied to local in the encoding specified in the XML * declaration, or as determined from the XML specification.
    • *
    @@ -521,19 +513,19 @@ public interface IRemoteFileSubSystem extends ISubSystem { * @param destinations the absolute paths of the local files * @param encodings the encodings of the local files * @param monitor the progress monitor - * @throws SystemMessageException if an error occurs. - * Typically this would be one of those in the + * @throws SystemMessageException if an error occurs. + * Typically this would be one of those in the * {@link RemoteFileException} family. * @since 3.0 */ public void downloadMultiple(IRemoteFile[] sources, String[] destinations, String[] encodings, IProgressMonitor monitor) throws SystemMessageException; - - - - + + + + /** * Put the local copy of the remote file back to the remote location. - * + * * The file is assumed to be in the encoding specified, with * two exceptions: *
      @@ -546,15 +538,15 @@ public interface IRemoteFileSubSystem extends ISubSystem { * @param destination remote file that represents the file on the server * @param encoding the encoding of the local copy * @param monitor the progress monitor - * @throws SystemMessageException if an error occurs. - * Typically this would be one of those in the + * @throws SystemMessageException if an error occurs. + * Typically this would be one of those in the * {@link RemoteFileException} family. */ public void upload(String source, IRemoteFile destination, String encoding, IProgressMonitor monitor) throws SystemMessageException; /** * Put the local copy of the remote file back to the remote location. - * + * * The file is assumed to be in the encoding of the local operating system, * with two exceptions: *
        @@ -567,15 +559,15 @@ public interface IRemoteFileSubSystem extends ISubSystem { * @param srcEncoding the encoding of the local copy * @param remotePath remote file that represents the file on the server * @param rmtEncoding the encoding of the remote file. - * @throws SystemMessageException if an error occurs. + * @throws SystemMessageException if an error occurs. * Typically this would be one of those in the * {@link RemoteFileException} family. */ public void upload(String source, String srcEncoding, String remotePath, String rmtEncoding, IProgressMonitor monitor) throws SystemMessageException; - + /** * Put the local copies of the remote files to the remote locations. - * + * * The files are assumed to be in the encodings specified, with * two exceptions: *
          @@ -588,8 +580,8 @@ public interface IRemoteFileSubSystem extends ISubSystem { * @param destinations remote files that represent the files on the server * @param encodings the encodings of the local copies * @param monitor the progress monitor - * @throws SystemMessageException if an error occurs. - * Typically this would be one of those in the + * @throws SystemMessageException if an error occurs. + * Typically this would be one of those in the * {@link RemoteFileException} family. * @since 3.0 */ @@ -597,7 +589,7 @@ public interface IRemoteFileSubSystem extends ISubSystem { /** * Put the local copies of the remote files to the remote locations. - * + * * The files are assumed to be in the encodings of the local operating system, * with two exceptions: *
            @@ -610,46 +602,46 @@ public interface IRemoteFileSubSystem extends ISubSystem { * @param srcEncodings the encodings of the local copies * @param remotePaths remote files that represents the files on the server * @param rmtEncodings the encodings of the remote files. - * @throws SystemMessageException if an error occurs. + * @throws SystemMessageException if an error occurs. * Typically this would be one of those in the * {@link RemoteFileException} family. * @since 3.0 */ public void uploadMultiple(String sources[], String[] srcEncodings, String[] remotePaths, String[] rmtEncodings, IProgressMonitor monitor) throws SystemMessageException; - + /** * Returns a language utility factory associated with this subsystem. * @return the language utility factory associated with this subsystem. */ public ILanguageUtilityFactory getLanguageUtilityFactory(); - + /** * Returns an unused port number on the remote host that could be used * by any tool on the host. * @return an unused port number on the host, or -1 if none could be found. */ public int getUnusedPort(); - + /** * Return a list of roots/drives on the remote system. * This version is called by RemoteFileSubSystemImpl's resolveFilterString(s) * noteThis method should be abstract but MOF doesn't allow abstract impl classes at this point */ public IRemoteFile[] listRoots(IRemoteFileContext context, IProgressMonitor monitor) throws InterruptedException; - + /** - * Returns the TCP/IP address for the local system that is accessible from + * Returns the TCP/IP address for the local system that is accessible from * the remote server. If the local system has multiple IP addresses (because of multiple * network cards or VPN), then this will return the address that the remote system * can use to "call back" to the PC. There must be a network connection between the local * system and the remote system for this method to work. If no network connection exists, * then this method returns null. - * + * * @return the local TCP/IP address accessible from the remote system, or null if * no address can be resolved. */ public InetAddress getLocalAddress(); - + /** * Gets the input stream to access the contents a remote file. Clients should close the input stream when done. Implementations should not return null. * @param remoteParent the absolute path of the parent. @@ -657,11 +649,11 @@ public interface IRemoteFileSubSystem extends ISubSystem { * @param isBinary true if the file is a binary file, false otherwise. * @return the input stream to access the contents of the remote file. * @param monitor the progress monitor. - * @throws SystemMessageException if an error occurs. + * @throws SystemMessageException if an error occurs. * @since 2.0 */ public InputStream getInputStream(String remoteParent, String remoteFile, boolean isBinary, IProgressMonitor monitor) throws SystemMessageException; - + /** * Gets the output stream to write to a remote file. Clients should close the output stream when done. Implementations should not return null. * @param remoteParent the absolute path of the parent. @@ -689,10 +681,10 @@ public interface IRemoteFileSubSystem extends ISubSystem { /** * Indicates whether this file subsystem supports code page conversion using - * the IFileServiceCodePageConverter mechanism. Certain extensions, such as - * property pages for encoding conversion can determine whether or not to + * the IFileServiceCodePageConverter mechanism. Certain extensions, such as + * property pages for encoding conversion can determine whether or not to * display or enable themselves based on result of this call. - * + * * @return whether this service supports encoding conversion * @since 3.0 */ diff --git a/rse/plugins/org.eclipse.rse.subsystems.files.core/src/org/eclipse/rse/subsystems/files/core/subsystems/RemoteFileSubSystem.java b/rse/plugins/org.eclipse.rse.subsystems.files.core/src/org/eclipse/rse/subsystems/files/core/subsystems/RemoteFileSubSystem.java index d391378151b..b90d8b1639b 100644 --- a/rse/plugins/org.eclipse.rse.subsystems.files.core/src/org/eclipse/rse/subsystems/files/core/subsystems/RemoteFileSubSystem.java +++ b/rse/plugins/org.eclipse.rse.subsystems.files.core/src/org/eclipse/rse/subsystems/files/core/subsystems/RemoteFileSubSystem.java @@ -26,6 +26,7 @@ * David McKnight (IBM) - [216252] [api][nls] Resource Strings specific to subsystems should be moved from rse.ui into files.ui / shells.ui / processes.ui where possible * David McKnight (IBM) - [220547] [api][breaking] SimpleSystemMessage needs to specify a message id and some messages should be shared * Martin Oberhuber (Wind River) - [218304] Improve deferred adapter loading + * Martin Oberhuber (Wind River) - [226574][api] Add ISubSystemConfiguration#supportsEncoding() *******************************************************************************/ package org.eclipse.rse.subsystems.files.core.subsystems; @@ -1035,10 +1036,10 @@ public abstract class RemoteFileSubSystem extends SubSystem implements IRemoteFi /** * 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(). - * + * * @see SubSystem#getObjectWithAbsoluteName(String, IProgressMonitor) */ public Object getObjectWithAbsoluteName(String key, IProgressMonitor monitor) throws Exception @@ -1443,15 +1444,6 @@ public abstract class RemoteFileSubSystem extends SubSystem implements IRemoteFi } - /** - * Returns true by default. Subclasses should override if they do not support encodings. - * @see org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem#supportsEncoding() - * @since 2.0 - */ - public boolean supportsEncoding() { - return true; - } - /** * Returns the local platform encoding if the default encoding of the host was not set. * Subclasses should override to return the actual remote encoding.