net.sf.hermesftp.cmd.impl
Class FtpCmdRetr

java.lang.Object
  extended by net.sf.hermesftp.cmd.AbstractFtpCmd
      extended by net.sf.hermesftp.cmd.AbstractFtpCmdRetr
          extended by net.sf.hermesftp.cmd.impl.FtpCmdRetr
All Implemented Interfaces:
java.lang.Cloneable, FtpCmd, FtpConstants

public class FtpCmdRetr
extends AbstractFtpCmdRetr

RETRIEVE (RETR)

This command causes the server-DTP to transfer a copy of the file, specified in the pathname, to the server- or user-DTP at the other end of the data connection. The status and contents of the file at the server site shall be unaffected.

[Excerpt from RFC-959, Postel and Reynolds]

Author:
Lars Behnke

Field Summary
 
Fields inherited from interface net.sf.hermesftp.common.FtpConstants
ATTR_CLIENT_NAME, ATTR_DATA_PROT, ATTR_FILE_OFFSET, ATTR_FORCE_UTF8, ATTR_GROUP_DATA, ATTR_LOGIN_TIME, ATTR_RENAME_FILE, ATTR_RESTART_MARKERS, ATTR_SSL, ATTR_USER_DATA, BYTE_LENGTH, BYTE_MASK, DEFAULT_BEAN_RES, DEFAULT_KEYSTORE, DEFAULT_KEYSTORE_PASS, DT_ASCII, DT_BINARY, DT_EBCDIC, HERMES_HOME, MILLI, MODE_BLOCK, MODE_COMPRESS, MODE_STREAM, MODE_ZIP, MSG_GOODBYE, MSG150, MSG200, MSG200_NOTED, MSG200_PBSZ, MSG200_SIZE, MSG200_TYPE, MSG202, MSG211_FEAT_ENTRY, MSG211_FEAT_FOOTER, MSG211_FEAT_HEADER, MSG211_STAT, MSG213_SIZE, MSG213_TIME, MSG214, MSG220, MSG220_WEL, MSG226, MSG227, MSG229, MSG230, MSG234, MSG250, MSG257, MSG331, MSG350, MSG350_REST, MSG421, MSG425, MSG426, MSG431, MSG450, MSG451, MSG500, MSG500_CMD, MSG501, MSG501_PATH, MSG501_SIZE, MSG503, MSG503_USR, MSG504, MSG522, MSG530, MSG530_AUTH, MSG534, MSG536, MSG550, MSG550_COMM, MSG550_EXISTS, MSG550_MSG, MSG550_NOTEMPTY, MSG550_PERM, MSG553, OPT_ALLOWED_PASSIVE_PORTS, OPT_BUFFER_SIZE, OPT_CHARSET_ASCII, OPT_CHARSET_EBCDIC, OPT_EMULATE_UNIX, OPT_FTP_PORT, OPT_IPV4_BLACK_LIST, OPT_IPV6_BLACK_LIST, OPT_MAX_CONNECTIONS, OPT_MAX_DOWNLOAD_RATE, OPT_MAX_IDLE_SECONDS, OPT_MAX_UPLOAD_RATE, OPT_MSG_GOODBYE, OPT_MSG_WELCOME, OPT_REMOTE_DIR, OPT_SSL_ALLOW_EXPLICIT, OPT_SSL_ALLOW_IMPLICIT, OPT_SSL_CIPHER_SUITES, OPT_SSL_FORCE, OPT_SSL_KEYSTORE_FILE, OPT_SSL_KEYSTORE_PASS, OPT_SSL_PORT_IMPLICIT, PRIV_NONE, PRIV_READ, PRIV_READ_WRITE, PRIV_WRITE, PWD, SEPARATOR, SERVER_STATUS_HALTED, SERVER_STATUS_INIT, SERVER_STATUS_READY, SERVER_STATUS_UNDEF, SPACE, STAT_BYTES_DOWNLOADED, STAT_BYTES_UPLOADED, STAT_DOWNLOAD_RATE, STAT_FILES_DOWNLOADED, STAT_FILES_UPLOADED, STAT_UPLOAD_RATE, STRUCT_FILE, STRUCT_RECORD, TYPE_NAMES, WILDCARD
 
