|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.ojb.odmg.TransactionImpl
public class TransactionImpl
Implementation of Transaction for org.odmg.Transaction.
| Field Summary | |
|---|---|
protected PersistenceBrokerInternal |
broker
|
protected ObjectEnvelopeTable |
objectEnvelopeTable
the internal table containing all Objects "touched" by this tx and their respective transactional state |
| Fields inherited from interface org.odmg.Transaction |
|---|
READ, UPGRADE, WRITE |
| Constructor Summary | |
|---|---|
TransactionImpl(ImplementationImpl implementation)
Creates new Transaction |
|
| Method Summary | |
|---|---|
void |
abort()
Abort and close the transaction. |
void |
afterLoading(CollectionProxyDefaultImpl colProxy)
Remove colProxy from list of pending collections and register its contents with the transaction. |
void |
afterMaterialization(IndirectionHandler handler,
Object materializedObject)
this callback is invoked after an Object is materialized within an IndirectionHandler. |
void |
beforeLoading(CollectionProxyDefaultImpl colProxy)
noop -- here for interface |
void |
beforeMaterialization(IndirectionHandler handler,
Identity oid)
this callback is invoked before an Object is materialized within an IndirectionHandler. |
void |
begin()
Start a transaction. |
protected boolean |
cascadeDeleteFor(ObjectReferenceDescriptor ord)
Returns true if cascading delete is enabled for the specified single or collection descriptor. |
protected void |
checkForBegin()
|
protected void |
checkForCommit()
|
void |
checkpoint()
Commit the transaction, but reopen the transaction, retaining all locks. |
protected void |
cleanupBroker()
|
void |
clearRegistrationList()
Clears the list of processed object Identity. |
void |
commit()
Commit and close the transaction. |
void |
configure(Configuration config)
configure an object using the Configuration pConfig |
void |
deletePersistent(RuntimeObject rt)
|
protected void |
doAbort()
Do the Aborts, but don't release the locks. |
protected void |
doClose()
Close a transaction and do all the cleanup associated with it. |
protected void |
doWriteObjects(boolean isFlush)
Write objects to data store, but don't release the locks. |
void |
flush()
Calling flush flushes persistent object modifications
made within the ODMG transaction since the last checkpoint to the underlying
database transaction, but does commit the database transaction. |
DatabaseImpl |
getAssociatedDatabase()
Returns the associated database |
PersistenceBroker |
getBroker()
|
PersistenceBrokerInternal |
getBrokerInternal()
Gets the broker associated with the transaction. |
String |
getGUID()
|
ImplementationImpl |
getImplementation()
|
NamedRootsMap |
getNamedRootsMap()
|
Object |
getObjectByIdentity(Identity id)
Get object by identity. |
ArrayList |
getRegistrationList()
Returns an empty List for registration of processed object Identity. |
protected int |
getStatus()
|
protected boolean |
hasBroker()
Returns true if an PersistenceBroker was associated with this
tx instance. |
boolean |
isDeleted(Identity id)
Checks if the object with the given Identity
has been deleted within the transaction using
Database.deletePersistent(Object) or TransactionExt.markDelete(Object). |
boolean |
isImplicitLocking()
Returns true if implicite locking is enabled. |
boolean |
isOpen()
Determine whether the transaction is open or not. |
boolean |
isOrdering()
Return true if the OJB ordering algorithm is enabled. |
protected boolean |
isTransient(ClassDescriptor cld,
Object obj,
Identity oid)
Detect new objects. |
void |
join()
Attach the caller's thread to this Transaction and detach the
thread from any former Transaction the thread may have been
associated with. |
void |
leave()
Detach the caller's thread from this Transaction , but do not
attach the thread to another Transaction . |
void |
lock(Object obj,
int lockMode)
Upgrade the lock on the given object to the given lock mode. |
void |
lockAndRegister(RuntimeObject rtObject,
int lockMode,
boolean cascade,
List registeredObjects)
Lock and register the specified object, make sure that when cascading locking and register is enabled to specify a List to register the already processed object Identiy. |
void |
lockAndRegister(RuntimeObject rtObject,
int lockMode,
List registeredObjects)
Lock and register the specified object, make sure that when cascading locking and register is enabled to specify a List to register the already processed object Identiy. |
void |
markDelete(Object anObject)
Marks an object for deletion without locking the object. |
void |
markDirty(Object anObject)
Marks an object as dirty without locking the object. |
protected void |
performTransactionAwareAfterCommit()
|
protected void |
performTransactionAwareAfterRollback()
|
protected void |
performTransactionAwareBeforeCommit()
|
protected void |
performTransactionAwareBeforeRollback()
|
protected void |
prepareCommit()
Prepare does the actual work of moving the changes at the object level into storage (the underlying rdbms for instance). |
protected void |
refresh()
cleanup tx and prepare for reuse |
protected void |
registerToIndirectionHandler(IndirectionHandler handler)
|
protected void |
registerUnmaterializedLocks(Object obj)
register proxy objects that were locked but haven't been materialized yet so they can be unlocked when closing the transaction |
void |
setCascadingDelete(Class target,
boolean doCascade)
Allows to change the cascading delete behavior of all references of the specified class while this transaction is in use - if the specified class is an interface, abstract class or class with "extent" classes the cascading flag will be propagated. |
void |
setCascadingDelete(Class target,
String referenceField,
boolean doCascade)
Allows to change the cascading delete behavior of the specified reference of the target class while this transaction is in use. |
void |
setImplicitLocking(boolean value)
This method can be used to activate or deactivate the implicit locking mechanism for the current transaction. |
void |
setOrdering(boolean ordering)
Allows to enable/disable the OJB persistent object ordering algorithm. |
protected void |
setStatus(int status)
|
boolean |
tryLock(Object obj,
int lockMode)
Upgrade the lock on the given object to the given lock mode. |
protected void |
unRegisterFromAllCollectionProxies()
|
protected void |
unRegisterFromAllIndirectionHandlers()
|
protected void |
unregisterFromCollectionProxy(CollectionProxy handler)
|
protected void |
unregisterFromIndirectionHandler(IndirectionHandler handler)
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected PersistenceBrokerInternal broker
protected ObjectEnvelopeTable objectEnvelopeTable
| Constructor Detail |
|---|
public TransactionImpl(ImplementationImpl implementation)
implementation - The odmg Implementation class| Method Detail |
|---|
public ImplementationImpl getImplementation()
public NamedRootsMap getNamedRootsMap()
public DatabaseImpl getAssociatedDatabase()
protected int getStatus()
protected void setStatus(int status)
public boolean isOpen()
begin , but a subsequent call to
either commit or abort has not been made.
isOpen in interface Transactionpublic void join()
Transaction and detach the
thread from any former Transaction the thread may have been
associated with.
join in interface Transaction
public void lock(Object obj,
int lockMode)
throws LockNotGrantedException
lock in interface Transactionobj - object to acquire a lock on.lockMode - lock mode to acquire. The lock modes
are READ , UPGRADE , and WRITE .
LockNotGrantedException - Description of Exceptionpublic ArrayList getRegistrationList()
public void clearRegistrationList()
public void lockAndRegister(RuntimeObject rtObject,
int lockMode,
List registeredObjects)
public void lockAndRegister(RuntimeObject rtObject,
int lockMode,
boolean cascade,
List registeredObjects)
public void leave()
Transaction , but do not
attach the thread to another Transaction .
leave in interface Transaction
protected void doWriteObjects(boolean isFlush)
throws TransactionAbortedException,
LockNotGrantedException
TransactionAbortedException
LockNotGrantedExceptionprotected void doAbort()
protected void doClose()
protected void refresh()
public void checkpoint()
checkpoint commits persistent object modifications
made within the transaction since the last checkpoint to the database. The
transaction retains all locks it held on those objects at the time the
checkpoint was invoked.
checkpoint in interface Transactionpublic void flush()
TransactionExt
Calling flush flushes persistent object modifications
made within the ODMG transaction since the last checkpoint to the underlying
database transaction, but does commit the database transaction.
The ODMG transaction retains all locks it held on those objects at the time the flush
was invoked.
Transaction.checkpoint().
flush in interface TransactionExtTransactionExt.flush()public void markDelete(Object anObject)
TransactionExt
markDelete in interface TransactionExtanObject - Object to be markedTransactionExt.markDelete(java.lang.Object)public void deletePersistent(RuntimeObject rt)
public void markDirty(Object anObject)
TransactionExt
markDirty in interface TransactionExtanObject - Object to be markedTransactionExt.markDirty(java.lang.Object)public boolean isDeleted(Identity id)
TransactionExtIdentity
has been deleted within the transaction using
Database.deletePersistent(Object) or TransactionExt.markDelete(Object).
isDeleted in interface TransactionExtid - The identity of the object.
TransactionExt.isDeleted(org.apache.ojb.broker.Identity)
public boolean tryLock(Object obj,
int lockMode)
tryLock is the same as lock except it returns a boolean
indicating whether the lock was granted instead of generating an exception.
tryLock in interface Transactionobj - Description of ParameterlockMode - Description of Parameter
UPGRADE , and WRITE .public void commit()
commit commits to
the database all persistent object modifications within the transaction and
releases any locks held by the transaction. A persistent object
modification is an update of any field of an existing persistent object, or
an update or creation of a new named object in the database. If a
persistent object modification results in a reference from an existing
persistent object to a transient object, the transient object is moved to
the database, and all references to it updated accordingly. Note that the
act of moving a transient object to the database may create still more
persistent references to transient objects, so its referents must be
examined and moved as well. This process continues until the database
contains no references to transient objects, a condition that is guaranteed
as part of transaction commit. Committing a transaction does not remove
from memory transient objects created during the transaction.
The updateObjectList contains a list of all objects for which this transaction
has write privledge to. We need to update these objects.
commit in interface Transactionprotected void checkForCommit()
protected void prepareCommit()
throws TransactionAbortedException,
LockNotGrantedException
TransactionAbortedException - if the transaction has been aborted
for any reason.
IllegalStateException - Method called if transaction is
not in the proper state to perform this operation
TransactionNotInProgressException - if the transaction is closed.
LockNotGrantedExceptionpublic void abort()
abort in interface Transactionpublic void begin()
begin multiple times on the same
transaction object, without an intervening call to commit or
abort , causes the exception
TransactionInProgressException to be thrown on the second and
subsequent calls. Operations executed before a transaction has been opened,
or before reopening after a transaction is aborted or committed, have
undefined results; these may throw a
TransactionNotInProgressException exception.
begin in interface Transactionprotected void checkForBegin()
public String getGUID()
public Object getObjectByIdentity(Identity id)
throws PersistenceBrokerException
id - The identity
PersistenceBrokerException
public void beforeMaterialization(IndirectionHandler handler,
Identity oid)
beforeMaterialization in interface MaterializationListenerhandler - the invoking handleroid - the identity of the object to be materialized
public void afterMaterialization(IndirectionHandler handler,
Object materializedObject)
afterMaterialization in interface MaterializationListenerhandler - the invoking handlermaterializedObject - the materialized Objectprotected void unRegisterFromAllIndirectionHandlers()
protected void unRegisterFromAllCollectionProxies()
protected void unregisterFromCollectionProxy(CollectionProxy handler)
protected void unregisterFromIndirectionHandler(IndirectionHandler handler)
protected void registerToIndirectionHandler(IndirectionHandler handler)
protected void registerUnmaterializedLocks(Object obj)
public PersistenceBrokerInternal getBrokerInternal()
TransactionNotInProgressException - is the transaction is not open;public PersistenceBroker getBroker()
getBroker in interface HasBrokerprotected boolean hasBroker()
PersistenceBroker was associated with this
tx instance.
protected void cleanupBroker()
public void configure(Configuration config)
throws ConfigurationException
Configurable
configure in interface Configurableconfig - the Configuration object used to configure current instance
ConfigurationExceptionpublic void setImplicitLocking(boolean value)
TransactionExt
setImplicitLocking in interface TransactionExtvalue - If set true implicit locking is enabled,
if false, implicit locking is disabled.TransactionExt.setImplicitLocking(boolean)public boolean isImplicitLocking()
TransactionExt
isImplicitLocking in interface TransactionExtTransactionExt.setImplicitLocking(boolean)public void beforeLoading(CollectionProxyDefaultImpl colProxy)
beforeLoading in interface CollectionProxyListenercolProxy - the CollectionProxypublic void afterLoading(CollectionProxyDefaultImpl colProxy)
afterLoading in interface CollectionProxyListenercolProxy - the CollectionProxyprotected void performTransactionAwareBeforeCommit()
protected void performTransactionAwareAfterCommit()
protected void performTransactionAwareBeforeRollback()
protected void performTransactionAwareAfterRollback()
protected boolean isTransient(ClassDescriptor cld,
Object obj,
Identity oid)
public void setCascadingDelete(Class target,
String referenceField,
boolean doCascade)
setCascadingDelete in interface TransactionExttarget - The class to change cascading delete behavior of the references.referenceField - The field name of the 1:1, 1:n or 1:n reference.doCascade - If true cascading delete is enabled, false disabled.
public void setCascadingDelete(Class target,
boolean doCascade)
setCascadingDelete in interface TransactionExttarget - The class to change cascading delete behavior of all references.doCascade - If true cascading delete is enabled, false disabled.protected boolean cascadeDeleteFor(ObjectReferenceDescriptor ord)
public boolean isOrdering()
isOrdering in interface TransactionExtsetOrdering(boolean)public void setOrdering(boolean ordering)
setImplicitLocking(boolean).
setOrdering in interface TransactionExtordering - Set true to enable object ordering on commit.ImplementationExt.setOrdering(boolean)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||