com.uwyn.rife.database
Class DbTransactionUser<ResultType,DataType>

java.lang.Object
  extended by com.uwyn.rife.database.DbTransactionUser<ResultType,DataType>
All Implemented Interfaces:
Cloneable
Direct Known Subclasses:
DbTransactionUserWithoutResult

public abstract class DbTransactionUser<ResultType,DataType>
extends Object
implements Cloneable

By extending this class it's possible to provide the logic that should be executed by the inTransaction method in the DbQueryManager class.

This class has both a default constructor and one that can take a data object. This can be handy when using it as an extending anonymous inner class when you need to use variables inside the inner class that are cumbersome to change to final in the enclosing class.

Since:
1.0
Version:
$Revision: 3634 $
Author:
Geert Bevin (gbevin[remove] at uwyn dot com)
See Also:
DbQueryManager.inTransaction(DbTransactionUser)

Field Summary
protected  DataType mData
           
 
Constructor Summary
DbTransactionUser()
           
DbTransactionUser(DataType data)
           
 
Method Summary
 Object clone()
          Simply clones the instance with the default clone method since this class contains no member variables.
 DataType getData()
           
 int getTransactionIsolation()
          Should be overridden if the transaction has to be executed in another isolation level.
 void rollback()
          Should be used to roll back ongoing transactions, otherwise enclosing transaction users might not be interrupted and subsequent modification can still happen outside the transaction.
 void throwException(Exception exception)
          Calling this method makes it possible to throw a checked exception from within this class.
abstract  ResultType useTransaction()
          Should be implemented by all extending classes.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mData

protected DataType mData
Constructor Detail

DbTransactionUser

public DbTransactionUser()

DbTransactionUser

public DbTransactionUser(DataType data)
Method Detail

getData

public DataType getData()

getTransactionIsolation

public int getTransactionIsolation()
Should be overridden if the transaction has to be executed in another isolation level.

Returns:
-1 when the active isolation level should be preserved; or

a level constant from Connection if the isolation needs to be changed.

Since:
1.0

rollback

public void rollback()
              throws RollbackException
Should be used to roll back ongoing transactions, otherwise enclosing transaction users might not be interrupted and subsequent modification can still happen outside the transaction.

Throws:
RollbackException - indicates that a rollback should happen and all further transaction logic interrupted.
Since:
1.0

throwException

public void throwException(Exception exception)
                    throws InnerClassException
Calling this method makes it possible to throw a checked exception from within this class.

To catch it you should surround the inTransaction with a try-catch block that catching InnerClassException. The original exception is then available through getCause() and can for example be rethrown.

Throws:
InnerClassException - when a checked exception needs to be thrown from within this class and caught outside the caller.
Since:
1.0

useTransaction

public abstract ResultType useTransaction()
                                   throws InnerClassException
Should be implemented by all extending classes.

Throws:
InnerClassException
Since:
1.0

clone

public Object clone()
Simply clones the instance with the default clone method since this class contains no member variables.

Overrides:
clone in class Object
Since:
1.0


Copyright © 2001-2007 Uwyn sprl/bvba. All Rights Reserved.