## org.eclipse.emf.cdo.transaction
Interface CDOTransactionHandler

All Known Implementing Classes:
  CDOAsyncTransactionHandler, CDOAutoAttacher, CDODefaultTransactionHandler

    public interface CDOTransactionHandler

Since:
  2.0

Method Summary
`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.
`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.
`void` `rolledBackTransaction(CDOTransaction transaction)` Called by a `CDOTransaction` after it is rolled back.

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`.

### committingTransaction

    void committingTransaction(CDOTransaction transaction,
                               CDOCommitContext commitContext)

  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).

### committedTransaction

    void committedTransaction(CDOTransaction transaction,
                              CDOCommitContext commitContext)

  Called by a `CDOTransaction` after it is being committed. The implementor of this method is not allowed to throw an unchecked exception.

### rolledBackTransaction

    void rolledBackTransaction(CDOTransaction transaction)

  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.

Copyright (c) 2004 - 2009 Eike Stepper (Berlin, Germany) and others. All Rights Reserved.