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

java.lang.Object
  extended by rcf.core.concurrent.events.AbstractEventSource
      extended by rcf.core.concurrent.schedule.AbstractTask
          extended by rcf.core.concurrent.transactions.ExternalTransaction<X>
All Implemented Interfaces:
Event, EventSource, Task, Transaction

@Revision(value="$Revision: 1.9 $",
          date="$Date: 2006/12/15 20:37:50 $",
          tag="$Name:  $")
public class ExternalTransaction<X extends Transaction>
extends AbstractTask
implements Transaction

TODO: Javadoc

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

Version:
$Revision: 1.9 $
Author:
Greg Gibeling

Nested Class Summary
protected  class ExternalTransaction.Internal
          TODO: Javadoc
 
Nested classes/interfaces inherited from interface rcf.core.concurrent.schedule.Task
Task.State
 
Field Summary
protected  int eventSequenceNumber
          TODO: Javadoc
protected  Task.State lastState
          TODO: Javadoc
protected  Transactional<? extends ExternalTransaction<X>> source
          TODO: Javadoc
protected  rcf.core.util.collection.ImmutableCollection<X> transactions
          TODO: Javadoc
 
Fields inherited from class rcf.core.concurrent.schedule.AbstractTask
taskEventTypes
 
Fields inherited from class rcf.core.concurrent.events.AbstractEventSource
syndicate
 
Constructor Summary
ExternalTransaction(Transactional<? extends ExternalTransaction<X>> _source, rcf.core.util.collection.ImmutableCollection<Transactional<? extends X>> _transactionals)
          TODO: Javadoc
ExternalTransaction(Transactional<? extends ExternalTransaction<X>> _source, int _sequenceNumber, Transactional<? extends X>... _transactionals)
          TODO: Javadoc
 
Method Summary
 boolean abort()
          TODO: Javadoc
 boolean commit()
          TODO: Javadoc
 int getEventSequenceNumber()
          Get the sequence number of this event relative to it's Event.source().
 boolean isCancelled()
          Test if this event has been cancelled.
 boolean isLocked()
          TODO: Javadoc TODO: Transactional Locking
 boolean lock()
          TODO: Javadoc TODO: Transactional Locking
 Transactional<? extends ExternalTransaction<X>> source()
          TODO: Javadoc
 Task.State taskState()
          TODO: Javadoc
 rcf.core.util.collection.ImmutableCollection<X> transactions()
          TODO: Javadoc
 
Methods inherited from class rcf.core.concurrent.schedule.AbstractTask
events, syndicate, taskEventTypes, taskState
 
Methods inherited from class rcf.core.concurrent.events.AbstractEventSource
createdSyndicate, destroyedSyndicate, getSequenceNumber, incSequenceNumber, isSyndicated
 
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, isSyndicated, syndicate
 

Field Detail

eventSequenceNumber

protected final int eventSequenceNumber
TODO: Javadoc


source

protected final Transactional<? extends ExternalTransaction<X extends Transaction>> source
TODO: Javadoc


transactions

protected rcf.core.util.collection.ImmutableCollection<X extends Transaction> transactions
TODO: Javadoc


lastState

protected Task.State lastState
TODO: Javadoc

Constructor Detail

ExternalTransaction

public ExternalTransaction(Transactional<? extends ExternalTransaction<X>> _source,
                           rcf.core.util.collection.ImmutableCollection<Transactional<? extends X>> _transactionals)
TODO: Javadoc

Parameters:
_source -
_transactionals -

ExternalTransaction

public ExternalTransaction(Transactional<? extends ExternalTransaction<X>> _source,
                           int _sequenceNumber,
                           Transactional<? extends X>... _transactionals)
TODO: Javadoc

Parameters:
_source -
_sequenceNumber -
_transactionals -
Method Detail

abort

public boolean abort()
Description copied from interface: Transaction
TODO: Javadoc

Specified by:
abort in interface Transaction
Returns:
true indicates success. false indicates the transaction couldn't be aborted, or already was. if ((state == State.Committed) || (state == State.Interrupted)) throw new TaskStateException("Cannnot abort a transaction in state \"" + temp + "\"!");

commit

public boolean commit()
Description copied from interface: Transaction
TODO: Javadoc

Specified by:
commit in interface Transaction
Returns:
true indicates success. false indicates the transaction couldn't be committed, or already was. if ((state == State.Aborted) || (state == State.Interrupted)) throw new TaskStateException("Cannnot commit a transaction in state \"" + temp + "\"!");

getEventSequenceNumber

public int getEventSequenceNumber()
Description copied from interface: Event
Get the sequence number of this event relative to it's Event.source().

Specified by:
getEventSequenceNumber in interface Event
Returns:
The sequence number of this event relative to it's Event.source().

isCancelled

public boolean isCancelled()
Description copied from interface: Event
Test if this event has been cancelled. This method is used to tell the event syndicate reporting this event to stop bothering, because it's been cancelled.

This is used in conjunction with Transaction.abort(). The return value from this method has no meaning outside of the event syndicate reporting loop. Often this method will simply return Task.taskState() == Task.State.Aborted.

Specified by:
isCancelled in interface Event
Specified by:
isCancelled in interface Transaction
Returns:
true if this event has been cancelled, and no longer needs to be reported.
See Also:
Event.isCancelled()

isLocked

public boolean isLocked()
Description copied from interface: Transaction
TODO: Javadoc TODO: Transactional Locking

Specified by:
isLocked in interface Transaction
Returns:

lock

public boolean lock()
Description copied from interface: Transaction
TODO: Javadoc TODO: Transactional Locking

Specified by:
lock in interface Transaction
Returns:
true if the lock was acquired for this thread. false if it was already held.

source

public Transactional<? extends ExternalTransaction<X>> source()
TODO: Javadoc

Specified by:
source in interface Event
Specified by:
source in interface Transaction
Returns:

taskState

public Task.State taskState()
Description copied from interface: Task
TODO: Javadoc

Specified by:
taskState in interface Task
Overrides:
taskState in class AbstractTask
Returns:

transactions

public rcf.core.util.collection.ImmutableCollection<X> transactions()
TODO: Javadoc

Returns: