net.sf.hermesftp.cmd
Class AbstractFtpCmdStorFile

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

public abstract class AbstractFtpCmdStorFile
extends AbstractFtpCmdStor

Abstract STOR command implementation that saves files to the local disk.

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
AbstractFtpCmdStorFile()
           
 
Method Summary
protected  void doPerformAccessChecks(boolean unique, java.io.File file, long fileOffset)
          Checks availability and access rights for the current folder and passed file.
protected  void doStoreFileData(java.io.InputStream is, java.io.File file, long offset)
          Stores unstructured data as file.
protected  void doStoreRecordData(RecordReadSupport rrs, java.io.File file, long offset)
          Stores record based data as file.
 void execute(boolean unique)
          Executes the command.
 
Methods inherited from class net.sf.hermesftp.cmd.AbstractFtpCmdStor
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
 
Methods inherited from interface net.sf.hermesftp.cmd.FtpCmd
execute, getHelp, isAuthenticationRequired
 

Constructor Detail

AbstractFtpCmdStorFile

public AbstractFtpCmdStorFile()
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.

Overrides:
execute in class AbstractFtpCmdStor
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.

doPerformAccessChecks

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

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

doStoreFileData

protected 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);

Specified by:
doStoreFileData in class AbstractFtpCmdStor
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

doStoreRecordData

protected 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);

Specified by:
doStoreRecordData in class AbstractFtpCmdStor
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.


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