|
Project Wonder 2.0 | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object er.extensions.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.
Field Summary | |
static ERXLogger |
dbLog
Faulting logging support, logging category: er.transaction.adaptor.FaultFiring |
static ERXLogger |
exLog
Faulting logging support, logging category: er.transaction.adaptor.Exceptions |
static ERXLogger |
log
Basic logging support |
Constructor Summary | |
ERXDatabaseContextDelegate()
|
Method Summary | |
void |
_configureReadOnly(Connection aConnection)
|
void |
_configureReadWrite(Connection aConnection)
|
Connection |
_getConnection(EODatabaseContext dbc)
|
String |
_readOnlySessionProperties()
|
String |
_readWriteSessionProperties()
|
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)
Delegate method. |
boolean |
databaseContextShouldFetchObjectFault(EODatabaseContext dbCtxt,
Object obj)
Delegate method. |
NSArray |
databaseContextShouldFetchObjects(EODatabaseContext dbc,
EOFetchSpecification fs,
EOEditingContext ec)
Delegate method. |
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)
Delegate method. |
static ERXDatabaseContextDelegate |
defaultDelegate()
Returns the singleton of the database context delegate |
void |
setReadWriteForConnectionInDatabaseContext(boolean isReadWrite,
EODatabaseContext dbc)
Switch the connection to read/write mode. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final ERXLogger log
public static final ERXLogger dbLog
public static final ERXLogger exLog
Constructor Detail |
public ERXDatabaseContextDelegate()
Method Detail |
public static ERXDatabaseContextDelegate defaultDelegate()
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
.
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 databasechannelpublic NSArray databaseContextWillPerformAdaptorOperations(EODatabaseContext dbCtxt, NSArray adaptorOps, EOAdaptorChannel adChannel)
public boolean databaseContextShouldFetchObjectFault(EODatabaseContext dbCtxt, Object obj)
public boolean databaseContextShouldFetchArrayFault(EODatabaseContext eodatabasecontext, Object obj)
public NSArray databaseContextShouldFetchObjects(EODatabaseContext dbc, EOFetchSpecification fs, EOEditingContext ec)
public void setReadWriteForConnectionInDatabaseContext(boolean isReadWrite, EODatabaseContext dbc)
isReadWrite
- true if the connection should be set to read/write, false if it should be set to read onlydbc
- the EODatabaseContext to use to get the java.sql.Connection object
FIXME: should support per-model sql statements in order to support different databasespublic Connection _getConnection(EODatabaseContext dbc)
public void _configureReadWrite(Connection aConnection) throws SQLException
SQLException
public void _configureReadOnly(Connection aConnection) throws SQLException
SQLException
public String _readOnlySessionProperties()
public String _readWriteSessionProperties()
|
Last updated: Do, Dez 9, 2004 12:46 PM CET | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |