TrueUpdate Manager Specification 0.2

net.java.trueupdate.manager.spec.tx
Class AtomicMethodsTransaction

java.lang.Object
  extended by net.java.trueupdate.manager.spec.tx.Transaction
      extended by net.java.trueupdate.manager.spec.tx.AtomicMethodsTransaction

public abstract class AtomicMethodsTransaction
extends Transaction

A local transaction which is made of truly atomic methods, that is its methods either completely succeed or completely fail. On this precondition, this class then cooperates with Transactions.execute(net.java.trueupdate.manager.spec.tx.Transaction) to make sure that its rollbackAtomic() method is only called if performAtomic() has succeeded before, e.g. when composed into a CompositeTransaction.

Author:
Christian Schlichtherle
See Also:
Transactions.execute(net.java.trueupdate.manager.spec.tx.Transaction), CompositeTransaction

Constructor Summary
AtomicMethodsTransaction()
           
 
Method Summary
 void commit()
          Commits the visible side effects of the body of this transaction.
 void commitAtomic()
          Semantically identical to commit(), but has to be truly atomic, that is it either completely succeeds or completely fails.
 void perform()
          Executes the body of this transaction.
abstract  void performAtomic()
          Semantically identical to perform(), but has to be truly atomic, that is it either completely succeeds or completely fails.
 void prepare()
          Sets up this transaction for execution.
 void prepareAtomic()
          Semantically identical to prepare(), but has to be truly atomic, that is it either completely succeeds or completely fails.
 void rollback()
          Reverts any visible side effects of the body of this transaction.
abstract  void rollbackAtomic()
          Semantically identical to rollback(), but has to be truly atomic, that is it either completely succeeds or completely fails.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AtomicMethodsTransaction

public AtomicMethodsTransaction()
Method Detail

commit

public final void commit()
                  throws Exception
Description copied from class: Transaction
Commits the visible side effects of the body of this transaction. If this method succeeds, any visible side effects of Transaction.perform() must be durable. If this method fails, the state of this transaction is undefined and may be inconsistent. If this method fails and this transaction is part of a composite transaction, then the previous transactions get neither committed nor rolled back and their state is undefined and may be inconsistent.

Overrides:
commit in class Transaction
Throws:
Exception

commitAtomic

public void commitAtomic()
                  throws Exception
Semantically identical to commit(), but has to be truly atomic, that is it either completely succeeds or completely fails.

Throws:
Exception

perform

public final void perform()
                   throws Exception
Description copied from class: Transaction
Executes the body of this transaction. If this method fails then this transaction gets aborted with calling Transaction.rollback(), so it may leave some visible side effects. If this method fails and this transaction is part of a composite transaction, then the previous transactions get properly rolled back.

Specified by:
perform in class Transaction
Throws:
Exception

performAtomic

public abstract void performAtomic()
                            throws Exception
Semantically identical to perform(), but has to be truly atomic, that is it either completely succeeds or completely fails.

Throws:
Exception

prepare

public final void prepare()
                   throws Exception
Description copied from class: Transaction
Sets up this transaction for execution. If this method fails then this transaction gets aborted without calling Transaction.rollback(), so it must not leave any visible side effects. If this method fails and this transaction is part of a composite transaction, then the previous transactions get properly rolled back.

Overrides:
prepare in class Transaction
Throws:
Exception

prepareAtomic

public void prepareAtomic()
                   throws Exception
Semantically identical to prepare(), but has to be truly atomic, that is it either completely succeeds or completely fails.

Throws:
Exception

rollback

public final void rollback()
                    throws Exception
Description copied from class: Transaction
Reverts any visible side effects of the body of this transaction. If this method succeeds, it must revert any visible side effects of Transaction.perform(). If this method fails, the state of this transaction is undefined and may be inconsistent. If this method fails and this transaction is part of a composite transaction, then the previous transactions get neither committed nor rolled back and their state is undefined and may be inconsistent.

Specified by:
rollback in class Transaction
Throws:
Exception

rollbackAtomic

public abstract void rollbackAtomic()
                             throws Exception
Semantically identical to rollback(), but has to be truly atomic, that is it either completely succeeds or completely fails.

Throws:
Exception

TrueUpdate Manager Specification 0.2

Copyright © 2013 Schlichtherle IT Services. All rights reserved.