org.eclipse.emf.cdo.transaction
Class CDOAutoAttacher

java.lang.Object
  extended by org.eclipse.emf.cdo.transaction.CDODefaultTransactionHandler1
      extended by org.eclipse.emf.cdo.transaction.CDOAutoAttacher
All Implemented Interfaces:
CDOTransactionHandler1, CDOTransactionHandlerBase

public class CDOAutoAttacher
extends CDODefaultTransactionHandler1

A transaction handler that automatically attaches cross-referenced objects to the resource that contains the referencing object.

Since:
2.0
Author:
Simon McDuff

Constructor Summary
CDOAutoAttacher(CDOTransaction transaction)
           
 
Method Summary
 void attachingObject(CDOTransaction transaction, CDOObject object)
          Called by a CDOTransaction before an object is added.
 CDOTransaction getTransaction()
           
 void modifyingObject(CDOTransaction transaction, CDOObject object, CDOFeatureDelta featureChange)
          Called by a CDOTransaction before an object is modified.
protected  void persist(EObject res, Object object)
           
 
Methods inherited from class org.eclipse.emf.cdo.transaction.CDODefaultTransactionHandler1
detachingObject
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CDOAutoAttacher

public CDOAutoAttacher(CDOTransaction transaction)
Method Detail

getTransaction

public CDOTransaction getTransaction()

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
Overrides:
attachingObject in class CDODefaultTransactionHandler1

modifyingObject

public void modifyingObject(CDOTransaction transaction,
                            CDOObject object,
                            CDOFeatureDelta featureChange)
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
Overrides:
modifyingObject in class CDODefaultTransactionHandler1

persist

protected void persist(EObject res,
                       Object object)


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