Class AbstractRetrieveFileTransfer
- java.lang.Object
- 
- org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer
 
- 
- All Implemented Interfaces:
- org.eclipse.core.runtime.IAdaptable,- IIdentifiable,- IFileTransfer,- IFileTransferPausable,- IIncomingFileTransfer,- IRetrieveFileTransferContainerAdapter,- IRetrieveFileTransfer
 - Direct Known Subclasses:
- HttpClientRetrieveFileTransfer,- HttpClientRetrieveFileTransfer,- HttpClientRetrieveFileTransfer,- UrlConnectionRetrieveFileTransfer
 
 public abstract class AbstractRetrieveFileTransfer extends Object implements IIncomingFileTransfer, IRetrieveFileTransfer, IFileTransferPausable 
- 
- 
Field SummaryFields Modifier and Type Field Description protected intbuff_lengthprotected longbytesReceivedprotected static intCLOSE_TIMEOUTprotected booleancloseOutputStreamprotected IConnectContextconnectContextstatic intDEFAULT_BUF_LENGTHprotected booleandoneprotected doubledownloadRateBytesPerSecondprotected Exceptionexceptionprotected longfileLengthprotected org.eclipse.core.runtime.jobs.Jobjobprotected ObjectjobLockprotected longlastModifiedTimeprotected IFileTransferListenerlistenerprotected OutputStreamlocalFileContentsprotected Mapoptionsprotected booleanpausedprotected static intPOLLING_RETRY_ATTEMPTSprotected Proxyproxyprotected IFileRangeSpecificationrangeSpecificationprotected static intREAD_TIMEOUTprotected InputStreamremoteFileContentsprotected IFileIDremoteFileIDprotected URLremoteFileURLprotected MapresponseHeadersprotected static intTIMEOUT_INPUTSTREAM_BUFFER_SIZEprotected longtransferStartTime
 - 
Constructor SummaryConstructors Constructor Description AbstractRetrieveFileTransfer()
 - 
Method SummaryAll Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidcancel()Cancel this file transfer.protected StringcreateJobName()protected StringcreateRangeName()protected abstract booleandoPause()Subclass overridable version ofpause().protected abstract booleandoResume()Subclass overridable version ofresume().protected voidfireReceiveResumedEvent()protected voidfireReceiveStartEvent()protected voidfireTransferReceiveDataEvent()protected voidfireTransferReceiveDoneEvent()protected voidfireTransferReceivePausedEvent()<T> TgetAdapter(Class<T> adapter)longgetBytesReceived()Get number of bytes received so far.ExceptiongetException()Get any exception associated with this file transfer.longgetFileLength()Return resulting file length (in bytes) for this file transfer instance.IFileRangeSpecificationgetFileRangeSpecification()Get file range specification for this incoming file transfer instance.protected org.eclipse.core.runtime.IStatusgetFinalStatus(Throwable exception1)IDgetID()Return the ID for this 'identifiable' object.IFileTransferListenergetListener()Get listener assigned to this incoming file transfer.protected MapgetOptions()doublegetPercentComplete()Get the percent complete for this file transfer.StringgetRemoteFileName()Obtains the name of the remote file if possible.protected URLgetRemoteFileURL()DategetRemoteLastModified()Obtains the timestamp that reflects the time when the remote file was last modified if possible.NamespacegetRetrieveNamespace()Get namespace to be used for creation of remoteFileID for retrieve request.protected intgetSocketCloseTimeout()protected intgetSocketReadTimeout()protected voidhandleReceivedData(byte[] buf, int bytes, double factor, org.eclipse.core.runtime.IProgressMonitor monitor)protected voidhardClose()protected booleanisCanceled()booleanisDone()Return true if this file transfer is done, false if not yet completed.booleanisPaused()protected UserCancelledExceptionnewUserCancelledException()protected abstract voidopenStreams()Open incoming and outgoing streams associated with this file transfer.booleanpause()Pause file transfer.protected voidresetDoneAndException()booleanresume()Resume file transfer after having been paused.protected org.eclipse.core.net.proxy.IProxyDataselectProxyFromProxies(String protocol, org.eclipse.core.net.proxy.IProxyData[] proxies)Select a single proxy from a set of proxies available for the given host.voidsendRetrieveRequest(IFileID rFileID, IFileRangeSpecification rangeSpec, IFileTransferListener transferListener, Map ops)Send request for transfer of a remote file to local file storage.voidsendRetrieveRequest(IFileID remoteFileID1, IFileTransferListener transferListener, Map options1)Send request for transfer of a remote file to local file storage.protected voidsetCloseOutputStream(boolean close)voidsetConnectContextForAuthentication(IConnectContext connectContext)Set connect context for authentication upon subsequentIRetrieveFileTransferContainerAdapter.sendRetrieveRequest(IFileID, IFileTransferListener, Map).protected voidsetDone(boolean done)protected voidsetDoneCanceled()protected voidsetDoneCanceled(Exception e)protected voidsetDoneException(Exception e)protected voidsetFileLength(long length)protected voidsetInputStream(InputStream ins)protected voidsetLastModifiedTime(long timestamp)protected voidsetOutputStream(OutputStream outs)voidsetProxy(Proxy proxy)Set proxy for use upon subsequentIRetrieveFileTransferContainerAdapter.sendRetrieveRequest(IFileID, IFileTransferListener, Map).protected voidsetupAndScheduleJob(FileTransferJob fileTransferJob)protected voidsetupProxies()protected abstract voidsetupProxy(Proxy proxy)Setup ECF proxy.protected booleantargetHasGzSuffix(String target)static StringtoHumanReadableBytes(double size)protected InputStreamwrapTransferReadInputStream(InputStream inputStream, org.eclipse.core.runtime.IProgressMonitor monitor)
 
- 
- 
- 
Field Detail- 
DEFAULT_BUF_LENGTHpublic static final int DEFAULT_BUF_LENGTH - See Also:
- Constant Field Values
 
 - 
POLLING_RETRY_ATTEMPTSprotected static final int POLLING_RETRY_ATTEMPTS 
 - 
TIMEOUT_INPUTSTREAM_BUFFER_SIZEprotected static final int TIMEOUT_INPUTSTREAM_BUFFER_SIZE - See Also:
- Constant Field Values
 
 - 
READ_TIMEOUTprotected static final int READ_TIMEOUT 
 - 
CLOSE_TIMEOUTprotected static final int CLOSE_TIMEOUT 
 - 
jobLockprotected Object jobLock 
 - 
jobprotected org.eclipse.core.runtime.jobs.Job job 
 - 
remoteFileURLprotected URL remoteFileURL 
 - 
remoteFileIDprotected IFileID remoteFileID 
 - 
listenerprotected IFileTransferListener listener 
 - 
buff_lengthprotected int buff_length 
 - 
doneprotected boolean done 
 - 
bytesReceivedprotected volatile long bytesReceived 
 - 
remoteFileContentsprotected InputStream remoteFileContents 
 - 
localFileContentsprotected OutputStream localFileContents 
 - 
closeOutputStreamprotected boolean closeOutputStream 
 - 
exceptionprotected Exception exception 
 - 
fileLengthprotected long fileLength 
 - 
lastModifiedTimeprotected long lastModifiedTime 
 - 
optionsprotected Map options 
 - 
pausedprotected boolean paused 
 - 
rangeSpecificationprotected IFileRangeSpecification rangeSpecification 
 - 
proxyprotected Proxy proxy 
 - 
connectContextprotected IConnectContext connectContext 
 - 
transferStartTimeprotected long transferStartTime 
 - 
downloadRateBytesPerSecondprotected double downloadRateBytesPerSecond 
 - 
responseHeadersprotected Map responseHeaders - Since:
- 3.1
 
 
- 
 - 
Method Detail- 
wrapTransferReadInputStreamprotected InputStream wrapTransferReadInputStream(InputStream inputStream, org.eclipse.core.runtime.IProgressMonitor monitor) 
 - 
getRemoteFileURLprotected URL getRemoteFileURL() 
 - 
getSocketReadTimeoutprotected int getSocketReadTimeout() 
 - 
getSocketCloseTimeoutprotected int getSocketCloseTimeout() 
 - 
setInputStreamprotected void setInputStream(InputStream ins) 
 - 
setOutputStreamprotected void setOutputStream(OutputStream outs) 
 - 
setCloseOutputStreamprotected void setCloseOutputStream(boolean close) 
 - 
setFileLengthprotected void setFileLength(long length) 
 - 
setLastModifiedTimeprotected void setLastModifiedTime(long timestamp) 
 - 
getOptionsprotected Map getOptions() 
 - 
handleReceivedDataprotected void handleReceivedData(byte[] buf, int bytes, double factor, org.eclipse.core.runtime.IProgressMonitor monitor) throws IOException- Throws:
- IOException
 
 - 
toHumanReadableBytespublic static String toHumanReadableBytes(double size) 
 - 
getIDpublic ID getID() Description copied from interface:IIdentifiableReturn the ID for this 'identifiable' object. The returned ID should be unique within its namespace. May returnnull.- Specified by:
- getIDin interface- IIdentifiable
- Returns:
- the ID for this identifiable object.  May return null.
 
 - 
getFinalStatusprotected org.eclipse.core.runtime.IStatus getFinalStatus(Throwable exception1) 
 - 
hardCloseprotected void hardClose() 
 - 
fireTransferReceivePausedEventprotected void fireTransferReceivePausedEvent() 
 - 
fireTransferReceiveDoneEventprotected void fireTransferReceiveDoneEvent() 
 - 
fireTransferReceiveDataEventprotected void fireTransferReceiveDataEvent() 
 - 
setConnectContextForAuthenticationpublic void setConnectContextForAuthentication(IConnectContext connectContext) Description copied from interface:IRetrieveFileTransferContainerAdapterSet connect context for authentication upon subsequentIRetrieveFileTransferContainerAdapter.sendRetrieveRequest(IFileID, IFileTransferListener, Map). This method should be called with a non-null connectContext in order to allow authentication to occur during call toIRetrieveFileTransferContainerAdapter.sendRetrieveRequest(IFileID, IFileTransferListener, Map).- Specified by:
- setConnectContextForAuthenticationin interface- IRetrieveFileTransferContainerAdapter
- Parameters:
- connectContext- the connect context to use for authenticating during subsequent call to- IRetrieveFileTransferContainerAdapter.sendRetrieveRequest(IFileID, IFileTransferListener, Map). If- null, then no authentication will be attempted.
 
 - 
setProxypublic void setProxy(Proxy proxy) Description copied from interface:IRetrieveFileTransferContainerAdapterSet proxy for use upon subsequentIRetrieveFileTransferContainerAdapter.sendRetrieveRequest(IFileID, IFileTransferListener, Map). This method should be called with proxy to allow the given proxy to be used in subsequent calls toIRetrieveFileTransferContainerAdapter.sendRetrieveRequest(IFileID, IFileTransferListener, Map).When proxy is nullor has not been called providers must use theorg.eclipse.core.netproxy API to obtain proxy information and proxy credentials if they support proxies of the type(s) supported by that API. The API is provided by an OSGi service of typeorg.eclipse.core.net.proxy.IProxyService.If no information is available via IProxyServiceproviders may use other defaults.- Specified by:
- setProxyin interface- IRetrieveFileTransferContainerAdapter
- Parameters:
- proxy- the proxy to use for subsequent calls to- IRetrieveFileTransferContainerAdapter.sendRetrieveRequest(IFileID, IFileTransferListener, Map). If- null, then proxy information is obtained from- IProxyServiceif available. Otherwise provider defined defaults may be used.
 
 - 
getBytesReceivedpublic long getBytesReceived() Description copied from interface:IIncomingFileTransferGet number of bytes received so far. If provider does not support reporting the number of bytes received, will return -1.- Specified by:
- getBytesReceivedin interface- IIncomingFileTransfer
- Returns:
- long number of bytes received. Returns -1 if provider does not support reporting of number of bytes received during transfer
 
 - 
newUserCancelledExceptionprotected UserCancelledException newUserCancelledException() - Returns:
- UserCancelledException if some user cancellation
- Since:
- 3.0
 
 - 
resetDoneAndExceptionprotected void resetDoneAndException() 
 - 
setDoneprotected void setDone(boolean done) 
 - 
setDoneExceptionprotected void setDoneException(Exception e) 
 - 
isCanceledprotected boolean isCanceled() 
 - 
setDoneCanceledprotected void setDoneCanceled() 
 - 
setDoneCanceledprotected void setDoneCanceled(Exception e) 
 - 
cancelpublic void cancel() Description copied from interface:IFileTransferCancel this file transfer. If file transfer has already been completed, then this method has no effect. If the file transfer has not been completed then calling this method will result in anIFileTransferEventbeing delivered to theIFileTransferListenerindicating that transfer is done (IFileTransfer.isDone()returns true), and some exception will be made available- Specified by:
- cancelin interface- IFileTransfer
 
 - 
getExceptionpublic Exception getException() Description copied from interface:IFileTransferGet any exception associated with this file transfer. The value returned from this method is valid only ifIFileTransfer.isDone()method returns true. If the file transfer completed successfully,IFileTransfer.isDone()will return true, and this method will return null. If the file transfer completed unsuccessfully (some exception occurred), thenIFileTransfer.isDone()will return true, and this method will return a non-null Exception instance that occurred.If the the file transfer was canceled by the user, then the exception returned will be an instance of UserCancelledException.- Specified by:
- getExceptionin interface- IFileTransfer
- Returns:
- Exception associated with this file transfer. nullif transfer completed successfully, non-null if transfer completed with some exception. Only valid afterIFileTransfer.isDone()returns true.
 
 - 
getPercentCompletepublic double getPercentComplete() Description copied from interface:IFileTransferGet the percent complete for this file transfer. The returned value will be either -1.0, meaning that the underlying provider does not support reporting percent complete for this file transfer, or a value between 0 and 1 reflecting the percent complete for this file transfer. If 0.0 no data has been sent, if 1.0, the file transfer is 100 percent complete. The value returned from this method should not be used to determine whether the transfer has completed, as it may not show completion in the event of an transfer failure. Note that theIFileTransfer.isDone()method should be consulted to determine if the file transfer has completed (with or without error).- Specified by:
- getPercentCompletein interface- IFileTransfer
- Returns:
- double percent complete. Returns -1.0 if the underlying provider does not support reporting percentage complete, or between 0 and 1 to indicate actual percent complete for this file transfer
 
 - 
getFileLengthpublic long getFileLength() Description copied from interface:IFileTransferReturn resulting file length (in bytes) for this file transfer instance. If the length is not known, -1 will be returned. Note that if aIFileRangeSpecificationis provided that the returned file length is the expected file length of just the range retrieved (and not the entire file).- Specified by:
- getFileLengthin interface- IFileTransfer
- Returns:
- long file length
 
 - 
getRemoteLastModifiedpublic Date getRemoteLastModified() Description copied from interface:IIncomingFileTransferObtains the timestamp that reflects the time when the remote file was last modified if possible.- Specified by:
- getRemoteLastModifiedin interface- IIncomingFileTransfer
- Returns:
- The time the remote file was last modified or nullif that information was not available.
 
 - 
isDonepublic boolean isDone() Description copied from interface:IFileTransferReturn true if this file transfer is done, false if not yet completed. The file transfer can be completed successfully, or an exception can occur and the file transfer will have failed. In either case of successful or unsuccessful transfer, this method will return true when the file transfer is complete. To determine whether the transfer completed successfully, it is necessary to also consult theIFileTransfer.getException()method.- Specified by:
- isDonein interface- IFileTransfer
- Returns:
- boolean true if file transfer is done, false if file transfer is still in progress.
 
 - 
getAdapterpublic <T> T getAdapter(Class<T> adapter) - Specified by:
- getAdapterin interface- org.eclipse.core.runtime.IAdaptable
 
 - 
openStreamsprotected abstract void openStreams() throws IncomingFileTransferExceptionOpen incoming and outgoing streams associated with this file transfer. Subclasses must implement this method to open input and output streams. TheremoteFileContentsandlocalFileContentmust be non-nullafter successful completion of the implementation of this method.- Throws:
- IncomingFileTransferException- if some problem
 
 - 
sendRetrieveRequestpublic void sendRetrieveRequest(IFileID remoteFileID1, IFileTransferListener transferListener, Map options1) throws IncomingFileTransferException Description copied from interface:IRetrieveFileTransferContainerAdapterSend request for transfer of a remote file to local file storage. This method is used to initiate a file retrieve for a remoteFileID (first parameter). File transfer events are asynchronously delivered a file transfer listener (second parameter). The given remoteFileID and transferListener must not be null.NOTE: if this method completes successfully, the given transferListener will be asynchronously notified via an IIncomingFileTransferReceiveDoneEvent (along with other possible events). All implementations are required to issue this event whether successful or failed. Listeners can consult IIncomingFileTransferReceiveDoneEvent.getException()to determine whether the transfer operation completed successfully.- Specified by:
- sendRetrieveRequestin interface- IRetrieveFileTransferContainerAdapter
- Parameters:
- remoteFileID1- reference to the remote target file (e.g. http://www.eclipse.org/index.html) or a reference to a resource that specifies the location of a target file. Implementing providers will determine what protocol schemes are supported (e.g. ftp, http, torrent, file, etc) and the required format of the scheme-specific information. If a protocol is specified that is not supported, or the scheme-specific information is not well-formed, then an IncomingFileTransferException will be thrown. Typically, callers will create IFileID instances via calls such as:- IFileID remoteFileID = FileIDFactory.getDefault().createID( ftc.getRetrieveNamespace(), "http://www.composent.com/index.html");Must not be- null.
- transferListener- a listener for file transfer events. Must not be null. Must not be null. See Note above.
- options1- a Map of options associated with sendRetrieveRequest. The particular name/value pairs will be unique to the individual providers. May be- null.
- Throws:
- IncomingFileTransferException- if the provider is not connected or is not in the correct state for initiating file transfer
 
 - 
getRetrieveNamespacepublic Namespace getRetrieveNamespace() Description copied from interface:IRetrieveFileTransferContainerAdapterGet namespace to be used for creation of remoteFileID for retrieve request. Result typically used as first parameter forIDFactory.createID(Namespace, String)to be used as first inIRetrieveFileTransferContainerAdapter.sendRetrieveRequest(IFileID, IFileTransferListener, Map)- Specified by:
- getRetrieveNamespacein interface- IRetrieveFileTransferContainerAdapter
- Returns:
- Namespace to use for ID creation via
         IDFactory.createID(Namespace, String). Will not benull.
 
 - 
isPausedpublic boolean isPaused() - Specified by:
- isPausedin interface- IFileTransferPausable
- Returns:
- boolean true if file transfer paused, false if not paused
 
 - 
doPauseprotected abstract boolean doPause() Subclass overridable version ofpause(). Subclasses must provide an implementation of this method to supportIFileTransferPausable.- Returns:
- true if the pause is successful. falseotherwise.
 
 - 
pausepublic boolean pause() Description copied from interface:IFileTransferPausablePause file transfer. Returns true if the associated IFileTransfer is successfully paused. Returns false if the implementing file transfer cannot be paused, or transfer has already completed.- Specified by:
- pausein interface- IFileTransferPausable
- Returns:
- boolean true if file transfer successfully paused. False if cannot be paused, or the transfer has already completed
 
 - 
doResumeprotected abstract boolean doResume() Subclass overridable version ofresume(). Subclasses must provide an implementation of this method to supportIFileTransferPausable.- Returns:
- true if the resume is successful. falseotherwise.
 
 - 
resumepublic boolean resume() Description copied from interface:IFileTransferPausableResume file transfer after having been paused. If successfully resumed, then returns true. If the associated IFileShare is not already paused, or has already completed then this method returns false.- Specified by:
- resumein interface- IFileTransferPausable
- Returns:
- boolean true if transfer is successfully resumed, false otherwise
 
 - 
getListenerpublic IFileTransferListener getListener() Description copied from interface:IIncomingFileTransferGet listener assigned to this incoming file transfer. May benullif no listener has been provided.- Specified by:
- getListenerin interface- IIncomingFileTransfer
- Returns:
- listener the IFileTransferListener provided for this incoming file transfer.
 
 - 
createRangeNameprotected String createRangeName() 
 - 
createJobNameprotected String createJobName() 
 - 
setupAndScheduleJobprotected void setupAndScheduleJob(FileTransferJob fileTransferJob) 
 - 
fireReceiveStartEventprotected void fireReceiveStartEvent() 
 - 
fireReceiveResumedEventprotected void fireReceiveResumedEvent() 
 - 
getFileRangeSpecificationpublic IFileRangeSpecification getFileRangeSpecification() Description copied from interface:IIncomingFileTransferGet file range specification for this incoming file transfer instance. Will returnnullif the retrieval is of the entire file.- Specified by:
- getFileRangeSpecificationin interface- IIncomingFileTransfer
- Returns:
- file range specification for this incoming file transfer instance.  Returns
 nullif the retrieval is of the entire file.
 
 - 
sendRetrieveRequestpublic void sendRetrieveRequest(IFileID rFileID, IFileRangeSpecification rangeSpec, IFileTransferListener transferListener, Map ops) throws IncomingFileTransferException Description copied from interface:IRetrieveFileTransferContainerAdapterSend request for transfer of a remote file to local file storage. This method is used to initiate a file retrieve for a remoteFileID (first parameter). File transfer events are asynchronously delivered a file transfer listener (third parameter). The given remoteFileID and transferListener must not be null.NOTE: if this method completes successfully, the given transferListener will be asynchronously notified via an IIncomingFileTransferReceiveDoneEvent (along with other possible events). All implementations are required to issue this event whether successful or failed. Listeners can consult IIncomingFileTransferReceiveDoneEvent.getException()to determine whether the transfer operation completed successfully.- Specified by:
- sendRetrieveRequestin interface- IRetrieveFileTransferContainerAdapter
- Parameters:
- rFileID- reference to the remote target file (e.g. http://www.eclipse.org/index.html) or a reference to a resource that specifies the location of a target file. Implementing providers will determine what protocol schemes are supported (e.g. ftp, http, torrent, file, etc) and the required format of the scheme-specific information. If a protocol is specified that is not supported, or the scheme-specific information is not well-formed, then an IncomingFileTransferException will be thrown. Typically, callers will create IFileID instances via calls such as:- IFileID remoteFileID = FileIDFactory.getDefault().createID( ftc.getRetrieveNamespace(), "http://www.composent.com/index.html");Must not be- null.
- rangeSpec- a range specification for retrieving a portion of the given remote file. If- nullthe entire file will be retrieved (as per- IRetrieveFileTransferContainerAdapter.sendRetrieveRequest(IFileID, IFileTransferListener, Map). If non-- nullthe given file range will be used to retrieve the given file. For example, if the rangeSpecification has a start value of 1 and end value of 3, and the total length of the file is 5 bytes with content [a, b, c, d, e], a successful retrieve request would transfer bytes 'b', 'c', and 'd', but not 'a', and 'e'.
- transferListener- a listener for file transfer events. Must not be null. See Note above.
- ops- a Map of options associated with sendRetrieveRequest. The particular name/value pairs will be unique to the individual providers. May be- null.
- Throws:
- IncomingFileTransferException- if some problem sending retrieve request
 
 - 
setupProxyprotected abstract void setupProxy(Proxy proxy) Setup ECF proxy. Subclasses must override this method to do appropriate proxy setup. This method will be called from withinsendRetrieveRequest(IFileID, IFileTransferListener, Map)andsendRetrieveRequest(IFileID, IFileRangeSpecification, IFileTransferListener, Map), prior to the actual call toopenStreams().- Parameters:
- proxy- the proxy to be setup. Will not be- null.
 
 - 
selectProxyFromProxiesprotected org.eclipse.core.net.proxy.IProxyData selectProxyFromProxies(String protocol, org.eclipse.core.net.proxy.IProxyData[] proxies) Select a single proxy from a set of proxies available for the given host. This implementation selects in the following manner: 1) If proxies provided is null or array of 0 length, null is returned. If only one proxy is available (array of length 1) then the entry is returned. If proxies provided is length greater than 1, then if the type of a proxy in the array matches the given protocol (e.g. http, https), then the first matching proxy is returned. If the protocol does not match any of the proxies, then the *first* proxy (i.e. proxies[0]) is returned. Subclasses may override if desired.- Parameters:
- protocol- the target protocol (e.g. http, https, scp, etc). Will not be- null.
- proxies- the proxies to select from. May be- nullor array of length 0.
- Returns:
- proxy data selected from the proxies provided.
 
 - 
setupProxiesprotected void setupProxies() 
 - 
getRemoteFileNamepublic String getRemoteFileName() Description copied from interface:IIncomingFileTransferObtains the name of the remote file if possible. The name will typically but not necessarily be the same as the leaf part of the path to the remote file.- Specified by:
- getRemoteFileNamein interface- IIncomingFileTransfer
- Returns:
- The name of the remote file or nullif no such name can be determined.
 
 - 
targetHasGzSuffixprotected boolean targetHasGzSuffix(String target) 
 
- 
 
-