![](../../../../../../../../../../images/previous.gif)
![](../../../../../../../../../../images/next.gif)
EODatabaseOperation
Inherits From:
NSObject
Conforms To: NSObject (NSObject)
Declared in: EOAccess/EODatabaseOperation.h
Class Description
An EODatabaseOperation object represents an operation-insert, update, or delete-to perform on an enterprise object and all the necessary information required to perform the operation. You don't ordinarily create instances of EODatabaseOperation; rather, the Framework automatically creates an EODatabaseOperation object for each new, updated, or deleted object in an EOEditingContext. An EODatabaseContext object analyzes a set of database operations and maps each operation to one or more adaptor operations. The adaptor operations are then performed by an EOAdaptorChannel object. You generally interact with EODatabaseOperation objects only if you need to specify the order in which a set of operations are carried out (see the description for the EODatabaseContext delegate method databaseContextWillOrderAdaptorOperationsFromDatabaseOperationsdatabaseContext:willOrderAdaptorOperationsFromDatabaseOperations:
).
An EODatabaseOperation specifies an enterprise object (called "object") on which the operation is performed, the EOGlobalID for the object, and the object's entity. In addition, the database operation has a snapshot containing the last known database values for the object and a newRow
dictionary of new or updated values to save in the database. Finally, a database operation specifies one of the following operators (the type of operation represented by the database operation).
- EODatabaseNothingOperator
- EODatabaseInsertOperator
- EODatabaseUpdateOperator
- EODatabaseDeleteOperator
Method Types
- Creating a new EODatabaseOperation
- - initWithGlobalID:object:entity:
- Accessing the global ID object
- - globalID
- Accessing the object
- - object
- Accessing the entity
- - entity
- Accessing the operator
- - setDatabaseOperator:
- - databaseOperator
- Accessing the database snapshot
- - setDBSnapshot:
- - dbSnapshot
- Accessing the row
- - setNewRow:
- - newRow
- Accessing the adaptor operations
- - addAdaptorOperation:
- - removeAdaptorOperation:
- - adaptorOperations
- - removeAdaptorOperation:
- Comparing new row and snapshot values
- - rowDiffs
- - rowDiffsForAttributes:
- Working with to-many snapshots
- - recordToManySnapshot:relationshipName:
- - toManySnapshots
Instance Methods
adaptorOperations
- (NSArray *)adaptorOperations
Returns the EOAdaptorOperation objects that need to be performed to carry out the operation represented by the receiver.
See also:
- addAdaptorOperation:
, - removeAdaptorOperation:
addAdaptorOperation:
- (void)addAdaptorOperation:
(EOAdaptorOperation *)adaptorOperation
Adds adaptorOperation to the receiver's list of adaptor operations. Raises an exception if adaptorOperation is nil
.
See also:
- adaptorOperations
, - removeAdaptorOperation:
databaseOperator
- (EODatabaseOperator)databaseOperator
Returns the receiver's database operator.
See also:
setDatabaseOperator:
dbSnapshot
- (NSDictionary *)dbSnapshot
Returns the database snapshot for the receiver's enterprise object. The snapshot contains the last known database values for the enterprise
object. The dictionary returned from this method will be empty if the receiver's object has just been inserted into an EOEditingContext and has not yet been saved in persistent storage. For more information on EOEditingContexts, see the EOEditingContext class specification in the EOControl framework.
See also:
- setDBSnapshot:
, - setDatabaseOperator:
Returns the entity that corresponds to the receiver's enterprise object.
See also:
- initWithGlobalID:object:entity:
globalID
- (EOGlobalID *)globalID
Returns the EOGlobalID object that corresponds to the receiver's enterprise object.
initWithGlobalID:object:entity:
- initWithGlobalID:
(EOGlobalID *)globalID object:
(id)object entity:
(EOEntity *)entity
The designated initializer, this method initializes a new EODatabaseOperation instance. Sets the enterprise object to which the operation will be applied, the object's global ID, and the object's entity. Returns self
.
newRow
- (NSMutableDictionary *)newRow
Returns a dictionary representation of the receiver's enterprise object. In addition to all the properties of the enterprise object that are stored in the database, the dictionary contains values for the non-derived attribute's of the enterprise object's entity that aren't visible in the enterprise object. For example, primary and foreign keys aren't ordinarily properties of an enterprise object but are attributes of the object's entity.
The newRow
dictionary is initialized with the values in the receiver's snapshot. New or updated values are added to the newRow
dictionary (replacing out-of-date values) as the Framework maps changes in the object to an operation.
See also:
- setNewRow:
Returns the receiver's enterprise object.
primaryKeyDiffs
- (NSDictionary *)primaryKeyDiffs
See also:
Returns a dictionary that contains any primary key values in newRow
that are different from
those in the dbSnapshot
. Returns nil
if the receiver doesn't have EODatabaseUpdateOperator
set as its database operator.- setDatabaseOperator:
, - newRow
recordToManySnapshot:relationshipName:
- (void)recordToManySnapshot:
(NSArray *)globalIDs relationshipName:
(NSString *)name
Records the objects in globalIDs. globalIDs is an array of the globalIDs that identify the objects at the destination of the to-many relationship named name; name is a property of the receiver's enterprise object.
See also:
- toManySnapshots
removeAdaptorOperation:
- (void)removeAdaptorOperation:
(EOAdaptorOperation *)adaptorOperation
Removes adaptorOperation from the receiver's list of adaptor operations.
See also:
- adaptorOperations
, - addAdaptorOperation:
rowDiffs
- (NSDictionary *)rowDiffs
Returns values in the receiver's newRow
dictionary that are different than the corresponding values in its dbSnapshot
. The dictionary returned from this method contains the new values from the enterprise object.
See also:
- primaryKeyDiffs
rowDiffsForAttributes:
- (NSDictionary *)rowDiffsForAttributes:
(NSArray *)attributes
For the EOAttribute objects in attributes, this method returns values in the receiver's newRow
dictionary that are different than the corresponding values in its dbSnapshot
. The dictionary returned contains the new values from the enterprise object.
setDatabaseOperator:
- (void)setDatabaseOperator:
(EODatabaseOperator)databaseOperator
Sets the receiver's database operator. databaseOperator can be one of the following:
- EODatabaseNothingOperator
- EODatabaseInsertOperator
- EODatabaseUpdateOperator
- EODatabaseDeleteOperator
databaseOperator
setDBSnapshot:
- (void)setDBSnapshot:
(NSDictionary *)dbSnapshot
Sets the snapshot for the receiver's enterprise object. If the object has just been inserted into an an EOEditingContext, it won't have a snapshot. In this case, dbSnapshot should be an empty dictionary.
See also:
- dbSnapshot
setNewRow:
- (void)setNewRow:
(NSMutableDictionary *)newRow
Sets the dictionary representation of the receiver's enterprise object. newRow should contain values for all the properties of the enterprise object that are stored in the database and for the non-derived attribute's of the enterprise object's entity that aren't visible in the enterprise object.
See also:
- newRow
, - databaseOperator
toManySnapshots
- (NSDictionary *)toManySnapshots
Returns the NSDictionary containing the snapshots for the to-many relationships of the receiver's enterprise object.
See also:
- recordToManySnapshot:relationshipName:
![](../../../../../../../../../../images/previous.gif)
![](../../../../../../../../../../images/next.gif)
Copyright © 1998, Apple Computer, Inc. All rights reserved.