Documentation Archive Developer
Search
PATH  WebObjects 4.0 Documentation > EOAccess Reference



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).


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
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:


entity

- (EOEntity *)entity

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.

See also: - object, - entity


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:


object

- (id)object

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:

See also: - 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:





Copyright © 1998, Apple Computer, Inc. All rights reserved.