org.eclipse.emf.cdo.transaction

## Class CDOPostEventTransactionHandler

- java.lang.Object
- - org.eclipse.emf.cdo.transaction.CDOPostEventTransactionHandler

- All Implemented Interfaces:
    CDOTransactionHandler, CDOTransactionHandler1, CDOTransactionHandler2, CDOTransactionHandlerBase
  Direct Known Subclasses:
    CDOPostEventTransactionHandler.Default

      public abstract class CDOPostEventTransactionHandler
      extends java.lang.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
  Author:
    Martin Fluegge
  See Also:
    `CDOTransactionHandler1`

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `CDOPostEventTransactionHandler.Default` An empty default implementation of `CDOPostEventTransactionHandler`.

    - ### Nested classes/interfaces inherited from interface org.eclipse.emf.cdo.transaction.CDOTransactionHandler1

      `CDOTransactionHandler1.WithUndo`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CDOPostEventTransactionHandler()`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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) 2004-2019 Eike Stepper (Loehne, Germany) and others.
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html