Class IxFileUploadTransaction

java.lang.Object
de.uplanet.util.transaction.AbstractTwoPhaseIOTransaction
de.uplanet.util.transaction.IxFileUploadTransaction
All Implemented Interfaces:
ITwoPhaseIOTransaction, ITwoPhaseTransaction

public final class IxFileUploadTransaction extends AbstractTwoPhaseIOTransaction
Same as DirectFileMoveTransaction but on a rollback the source file can be deleted depends on how the object was constructed. If the method process or requestCommit() fails the caller is responsible for the cleanup of the source file.
  • Constructor Details

    • IxFileUploadTransaction

      public IxFileUploadTransaction(File p_fileDst, File p_fileSrc, boolean p_bDeleteSrcFileOnRollback) throws IOException
      Parameters:
      p_fileDst - The destination file (must not exists, overwrite is not allowed here).
      p_fileSrc - The source file to move (must exists).
      p_bDeleteSrcFileOnRollback - Deletes the source file, if rollback was called.
      Throws:
      IOException
    • IxFileUploadTransaction

      public IxFileUploadTransaction(File p_fileDst, File p_fileSrc, boolean p_bOverwriteExisting, boolean p_bDeleteSrcFileOnRollback) throws IOException
      Parameters:
      p_fileDst - The destination file (must not exists, overwrite is not allowed here).
      p_fileSrc - The source file to move (must exists).
      p_bOverwriteExisting - true if an existing file should be overwrite otherwise false.
      p_bDeleteSrcFileOnRollback - Deletes the source file, if rollback was called.
      Throws:
      IOException
  • Method Details

    • process

      public boolean process()
      Returns:
      true all ok, false on a failure. On failure the caller is responsible for the cleanup of the source file
    • requestCommit

      public boolean requestCommit()
      Description copied from interface: ITwoPhaseTransaction
      Request a file system transaction.

      When this method returns true it has sucessfully moved the source file to it's new location, and has successfully created a backup copy of the destination file, if it existed before.

      Specified by:
      requestCommit in interface ITwoPhaseTransaction
      Returns:
      true all ok, false on a failure. On failure the caller is responsible for the cleanup of the source file
    • rollback

      public boolean rollback()
      Try to rollback the file transaction.
      Specified by:
      rollback in interface ITwoPhaseTransaction
      Returns:
      true if the rollback was successful, or false otherwise. In the latter case ITwoPhaseTransaction.getLastError() may give additional information about why the rollback failed, and a backup file may exist then.
    • getDestinationFile

      public final File getDestinationFile()
      Get the destination file.
      Returns:
      The value p_fileDst that was passed to the contructor.
    • getSourceFile

      public final File getSourceFile()
      Get the source file.
      Returns:
      The value p_fileSrc that was passed to the contructor.
    • hasBackup

      public final boolean hasBackup()
      Returns:
      true if the transaction has left a backup file, or false otherwise (e.g. if the destination file did not exist before the transaction).
    • getBackup

      public final File getBackup()
      Returns:
      The backup file that was left by the transaction, or null if none was created (e.g. if the destination file did not exist before the transaction).
    • commit

      public final void commit()
      Description copied from interface: ITwoPhaseTransaction
      Commit the transaction.
    • getLastError

      public final Throwable getLastError()
      Returns:
      The last exception that was caugth during the transaction, or null if no error occurred;
    • toString

      public String toString()
      Overrides:
      toString in class Object