net.sf.hermesftp.cmd
Class AbstractFtpCmdStor

java.lang.Object
  extended by net.sf.hermesftp.cmd.AbstractFtpCmd
      extended by net.sf.hermesftp.cmd.AbstractFtpCmdStor
All Implemented Interfaces:
java.lang.Cloneable, FtpCmd, FtpConstants
Direct Known Subclasses:
AbstractFtpCmdStorFile

public abstract class AbstractFtpCmdStor
extends AbstractFtpCmd

Ancestor command class that is extended by commands that store data on the remote file system.

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
AbstractFtpCmdStor()
           
 
Method Summary
protected abstract  void doPerformAccessChecks(boolean unique, java.io.File file, long offset)
          Checks availability and access rights for the current folder and passed file.
protected abstract  void doStoreFileData(java.io.InputStream is, java.io.File file, long offset)
          Stores unstructured data as file.
protected abstract  void doStoreRecordData(RecordReadSupport rrs, java.io.File file, long offset)
          Stores record based data as file.
 void execute(boolean unique)
          Executes the command.
 long getCompleted()
          Getter method for the java bean completed.
 long getFileSize()
          Getter method for the java bean fileSize.
 TransferRateLimiter getTransferRateLimiter()
          Getter Methode fuer die Eigenschaft transferRateLimiter.
 boolean handleAsyncCmd(java.lang.String req)
          Handles any request on the control connection that was sent while the current command is executed. For instance, while storing or retrieving the client may issue an abort or status command.
 void incCompleted(long completed)
          Setter method for the java bean completed.
protected  boolean isAbortRequested()
           
 void setFileSize(long fileSize)
          Setter method for the java bean fileSize.
 void setTransferRateLimiter(TransferRateLimiter transferRateLimiter)
           
 
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
 
Methods inherited from interface net.sf.hermesftp.cmd.FtpCmd
execute, getHelp, isAuthenticationRequired
 

Constructor Detail

AbstractFtpCmdStor

public AbstractFtpCmdStor()
Method Detail

execute

public void execute(boolean unique)
             throws FtpCmdException
Executes the command. This operation acts as a template method calling primitive operations implemented by the sub classes.

Parameters:
unique - True, if file that is supposed to be stored may not exist on the remote file system.
Throws:
FtpCmdException - Wrapper class for any exception thrown in the command.

handleAsyncCmd

public boolean handleAsyncCmd(java.lang.String req)
Handles any request on the control connection that was sent while the current command is executed. For instance, while storing or retrieving the client may issue an abort or status command.

Specified by:
handleAsyncCmd in interface FtpCmd
Overrides:
handleAsyncCmd in class AbstractFtpCmd
Parameters:
req - The request that has to be handled.
Returns:
True is request was handled, otherwise false.

doPerformAccessChecks

protected abstract void doPerformAccessChecks(boolean unique,
                                              java.io.File file,
                                              long offset)
                                       throws FtpException
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);

Parameters:
unique - True, if destination file may not exist already.
file - The destination file.
offset - The file offset (-1 on append).
Throws:
FtpException - Thrown if permission rules have been violated or resource limits have been exceeded.

doStoreRecordData

protected abstract void doStoreRecordData(RecordReadSupport rrs,
                                          java.io.File file,
                                          long offset)
                                   throws java.io.IOException
Stores record based data as file. The method acts as a primitive operation that is called by the template method execute(boolean);

Parameters:
rrs - The wrapped input stream.
file - Destination file.
offset - The file offset (-1 on append).
Throws:
java.io.IOException - Thrown if IO fails or if at least one resource limit was reached.

doStoreFileData

protected abstract void doStoreFileData(java.io.InputStream is,
                                        java.io.File file,
                                        long offset)
                                 throws java.io.IOException
Stores unstructured data as file. The method acts as a primitive operation that is called by the template method execute(boolean);

Parameters:
is - The input stream.
file - Destination file.
offset - The file offset (-1 on append).
Throws:
java.io.IOException - Thrown if IO fails or if at least one resource limit was reached

getCompleted

public long getCompleted()
Getter method for the java bean completed.

Returns:
Returns the value of the java bean completed.

incCompleted

public void incCompleted(long completed)
Setter method for the java bean completed.

Parameters:
completed - The value of completed to set.

getFileSize

public long getFileSize()
Getter method for the java bean fileSize.

Returns:
Returns the value of the java bean fileSize.

setFileSize

public void setFileSize(long fileSize)
Setter method for the java bean fileSize.

Parameters:
fileSize - The value of fileSize to set.

isAbortRequested

protected boolean isAbortRequested()
Returns:
True if abort has been requested.

getTransferRateLimiter

public TransferRateLimiter getTransferRateLimiter()
Getter Methode fuer die Eigenschaft transferRateLimiter.

Returns:
Wert der Eigenschaft transferRateLimiter.

setTransferRateLimiter

public void setTransferRateLimiter(TransferRateLimiter transferRateLimiter)
Parameters:
transferRateLimiter - the transferRateLimiter to set


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