Constructor Summary
FtpCmdRetr()
           
 
Method Summary
protected  void doPerformAccessChecks(java.io.File file)
          Checks availability and access rights for the current folder and passed file.
protected  void doRetrieveFileData(java.io.OutputStream os, java.io.File file, long fileOffset)
          Retrieves file based data.
protected  void doRetrieveRecordData(RecordWriteSupport rws, java.io.File file, long fileOffset)
          Retrieves record based data.
 void execute()
          Executes the command.
 java.lang.String getHelp()
          Returns a short help text for the command.
 boolean isAuthenticationRequired()
          Returns whether authentication is needed or not.
 
Methods inherited from class net.sf.hermesftp.cmd.AbstractFtpCmdRetr
getCompleted, getFileSize, getTransferRateLimiter, handleAsyncCmd, incCompleted, isAbortRequested, setFileSize, setTransferRateLimiter
 
Methods inherited from class net.sf.hermesftp.cmd.AbstractFtpCmd
getAbsPath, getAndResetFileOffset, getArguments, getCtx, getPathArg, getPermission, getToken, isResponded, msg, msg, msg, msgOut, msgOut, msgOut, out, setArguments, setCtx, setToken
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FtpCmdRetr

public FtpCmdRetr()
Method Detail

execute

public void execute()
             throws FtpCmdException
Executes the command.

Specified by:
execute in interface FtpCmd
Overrides:
execute in class AbstractFtpCmdRetr
Throws:
FtpCmdException - Thrown on any exception occuring while the command is executed.

getHelp

public java.lang.String getHelp()
Returns a short help text for the command.

Returns:
The help text.

isAuthenticationRequired

public boolean isAuthenticationRequired()
Returns whether authentication is needed or not.

Returns:
True, if the command requires authentication.

doPerformAccessChecks

protected void doPerformAccessChecks(java.io.File file)
                              throws java.io.IOException
Checks availability and access rights for the current folder and passed file. The methods acts as a primitive operation that is called by the template method execute(boolean);

Specified by:
doPerformAccessChecks in class AbstractFtpCmdRetr
Parameters:
file - The destination file.
Throws:
java.io.IOException - Thrown if one of the following conditions occurred: (1) IO failed or (3) access rights have been violated or (3) resource limits have been reached.

doRetrieveRecordData

protected void doRetrieveRecordData(RecordWriteSupport rws,
                                    java.io.File file,
                                    long fileOffset)
                             throws java.io.IOException
Retrieves record based data. Since native files generally do not support records, the assumption is made that each line of a text file corresponds to a record. The method acts as a primitive operation that is called by the template method execute(); Futhermore, text record data must be encoded by an 1-byte character set (ACII, ANSI or EBCDIC).

Specified by:
doRetrieveRecordData in class AbstractFtpCmdRetr
Parameters:
rws - The output stream.
file - The source file.
fileOffset - The file offset.
Throws:
java.io.IOException - Thrown if IO fails or if a resource limit has been reached.

doRetrieveFileData

protected void doRetrieveFileData(java.io.OutputStream os,
                                  java.io.File file,
                                  long fileOffset)
                           throws java.io.IOException
Retrieves file based data. The method acts as a primitive operation that is called by the template method execute();

Specified by:
doRetrieveFileData in class AbstractFtpCmdRetr
Parameters:
os - The output stream.
file - The source file.
fileOffset - The file offset.
Throws:
java.io.IOException - Thrown if IO fails or if a resource limit has been reached.


Copyright © 2005-2007 Lars Behnke. All Rights Reserved.