org.eclipse.emf.cdo.transaction
Interface CDOTransactionHandler1

All Superinterfaces:
CDOTransactionHandlerBase
All Known Subinterfaces:
CDOTransactionHandler
All Known Implementing Classes:
CDOAsyncTransactionHandler, CDOAutoAttacher, CDODefaultTransactionHandler, CDODefaultTransactionHandler1

public interface CDOTransactionHandler1
extends CDOTransactionHandlerBase

A call-back interface that is called by a transcation when objects are attached, modified or detached.

Since:
4.0

Method Summary
 void attachingObject(CDOTransaction transaction, CDOObject object)
          Called by a CDOTransaction before an object is added.
 void detachingObject(CDOTransaction transaction, CDOObject object)
          Called by a CDOTransaction before an object is detached.
 void modifyingObject(CDOTransaction transaction, CDOObject object, CDOFeatureDelta featureDelta)
          Called by a CDOTransaction before an object is modified.
 

Method Detail

attachingObject

void attachingObject(CDOTransaction transaction,
                     CDOObject object)
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.


detachingObject

void detachingObject(CDOTransaction transaction,
                     CDOObject object)
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.


modifyingObject

void modifyingObject(CDOTransaction transaction,
                     CDOObject object,
                     CDOFeatureDelta featureDelta)
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.



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