|
WebObjects 5.4.2 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.webobjects.eocontrol.EOObjectStore com.webobjects.eocontrol.EOCooperatingObjectStore
public abstract class EOCooperatingObjectStore
EOCooperatingObjectStore is a part of the control layer's object storage abstraction. It is an abstract class that defines the basic API for object stores that work together to manage data from several distinct data repositories.
For more general information on the object storage abstraction, see "Object Storage Abstraction" in the introduction to the EOControl Framework.
The interaction between EOCooperatingObjectStores is managed by another class, EOObjectStoreCoordinator. The EOObjectStoreCoordinator communicates changes to its EOCooperatingObjectStores by passing them an EOEditingContext. Each cooperating store examines the modified objects in the editing context and determines if it's responsible for handling the changes. When a cooperating store has changes that need to be handled by another store, it communicates the changes to the other store back through the coordinator.
For relational databases, Enterprise Objects Framework provides a concrete subclass of EOCooperatingObjectStore, EODatabaseContext (EOAccess). A database context represents a single connection to a database server, fetching and saving objects on behalf of one or more editing contexts. However, a database context and an editing context don't interact with each other directly-a coordinator acts as a mediator between them.
For more information on EOCooperatingObjectStore, refer to:
Field Summary |
---|
Fields inherited from class com.webobjects.eocontrol.EOObjectStore |
---|
DeletedKey, InsertedKey, InvalidatedAllObjectsInStoreNotification, InvalidatedKey, ObjectsChangedInStoreNotification, UpdatedKey |
Fields inherited from interface com.webobjects.foundation.NSLocking |
---|
OneCentury, OneDay, OneHour, OneMinute, OneSecond, OneWeek, OneYear |
Constructor Summary | |
---|---|
EOCooperatingObjectStore()
|
Method Summary | |
---|---|
abstract void |
commitChanges()
Overridden by subclasses to commit the transaction. |
EOObjectStoreCoordinator |
coordinator()
|
abstract boolean |
handlesFetchSpecification(EOFetchSpecification fetchSpecification)
Overridden by subclasses to return true if the receiver is responsible for fetching the objects described by fetchSpecification . |
abstract void |
lock()
This method is used to protect access to the receiver from concurrent operations by multiple threads. |
abstract boolean |
ownsGlobalID(EOGlobalID globalID)
Overridden by subclasses to return true if the receiver is responsible for fetching and saving the object identified by globalID . |
abstract boolean |
ownsObject(EOEnterpriseObject object)
Overridden by subclasses to return true if the receiver is responsible for fetching and saving object . |
abstract void |
performChanges()
Overridden by subclasses to transmit changes to the receiver's underlying database. |
abstract void |
prepareForSaveWithCoordinator(EOObjectStoreCoordinator coordinator,
EOEditingContext context)
Overridden by subclasses to notify the receiver that a multi-store save operation overseen by coordinator is beginning for the EOEditingContext, context . |
abstract void |
recordChangesInEditingContext()
Overridden by subclasses to instruct the receiver to examine the changed objects in the receiver's EOEditingContext, record any operations that need to be performed, and notify the receiver's EOObjectStoreCoordinator of any changes that need to be forwarded to other EOCooperatingObjectStores. |
abstract void |
recordUpdateForObject(EOEnterpriseObject object,
NSDictionary changes)
Overridden by subclasses to communicate from one EOCooperatingObjectStore to another (through the EOObjectStoreCoordinator) that changes need to be made to the an EOEnterpriseObject. |
abstract void |
rollbackChanges()
Overridden by subclasses to roll back changes to the underlying database. |
void |
setCoordinator(EOObjectStoreCoordinator newCoordinator)
|
abstract void |
unlock()
This method is used to protect access to the receiver from concurrent operations by multiple threads. |
abstract NSDictionary |
valuesForKeys(NSArray keys,
EOEnterpriseObject object)
Overridden by subclasses to return values (as identified by keys) held by the receiver that augment properties in object. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public EOCooperatingObjectStore()
Method Detail |
---|
public abstract boolean ownsGlobalID(EOGlobalID globalID)
true
if the receiver is responsible for fetching and saving the object identified by globalID
. For example, EODatabaseContext (EOAccess) determines whether it's responsible based on the entity associated with globalID.
globalID
- the EOGlobalID for an object
true
if this EOCooperatingObjectStore is responsible for fetching and saving the object identified by globalID, false
otherwiseEOCooperatingObjectStore.handlesFetchSpecification(com.webobjects.eocontrol.EOFetchSpecification)
,
EOCooperatingObjectStore.ownsObject(com.webobjects.eocontrol.EOEnterpriseObject)
public abstract boolean ownsObject(EOEnterpriseObject object)
true
if the receiver is responsible for fetching and saving object
. For example, EODatabaseContext (EOAccess) determines whether it's responsible based on the entity associated with object
.
object
- an EOEnterpriseObject
true
if this EOCooperatingObjectStore is responsible for fetching and saving object, false
otherwiseEOCooperatingObjectStore.handlesFetchSpecification(com.webobjects.eocontrol.EOFetchSpecification)
,
EOCooperatingObjectStore.ownsGlobalID(com.webobjects.eocontrol.EOGlobalID)
public abstract boolean handlesFetchSpecification(EOFetchSpecification fetchSpecification)
true
if the receiver is responsible for fetching the objects described by fetchSpecification
. For example, EODatabaseContext (EOAccess) determines whether it's responsible based on fetchSpecification
's entity
name.
fetchSpecification
- an EOFetchSpecification.
true
if this EOCooperatingObjectStore is responsible for fetching and saving objects from fetchSpecification
, false
otherwise.EOCooperatingObjectStore.ownsGlobalID(com.webobjects.eocontrol.EOGlobalID)
,
EOCooperatingObjectStore.ownsObject(com.webobjects.eocontrol.EOEnterpriseObject)
public abstract void prepareForSaveWithCoordinator(EOObjectStoreCoordinator coordinator, EOEditingContext context)
context
. For example, the receiver might prepare primary keys for newly inserted objects so that they can be handed out to other
EOCooperatingObjectStores upon request. The receiver should be prepared to receive the messages recordChangesInEditingContext
and recordUpdateForObject
. After performing these methods, the receiver should be prepared to receive the possible messages
ownsGlobalID
and then commitChanges
or rollbackChanges
.
coordinator
- the EOObjectStoreCoordinator that will oversee the save operationcontext
- the EOEditingContext for which the save operation is beginningpublic abstract void recordChangesInEditingContext()
EOCooperatingObjectStore.prepareForSaveWithCoordinator(com.webobjects.eocontrol.EOObjectStoreCoordinator, com.webobjects.eocontrol.EOEditingContext)
,
EOCooperatingObjectStore.recordUpdateForObject(com.webobjects.eocontrol.EOEnterpriseObject, com.webobjects.foundation.NSDictionary)
public abstract void recordUpdateForObject(EOEnterpriseObject object, NSDictionary changes)
object
- the object that has updates to have recordedchanges
- dictionary of attribute-value pairs to record for objectEOCooperatingObjectStore.prepareForSaveWithCoordinator(com.webobjects.eocontrol.EOObjectStoreCoordinator, com.webobjects.eocontrol.EOEditingContext)
,
EOCooperatingObjectStore.recordChangesInEditingContext()
public abstract void performChanges()
EOCooperatingObjectStore.commitChanges()
,
EOCooperatingObjectStore.rollbackChanges()
,
EOObjectStoreCoordinator.saveChangesInEditingContext(com.webobjects.eocontrol.EOEditingContext)
public abstract void commitChanges()
EOCooperatingObjectStore.ownsGlobalID(com.webobjects.eocontrol.EOGlobalID)
,
EOCooperatingObjectStore.commitChanges()
,
EOObjectStoreCoordinator.saveChangesInEditingContext(com.webobjects.eocontrol.EOEditingContext)
public abstract void rollbackChanges()
EOCooperatingObjectStore.ownsGlobalID(com.webobjects.eocontrol.EOGlobalID)
,
EOCooperatingObjectStore.commitChanges()
,
EOObjectStoreCoordinator.saveChangesInEditingContext(com.webobjects.eocontrol.EOEditingContext)
public abstract NSDictionary valuesForKeys(NSArray keys, EOEnterpriseObject object)
valuesForKeys
message. Note that you use this for properties that are not stored in the object, so using key-value coding directly on the
object won't always work.
keys
- property names to return values forobject
- object to return values for
public EOObjectStoreCoordinator coordinator()
null
if it is notEOObjectStoreCoordinator.addCooperatingObjectStore(com.webobjects.eocontrol.EOCooperatingObjectStore)
,
EOObjectStoreCoordinator.removeCooperatingObjectStore(com.webobjects.eocontrol.EOCooperatingObjectStore)
public void setCoordinator(EOObjectStoreCoordinator newCoordinator)
newCoordinator
- the coordinator this cooperating store is has been registered withEOObjectStoreCoordinator.addCooperatingObjectStore(com.webobjects.eocontrol.EOCooperatingObjectStore)
,
EOObjectStoreCoordinator.removeCooperatingObjectStore(com.webobjects.eocontrol.EOCooperatingObjectStore)
public abstract void lock()
EOObjectStore
lock
in interface NSLocking
lock
in class EOObjectStore
EOObjectStore.unlock()
public abstract void unlock()
EOObjectStore
unlock
in interface NSLocking
unlock
in class EOObjectStore
EOObjectStore.lock()
|
Last updated June 2008 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |