|
Project Wonder 5.0.0.8795 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objecter.extensions.eof.ERXDatabaseContextDelegate
public class ERXDatabaseContextDelegate
This delegate implements several methods from the formal interface
EODatabaseContext.Delegate.
Of special note this class adds the ability
for enterpriseobjects to generate their own primary keys, correctly throws an
exception when a toOne relationship object is not found in the database and adds
debugging abilities to tracking down when faults are fired. It also supports a cache for
array fault that is checked before they are fetched from the database.
| Nested Class Summary | |
|---|---|
static class |
ERXDatabaseContextDelegate.ObjectNotAvailableException
|
| Field Summary | |
|---|---|
static String |
DatabaseContextFailedToFetchObject
|
static Logger |
dbLog
Faulting logging support, logging category: er.transaction.adaptor.FaultFiring |
static Logger |
exLog
Faulting logging support, logging category: er.transaction.adaptor.Exceptions |
static Logger |
log
Basic logging support |
| Constructor Summary | |
|---|---|
ERXDatabaseContextDelegate()
|
|
| Method Summary | |
|---|---|
ERXArrayFaultCache |
arrayFaultCache()
|
void |
databaseContextDidFetchObjects(EODatabaseContext dbc,
NSArray eos,
EOFetchSpecification fs,
EOEditingContext ec)
Sets the cache enty for the fetched objects. |
void |
databaseContextDidSelectObjects(EODatabaseContext dc,
EOFetchSpecification fs,
EODatabaseChannel channel)
This delegate method is called every time a fault is fired that needs to go to the database. |
boolean |
databaseContextFailedToFetchObject(EODatabaseContext context,
Object object,
EOGlobalID gid)
This is Kelly Hawks' fix for the missing to one relationship. |
NSDictionary |
databaseContextNewPrimaryKey(EODatabaseContext databaseContext,
Object object,
EOEntity entity)
Provides the ability for new enterprise objects that implement the interface ERXGeneratesPrimaryKeyInterface
to provide their own primary key dictionary. |
boolean |
databaseContextShouldFetchArrayFault(EODatabaseContext eodatabasecontext,
Object obj)
This delegate method first checks the arrayFaultCache if it is set before trying to resolve the fault from the DB. |
NSArray |
databaseContextShouldFetchObjects(EODatabaseContext dbc,
EOFetchSpecification fs,
EOEditingContext ec)
Returns an array of already fetched objects or null if they were not already fetched. |
boolean |
databaseContextShouldHandleDatabaseException(EODatabaseContext dbc,
Exception e)
Allows custom handling of dropped connection exceptions. |
boolean |
databaseContextShouldHandleDatabaseException(EODatabaseContext databaseContext,
Throwable throwable)
Provides for a hook to get at the original exceptions from the JDBC driver, as opposed to the cooked EOGeneralAdaptorException you get from EOF. |
NSArray |
databaseContextWillPerformAdaptorOperations(EODatabaseContext dbCtxt,
NSArray adaptorOps,
EOAdaptorChannel adChannel)
Overridden to remove inserts and deletes of the "same" row. |
static ERXDatabaseContextDelegate |
defaultDelegate()
Returns the singleton of the database context delegate |
ERXFetchResultCache |
fetchResultCache()
|
void |
setArrayFaultCache(ERXArrayFaultCache value)
|
static void |
setDefaultDelegate(ERXDatabaseContextDelegate delegate)
|
void |
setFetchResultCache(ERXFetchResultCache value)
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final String DatabaseContextFailedToFetchObject
public static final Logger log
public static final Logger dbLog
public static final Logger exLog
| Constructor Detail |
|---|
public ERXDatabaseContextDelegate()
| Method Detail |
|---|
public static ERXDatabaseContextDelegate defaultDelegate()
public static void setDefaultDelegate(ERXDatabaseContextDelegate delegate)
delegate - - the singleton database context delegate to setpublic ERXArrayFaultCache arrayFaultCache()
public void setArrayFaultCache(ERXArrayFaultCache value)
public ERXFetchResultCache fetchResultCache()
public void setFetchResultCache(ERXFetchResultCache value)
public NSArray databaseContextShouldFetchObjects(EODatabaseContext dbc,
EOFetchSpecification fs,
EOEditingContext ec)
dbc - fs - ec -
public void databaseContextDidFetchObjects(EODatabaseContext dbc,
NSArray eos,
EOFetchSpecification fs,
EOEditingContext ec)
dbc - eos - fs - ec -
public boolean databaseContextShouldHandleDatabaseException(EODatabaseContext databaseContext,
Throwable throwable)
databaseContext - throwable -
public NSDictionary databaseContextNewPrimaryKey(EODatabaseContext databaseContext,
Object object,
EOEntity entity)
ERXGeneratesPrimaryKeyInterface
to provide their own primary key dictionary. If the enterprise object implements the above interface then the
method primaryKeyDictionary(true) will be called on the object. If the object returns null then a
primary key will be generated for the object in the usual fashion.
databaseContext - databasecontextobject - the new enterprise objectentity - the entity of the object
public boolean databaseContextShouldHandleDatabaseException(EODatabaseContext dbc,
Exception e)
throws Throwable
dbc - current database contexte - throw exception
handleDroppedConnection
is called directly on the database object of the context and false is returned otherwise true.
Throwable
public boolean databaseContextFailedToFetchObject(EODatabaseContext context,
Object object,
EOGlobalID gid)
EOObjectNotAvailableException. er.extensions.ERXDatabaseContextDelegate.tolerantEntityPattern to a regular expression
that will be tested against the GID entity name. If it matches, then only an error will be logged
but no exception will be thrown.
context - database contextobject - object that is firing the fault for a given to-one relationshipgid - global id that wasn't found in the database.
public void databaseContextDidSelectObjects(EODatabaseContext dc,
EOFetchSpecification fs,
EODatabaseChannel channel)
ERXPatternLayout one can set the option to
see full backtraces to the calling method. With this option specified
a developer can see exactly which methods are firing faults.
dc - the databasecontextfs - the fetchspecificationchannel - the databasechannel
public boolean databaseContextShouldFetchArrayFault(EODatabaseContext eodatabasecontext,
Object obj)
eodatabasecontext - obj -
public NSArray databaseContextWillPerformAdaptorOperations(EODatabaseContext dbCtxt,
NSArray adaptorOps,
EOAdaptorChannel adChannel)
dbCtxt - adaptorOps - adChannel -
|
Last updated: Fri, Jan 9, 2009 04:35 AM EST | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||