Package org.eclipse.emf.cdo.transaction

# Schnittstelle CDOTransactionHandler1.WithUndo

Alle Superschnittstellen:
  `CDOTransactionHandler1`, `CDOTransactionHandlerBase`

Alle bekannten Implementierungsklassen:
  `CDOAutoAttacher`, `CDOAutoLocker`, `CDOAutoLocker.ForSingleValuedChanges`, `CDODefaultTransactionHandler`, `CDODefaultTransactionHandler1`

Umschließende Schnittstelle:
  `CDOTransactionHandler1`

public static interface CDOTransactionHandler1.WithUndo extends CDOTransactionHandler1
A call-back interface that is called by a `transaction` before `objects` are attached, modified, undone or detached.

Seit:
  4.6
Autor:
  Eike Stepper

## Verschachtelte Klassen - Übersicht

## Von Schnittstelle geerbte verschachtelte Klassen/Schnittstellen org.eclipse.emf.cdo.transaction.CDOTransactionHandler1

`CDOTransactionHandler1.WithUndo`

## Methodenübersicht

Modifizierer und Typ
Methode
Beschreibung
`void`
`undoingObject(CDOTransaction transaction, CDOObject object, CDOFeatureDelta featureDelta)`
Called by a `CDOTransaction` before an object is modified.

### Von Schnittstelle geerbte Methoden org.eclipse.emf.cdo.transaction.CDOTransactionHandler1

`attachingObject, detachingObject, modifyingObject`

## Methodendetails

### undoingObject

void undoingObject(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`.