Class IxFileUploadTransaction

  • All Implemented Interfaces:
    ITwoPhaseIOTransaction, ITwoPhaseTransaction

    public final class IxFileUploadTransaction
    extends Object
    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 Detail

      • 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 Detail

      • 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()
        Specified by:
        hasBackup in interface ITwoPhaseIOTransaction
        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()
        Specified by:
        getBackup in interface ITwoPhaseIOTransaction
        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).
      • getLastError

        public final Throwable getLastError()
        Specified by:
        getLastError in interface ITwoPhaseTransaction
        Returns:
        The last exception that was caugth during the transaction, or null if no error occurred;