org.castor.persist

Class AbstractTransactionContext

public abstract class AbstractTransactionContext extends Object implements TransactionContext

A transaction context is required in order to perform operations against the database. The transaction context is mapped to an API transaction or an XA transaction. The only way to begin a new transaction is through the creation of a new transaction context. A transaction context is created from an implementation class directly or through XAResourceImpl.

Since: 1.0

Version: $Revision: 6230 $ $Date: 2006-04-25 15:08:23 -0600 (Tue, 25 Apr 2006) $

Author: Assaf Arkin Ralf Joachim Werner Guttmann Gregory Block

Constructor Summary
AbstractTransactionContext(Database db)
Create a new transaction context.
Method Summary
voidaddTxSynchronizable(TxSynchronizable synchronizable)
protected voidclearConnections()
voidclose()
protected abstract voidcloseConnections()
The derived class must implement this method and close all the connections used in this transaction.
voidcommit()
protected abstract voidcommitConnections()
The derived class must implement this method and commit all the connections used in this transaction.
protected IteratorconnectionsIterator()
voidcreate(ClassMolder molder, Object object, OID depended)
protected abstract ConnectioncreateConnection(LockEngine engine)
voiddelete(Object object)
voidexpireCache(ClassMolder molder, Identity identity)
Objectfetch(ClassMolder molder, Identity identity, AccessMode suggestedAccessMode)
ClassLoadergetClassLoader()
ConnectiongetConnection(LockEngine engine)
DbMetaInfogetConnectionInfo(LockEngine engine)
DatabasegetDatabase()
intgetLockTimeout()
StringgetNamedQuery(ClassMolder molder, String name)
intgetStatus()
intgetTransactionTimeout()
ObjectLockgetWaitOnLock()
booleanisAutoStore()
booleanisCached(ClassMolder molder, Class cls, Identity identity)
booleanisCreated(Object object)
booleanisDeleted(Object object)
booleanisDeletedByOID(OID oid)
booleanisDepended(OID master, Object dependent)
booleanisLocked(Class cls, Identity identity, LockEngine lockEngine)
Returns true if the object given is locked.
booleanisOpen()
booleanisPersistent(Object object)
booleanisReadOnly(Object object)
booleanisRecorded(Object object)
booleanisUpdateCacheNeeded(Object object)
booleanisUpdatePersistNeeded(Object object)
IteratoriterateReadWriteObjectsInTransaction()
Objectload(Identity identity, ProposedEntity proposedObject, AccessMode suggestedAccessMode)
Objectload(Identity identity, ProposedEntity proposedObject, AccessMode suggestedAccessMode, QueryResults results)
voidmarkCreate(ClassMolder molder, Object object, OID rootObjectOID)
voidmarkModified(Object object, boolean updatePersist, boolean updateCache)
booleanmarkUpdate(ClassMolder molder, Object object, OID depended)
booleanprepare()
QueryResultsquery(LockEngine engine, PersistenceQuery query, AccessMode accessMode, boolean scrollable)
voidremoveTxSynchronizable(TxSynchronizable synchronizable)
voidrollback()
protected abstract voidrollbackConnections()
The derived class must implement this method and rollback all the connections used in this transaction.
voidsetAutoStore(boolean autoStore)
voidsetCallback(CallbackInterceptor callback)
voidsetInstanceFactory(InstanceFactory factory)
voidsetLockTimeout(int timeout)
voidsetStatus(int status)
voidsetTransactionTimeout(int timeout)
voidsetWaitOnLock(ObjectLock lock)
voidupdate(ClassMolder molder, Object object, OID depended)
voidwriteLock(Object object, int timeout)

Constructor Detail

AbstractTransactionContext

public AbstractTransactionContext(Database db)
Create a new transaction context. This method is used by the explicit transaction model.

Parameters: db Database instance

Method Detail

addTxSynchronizable

public final void addTxSynchronizable(TxSynchronizable synchronizable)
{@inheritDoc }

See Also: TransactionContext

clearConnections

protected final void clearConnections()

close

public final void close()
{@inheritDoc }

See Also: close

closeConnections

protected abstract void closeConnections()
The derived class must implement this method and close all the connections used in this transaction.

Throws: TransactionAbortedException The transaction could not close all the connections.

commit

public final void commit()
{@inheritDoc }

See Also: commit

commitConnections

protected abstract void commitConnections()
The derived class must implement this method and commit all the connections used in this transaction. If the transaction could not commit fully or partially, this method will throw an TransactionAbortedException, causing a rollback to occur as the next step.

Throws: TransactionAbortedException The transaction could not commit fully or partially and should be rolled back.

connectionsIterator

protected final Iterator connectionsIterator()

create

public final void create(ClassMolder molder, Object object, OID depended)
{@inheritDoc }

See Also: TransactionContext

createConnection

protected abstract Connection createConnection(LockEngine engine)

delete

public final void delete(Object object)
{@inheritDoc }

See Also: TransactionContext

expireCache

public final void expireCache(ClassMolder molder, Identity identity)
{@inheritDoc }

See Also: TransactionContext

fetch

public final Object fetch(ClassMolder molder, Identity identity, AccessMode suggestedAccessMode)
{@inheritDoc }

See Also: #fetch(org.exolab.castor.persist.ClassMolder, org.exolab.castor.persist.spi.Identity, org.exolab.castor.mapping.AccessMode)

getClassLoader

public final ClassLoader getClassLoader()
{@inheritDoc }

