rcf.core.concurrent.transactions
Class AbstractTransactional<X extends Transaction>

java.lang.Object
  extended by rcf.core.concurrent.events.AbstractEventSource
      extended by rcf.core.concurrent.transactions.AbstractTransactional<X>
All Implemented Interfaces:
EventSource, Transactional<X>

@Revision(value="$Revision: 1.7 $",
          date="$Date: 2006/12/08 03:06:02 $",
          tag="$Name:  $")
public abstract class AbstractTransactional<X extends Transaction>
extends AbstractEventSource
implements Transactional<X>

TODO: Javadoc There are near duplicates of these methods in AbstractCollection and AbstractCollection.AbstractSubCollection.

TODO: Unit tests, Code review, Javadoc review, Seal/Finalize TODO: equals, hashCode, toString

Version:
$Revision: 1.7 $
Author:
Greg Gibeling

Field Summary
protected  Transaction.Internal<X> currTrans
          TODO: Javadoc
protected  WeakReference<Transaction.Internal<X>> prevTrans
          TODO: Javadoc
 
Fields inherited from class rcf.core.concurrent.events.AbstractEventSource
syndicate
 
Constructor Summary
AbstractTransactional()
           
 
Method Summary
protected  boolean archivableTransaction()
          TODO: Javadoc
protected  void commitTransaction()
          TODO: Javadoc
protected abstract  CompositeTransaction.BranchInternal<X> createCompositeTransaction()
          TODO: Javadoc
 boolean isSyndicated()
          Determine if this event source is syndicated; i.e.
protected  X newTransaction(Transaction.Internal<X> _nextTrans)
          TODO: Javadoc
protected  boolean prepTransaction()
          TODO: Javadoc Called before a transaction is started to determine if a transaction/event object should be allocated for a mutation.
 X transaction()
          TODO: Javadoc Get the current transaction
 X transaction(boolean lock)
          TODO: Javadoc
 
Methods inherited from class rcf.core.concurrent.events.AbstractEventSource
createdSyndicate, destroyedSyndicate, getSequenceNumber, incSequenceNumber, syndicate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface rcf.core.concurrent.events.EventSource
events, getSequenceNumber, incSequenceNumber, syndicate
 

Field Detail

prevTrans

protected WeakReference<Transaction.Internal<X extends Transaction>> prevTrans
TODO: Javadoc


currTrans

protected Transaction.Internal<X extends Transaction> currTrans
TODO: Javadoc

Constructor Detail

AbstractTransactional

public AbstractTransactional()
Method Detail

archivableTransaction

protected final boolean archivableTransaction()
TODO: Javadoc

Returns:
true if there is still a transaction to be archived!

commitTransaction

protected final void commitTransaction()
TODO: Javadoc


createCompositeTransaction

protected abstract CompositeTransaction.BranchInternal<X> createCompositeTransaction()
TODO: Javadoc

Returns:

isSyndicated

public boolean isSyndicated()
Description copied from interface: EventSource
Determine if this event source is syndicated; i.e. that there are one or more event sink registered to receive events from this source.

Specified by:
isSyndicated in interface EventSource
Overrides:
isSyndicated in class AbstractEventSource
Returns:
true if there are one or more EventSinks registered to receive events from this source.

newTransaction

protected final X newTransaction(Transaction.Internal<X> _nextTrans)
TODO: Javadoc

Parameters:
_nextTrans -
Returns:
null if the transaction was aborted while it's start event was being reported.

prepTransaction

protected final boolean prepTransaction()
TODO: Javadoc Called before a transaction is started to determine if a transaction/event object should be allocated for a mutation.

Returns:
true if the an actual transaction object should be allocated for this mutation.

transaction

public final X transaction()
Description copied from interface: Transactional
TODO: Javadoc Get the current transaction

Specified by:
transaction in interface Transactional<X extends Transaction>
Returns:

transaction

public final X transaction(boolean lock)
Description copied from interface: Transactional
TODO: Javadoc

Specified by:
transaction in interface Transactional<X extends Transaction>
Parameters:
lock - TODO: Transactional Locking
Returns:
null if the transaction was aborted while it's start event was being reported.