org.eclipse.emf.cdo.transaction
Class CDOPostEventTransactionHandler

java.lang.Object
  extended by org.eclipse.emf.cdo.transaction.CDOPostEventTransactionHandler
All Implemented Interfaces:
CDOTransactionHandler, CDOTransactionHandler1, CDOTransactionHandler2, CDOTransactionHandlerBase
Direct Known Subclasses:
CDOPostEventTransactionHandler.Default

public abstract class CDOPostEventTransactionHandler
extends Object
implements CDOTransactionHandler

An abstract call-back class that is called by a transcation after objects have been attached, modified or detached.

Since:
4.1
See Also:
CDOTransactionHandler1

Nested Class Summary
static class CDOPostEventTransactionHandler.Default
          An empty default implementation of CDOPostEventTransactionHandler.
 
Constructor Summary
CDOPostEventTransactionHandler()
           
 
Method Summary
protected abstract  void attachedObject(CDOTransaction transaction, CDOObject object, Notification msg)
           
 void attachingObject(CDOTransaction transaction, CDOObject object)
          Called by a CDOTransaction before an object is added.
 void committedTransaction(CDOTransaction transaction, CDOCommitContext commitContext)
          Called by a CDOTransaction after it is being committed.
 void committingTransaction(CDOTransaction transaction, CDOCommitContext commitContext)
          Called by a CDOTransaction before it is being committed.
protected abstract  void detachedObject(CDOTransaction transaction, CDOObject object, Notification msg)
           
 void detachingObject(CDOTransaction transaction, CDOObject object)
          Called by a CDOTransaction before an object is detached.
protected abstract  void modifiedObject(CDOTransaction transaction, CDOObject object, Notification msg)
           
 void modifyingObject(CDOTransaction transaction, CDOObject object, CDOFeatureDelta featureDelta)
          Called by a CDOTransaction before an object is modified.
 void rolledBackTransaction(CDOTransaction transaction)
          Called by a CDOTransaction after it is rolled back.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CDOPostEventTransactionHandler

public CDOPostEventTransactionHandler()
Method Detail

attachingObject

public void attachingObject(CDOTransaction transaction,
                            CDOObject object)
Description copied from interface: CDOTransactionHandler1
Called by a CDOTransaction before an object is added. The implementor of this method is allowed to throw an unchecked exception that will propagate up to the operation that is about to add the object (thereby preventing the operation from successful completion).

Note: Implementors must not start threads which access the view and wait for their completion since deadlocks can result. The following example causes a deadlock:

 getDisplay().syncExec(new Runnable()
 {
   public void run()
   {
     try
     {
       cdoObject.getName();
     }
     catch (Exception ignore)
     {
     }
   }
 });
 
If you need to synchronously execute threads which access the view you should use CDOAsyncTransactionHandler.

Specified by:
attachingObject in interface CDOTransactionHandler1

modifyingObject

public void modifyingObject(CDOTransaction transaction,
                            CDOObject object,
                            CDOFeatureDelta featureDelta)
Description copied from interface: CDOTransactionHandler1
Called by a CDOTransaction before an object is modified. The implementor of this method is allowed to throw an unchecked exception that will propagate up to the operation that is about to modify the object (thereby preventing the operation from completing successfully).

Note: Implementors must not start threads which access the view and wait for their completion since deadlocks can result. The following example causes a deadlock:

 getDisplay().syncExec(new Runnable()
 {
   public void run()
   {
     try
     {
       cdoObject.getName();
     }
     catch (Exception ignore)
     {
     }
   }
 });
 
If you need to synchronously execute threads which access the view you should use CDOAsyncTransactionHandler.

Specified by:
modifyingObject in interface CDOTransactionHandler1

detachingObject

public void detachingObject(CDOTransaction transaction,
                            CDOObject object)
Description copied from interface: CDOTransactionHandler1
Called by a CDOTransaction before an object is detached. The implementor of this method is allowed to throw an unchecked exception that will propagate up to the operation that is about to remove the object (thereby preventing the operation from completing successfully).

Note: Implementors must not start threads which access the view and wait for their completion since deadlocks can result. The following example causes a deadlock:

 getDisplay().syncExec(new Runnable()
 {
   public void run()
   {
     try
     {
       cdoObject.getName();
     }
     catch (Exception ignore)
     {
     }
   }
 });
 
If you need to synchronously execute threads which access the view you should use CDOAsyncTransactionHandler.

Specified by:
detachingObject in interface CDOTransactionHandler1

committingTransaction

public void committingTransaction(CDOTransaction transaction,
                                  CDOCommitContext commitContext)
Description copied from interface: CDOTransactionHandler2
Called by a CDOTransaction before it is being committed. The implementor of this method is allowed to throw an unchecked exception that will propagate up to the operation that is about to commit the transaction (thereby preventing the operation from completing successfully). The implementor of this method is allowed to apply changes to the object graph managed by the transaction.

Specified by:
committingTransaction in interface CDOTransactionHandler2

committedTransaction

public void committedTransaction(CDOTransaction transaction,
                                 CDOCommitContext commitContext)
Description copied from interface: CDOTransactionHandler2
Called by a CDOTransaction after it is being committed. The implementor of this method is not allowed to throw an unchecked exception.

If you're interested in the results of the commit operation consider to implement CDOTransactionHandler3.committedTransaction().

Specified by:
committedTransaction in interface CDOTransactionHandler2

rolledBackTransaction

public void rolledBackTransaction(CDOTransaction transaction)
Description copied from interface: CDOTransactionHandler2
Called by a CDOTransaction after it is rolled back. If the implementor of this method throws an exception it will be logged as an error and subsequent handlers will be further called.

Specified by:
rolledBackTransaction in interface CDOTransactionHandler2

attachedObject

protected abstract void attachedObject(CDOTransaction transaction,
                                       CDOObject object,
                                       Notification msg)

modifiedObject

protected abstract void modifiedObject(CDOTransaction transaction,
                                       CDOObject object,
                                       Notification msg)

detachedObject

protected abstract void detachedObject(CDOTransaction transaction,
                                       CDOObject object,
                                       Notification msg)


Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) and others.