Package de.uplanet.util.transaction
Class IndirectFileCreateFileTransaction
- java.lang.Object
-
- de.uplanet.util.transaction.IndirectFileCreateFileTransaction
-
- All Implemented Interfaces:
ITwoPhaseIOTransaction
,ITwoPhaseTransaction
public final class IndirectFileCreateFileTransaction extends Object
The IO operation not done before commit is called by the transaction manager Transaction object for creating a new file. On rollback and commit the given source file will always deleted.
-
-
Constructor Summary
Constructors Constructor Description IndirectFileCreateFileTransaction(File p_fileDst, File p_fileSrc, boolean p_bOverwriteExisting)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
commit()
Commit the transaction.File
getBackup()
File
getDestinationFile()
Get the destination file.Throwable
getLastError()
File
getSourceFile()
Get the source file.boolean
hasBackup()
boolean
requestCommit()
Request a file system transaction.boolean
rollback()
Try to rollback the file transaction.String
toString()
-
-
-
Constructor Detail
-
IndirectFileCreateFileTransaction
public IndirectFileCreateFileTransaction(File p_fileDst, File p_fileSrc, boolean p_bOverwriteExisting) throws IOException
- Parameters:
p_fileDst
- The destination file.p_fileSrc
- The file used for create (must be a temporary file, because it will always be deleted after rollback or commit).p_bOverwriteExisting
-true
if an existing file should be overwritten, orfalse
otherwise.- Throws:
IOException
- Ifp_fileDst
orp_fileSrc
is not a file.
-
-
Method Detail
-
commit
public void commit()
Description copied from interface:ITwoPhaseTransaction
Commit the transaction.- Specified by:
commit
in interfaceITwoPhaseTransaction
-
rollback
public boolean rollback()
Try to rollback the file transaction.- Specified by:
rollback
in interfaceITwoPhaseTransaction
- Returns:
true
if the rollback was successful, orfalse
otherwise. In the latter caseITwoPhaseTransaction.getLastError()
may give additional information about why the rollback failed, and a backup file may exist then.
-
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 interfaceITwoPhaseTransaction
-
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 interfaceITwoPhaseIOTransaction
- Returns:
true
if the transaction has left a backup file, orfalse
otherwise (e.g. if the destination file did not exist before the transaction).
-
getBackup
public final File getBackup()
- Specified by:
getBackup
in interfaceITwoPhaseIOTransaction
- 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 interfaceITwoPhaseTransaction
- Returns:
- The last exception that was caugth during the transaction,
or
null
if no error occurred;
-
-