See Also: getClassLoader

getConnection

public final Connection getConnection(LockEngine engine)
{@inheritDoc }

See Also: TransactionContext

getConnectionInfo

public final DbMetaInfo getConnectionInfo(LockEngine engine)
{@inheritDoc }

See Also: TransactionContext

getDatabase

public final Database getDatabase()
{@inheritDoc }

See Also: getDatabase

getLockTimeout

public final int getLockTimeout()
{@inheritDoc }

See Also: getLockTimeout

getNamedQuery

public String getNamedQuery(ClassMolder molder, String name)

See Also: TransactionContext

UNKNOWN:

getStatus

public final int getStatus()
{@inheritDoc }

See Also: getStatus

getTransactionTimeout

public final int getTransactionTimeout()
{@inheritDoc }

See Also: getTransactionTimeout

getWaitOnLock

public final ObjectLock getWaitOnLock()
{@inheritDoc }

See Also: getWaitOnLock

isAutoStore

public final boolean isAutoStore()
{@inheritDoc }

See Also: isAutoStore

isCached

public final boolean isCached(ClassMolder molder, Class cls, Identity identity)
{@inheritDoc }

See Also: TransactionContext

isCreated

public final boolean isCreated(Object object)
{@inheritDoc }

See Also: TransactionContext

isDeleted

public final boolean isDeleted(Object object)
{@inheritDoc }

See Also: TransactionContext

isDeletedByOID

public final boolean isDeletedByOID(OID oid)
{@inheritDoc }

See Also: TransactionContext

isDepended

public final boolean isDepended(OID master, Object dependent)
{@inheritDoc }

See Also: TransactionContext

isLocked

public final boolean isLocked(Class cls, Identity identity, LockEngine lockEngine)
Returns true if the object given is locked.

Parameters: cls Class instance of the object to be investigated. identity Identity of the object to be investigated. lockEngine Current LcokEngine instance

Returns: True if the object in question is locked.

isOpen

public final boolean isOpen()
{@inheritDoc }

See Also: isOpen

isPersistent

public final boolean isPersistent(Object object)
{@inheritDoc }

See Also: TransactionContext

isReadOnly

public final boolean isReadOnly(Object object)
{@inheritDoc }

See Also: TransactionContext

isRecorded

public final boolean isRecorded(Object object)
{@inheritDoc }

See Also: TransactionContext

isUpdateCacheNeeded

public final boolean isUpdateCacheNeeded(Object object)
{@inheritDoc }

See Also: TransactionContext

isUpdatePersistNeeded

public final boolean isUpdatePersistNeeded(Object object)
{@inheritDoc }

See Also: TransactionContext

iterateReadWriteObjectsInTransaction

public final Iterator iterateReadWriteObjectsInTransaction()
{@inheritDoc }

See Also: iterateReadWriteObjectsInTransaction

load

public final Object load(Identity identity, ProposedEntity proposedObject, AccessMode suggestedAccessMode)
{@inheritDoc }

See Also: TransactionContext

load

public final Object load(Identity identity, ProposedEntity proposedObject, AccessMode suggestedAccessMode, QueryResults results)
{@inheritDoc }

See Also: TransactionContext

markCreate

public final void markCreate(ClassMolder molder, Object object, OID rootObjectOID)
{@inheritDoc }

See Also: TransactionContext

markModified

public final void markModified(Object object, boolean updatePersist, boolean updateCache)
{@inheritDoc }

See Also: TransactionContext

markUpdate

public final boolean markUpdate(ClassMolder molder, Object object, OID depended)
{@inheritDoc }

See Also: TransactionContext

prepare

public final boolean prepare()
{@inheritDoc }

See Also: prepare

query

public final QueryResults query(LockEngine engine, PersistenceQuery query, AccessMode accessMode, boolean scrollable)
{@inheritDoc }

See Also: TransactionContext

removeTxSynchronizable

public final void removeTxSynchronizable(TxSynchronizable synchronizable)
{@inheritDoc }

See Also: TransactionContext

rollback

public final void rollback()
{@inheritDoc }

See Also: rollback

rollbackConnections

protected abstract void rollbackConnections()
The derived class must implement this method and rollback all the connections used in this transaction. The connections may be closed, as they will not be reused in this transaction. This operation is guaranteed to succeed.

setAutoStore

public final void setAutoStore(boolean autoStore)
{@inheritDoc }

See Also: TransactionContext

setCallback

public final void setCallback(CallbackInterceptor callback)
{@inheritDoc }

See Also: TransactionContext

setInstanceFactory

public final void setInstanceFactory(InstanceFactory factory)
{@inheritDoc }

See Also: TransactionContext

setLockTimeout

public final void setLockTimeout(int timeout)
{@inheritDoc }

See Also: TransactionContext

setStatus

public final void setStatus(int status)
{@inheritDoc }

See Also: TransactionContext

setTransactionTimeout

public final void setTransactionTimeout(int timeout)
{@inheritDoc }

See Also: TransactionContext

setWaitOnLock

public final void setWaitOnLock(ObjectLock lock)
{@inheritDoc }

See Also: TransactionContext

update

public final void update(ClassMolder molder, Object object, OID depended)
{@inheritDoc }

See Also: TransactionContext

writeLock

public final void writeLock(Object object, int timeout)
{@inheritDoc }

See Also: TransactionContext

Intalio Inc. (C) 1999-2006. All rights reserved http://www.intalio.com