Project Wonder 5.0

com.webobjects.eoaccess
Class ERXEntityDependencyOrderingDelegate

java.lang.Object
  extended by com.webobjects.eoaccess.ERXEntityDependencyOrderingDelegate

public class ERXEntityDependencyOrderingDelegate
extends Object

EODatabaseContext delegate to order adaptor operations by FK constraints. This prevents most ordering operations on databases like MS SQL that do not support deferred constraints like a real database. The easiest way to use this is:

 ERXDatabaseContextMulticastingDelegate.addDefaultDelegate(new ERXEntityDependencyOrderingDelegate());
 
To turn this on for a Wonder application, just set this property:
 com.webobjects.eoaccess.ERXEntityDependencyOrderingDelegate.active = true
 

Author:
chill

Field Summary
protected  NSComparator adaptorOpComparator
           
static String ERXEntityDependencyOrderingDelegateActiveKey
           
 
Constructor Summary
ERXEntityDependencyOrderingDelegate()
           
 
Method Summary
protected  NSComparator adaptorOpComparator()
          Lazy creation of an EOAdaptorOpComparator that uses a list of entities that are in FK dependancy order.
 boolean databaseContextShouldHandleDatabaseException(EODatabaseContext dbCtxt, Throwable exception)
           
 NSArray databaseContextWillPerformAdaptorOperations(EODatabaseContext aDatabaseContext, NSArray adaptorOperations, EOAdaptorChannel adaptorChannel)
          EODatabaseContext.Delegate method to order a list of adaptor operations.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ERXEntityDependencyOrderingDelegateActiveKey

public static final String ERXEntityDependencyOrderingDelegateActiveKey
See Also:
Constant Field Values

adaptorOpComparator

protected NSComparator adaptorOpComparator
Constructor Detail

ERXEntityDependencyOrderingDelegate

public ERXEntityDependencyOrderingDelegate()
Method Detail

adaptorOpComparator

protected NSComparator adaptorOpComparator()
Lazy creation of an EOAdaptorOpComparator that uses a list of entities that are in FK dependancy order. Enable DEBUG logging to see the ordered list of entity names.

Returns:
EOAdaptorOpComparator that uses a list of entities that are in FK dependancy order
See Also:
EOAdaptorOpComparator

databaseContextWillPerformAdaptorOperations

public NSArray databaseContextWillPerformAdaptorOperations(EODatabaseContext aDatabaseContext,
                                                           NSArray adaptorOperations,
                                                           EOAdaptorChannel adaptorChannel)
EODatabaseContext.Delegate method to order a list of adaptor operations. Uses adaptorOpComparator() for the ordering.

Parameters:
aDatabaseContext - EODatabaseContext that the operations will be executed in
adaptorOperations - list of operations to execute
adaptorChannel - the adaptor channel these will be executed on
Returns:
operations in an order that should avoid FK constraint violations
See Also:
EODatabaseContext.Delegate.databaseContextWillPerformAdaptorOperations(EODatabaseContext, NSArray,EOAdaptorChannel)

databaseContextShouldHandleDatabaseException

public boolean databaseContextShouldHandleDatabaseException(EODatabaseContext dbCtxt,
                                                            Throwable exception)

Last updated: Wed, Feb 22, 2012 • 07:00 AM EST

Copyright © 2002 – 2011 Project Wonder.