Package de.uplanet.util.transaction
Interface ITwoPhaseTransaction
- All Known Subinterfaces:
 ITwoPhaseIOTransaction
- All Known Implementing Classes:
 AbstractTwoPhaseIOTransaction,DirectDirectoryCreateTransaction,DirectDirectoryDeleteTransaction,DirectDirectoryTransaction,DirectFileCopyTransaction,DirectFileDeleteTransaction,DirectFileMoveTransaction,IndirectDeleteDirectoryTransaction,IndirectDeleteFileTransaction,IndirectDirectoryCreateTransaction,IndirectDirectoryTransaction,IndirectFileCopyTransaction,IndirectFileCreateFileTransaction,IndirectFileMoveTransaction,IxFileUploadTransaction
public interface ITwoPhaseTransaction
A simple two-phase commit file system transaction.
 
The basic usage pattern is:
  for each ISimpleFileSystemTransaction cohort
      allGood = allGood && cohort.requestCommit()
  if allGood
  {
      for each ISimpleFileSystemTransaction cohort
          cohort.commit()
  }
  else
  {
      for each ISimpleFileSystemTransaction cohort
          cohort.rollback()
  }
 - 
Method Details
- 
requestCommit
boolean requestCommit()Request a file system transaction.When this method returns
trueit 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.- Throws:
 IllegalStateException- If the two-phase commit protocol was violated.
 - 
commit
void commit()Commit the transaction.- Throws:
 IllegalStateException- If the two-phase commit protocol was violated.
 - 
rollback
boolean rollback()Try to rollback the file system transaction.- Returns:
 trueif the rollback was successful, orfalseotherwise. In the latter casegetLastError()may give additional information about why the rollback failed. A backup may exist then.- Throws:
 IllegalStateException- If the two-phase commit protocol was violated.
 - 
getLastError
Throwable getLastError()- Returns:
 - The last exception that was caugth during the transaction,
    or 
nullif no error occurred; 
 
 -