EOSharedEditingContext
- Inherits from:
- EOEditingContext : EOObjectStore : NSObject
- Implements:
- EOObserving
- Package:
- com.apple.yellow.eocontrol
Class Description
The EOSharedEditingContext class defines a mechanism that allows EOEditingContexts to share enterprise objects for reading. This mechanism can reduce redundant data and the number of fetches an application requires.
Note: This class doesn't exist in the com.apple.client.eocontrol package. Shared editing contexts aren't available for Java Client. |
Shared enterprise objects are read-only and persist for the life of the application; they can't be modified or deleted. They must be unique in the shared context and across all other editing contexts that share objects from the shared context.
Objects can be fetched into a shared context using objectsWithFetchSpecification: and bindObjectsWithFetchSpecification. The latter method makes it easier to access result sets, using objectsByEntityNameAndFetchSpecificationName.
In multithreaded applications, shared objects can be used safely by many threads at once. Shared editing contexts use EOMultiReaderLocks to maintain thread safety. The methods objectsWithFetchSpecification, bindObjectsWithFetchSpecification, faultForGlobalID, and objectForGlobalID are thread-safe, but you must lock the context before using any other shared context API.
It is possible to modify shared objects while an application is running, but only indirectly. You can create a regular editing context that doesn't share objects by setting it's sharedEditingContext to null. Fetch the object that you want to change into the regular context, modify or delete it, and save. Since shared editing contexts listen for ObjectsChangedInStoreNotifications, the shared editing context updates when it learns that an object was modified. The shared context removes from its objectsByEntityName and objectsByEntityNameAndFetchSpecificationName dictionaries any objects that have been deleted, and it refaults any objects that have been updated. However, to register newly inserted objects in the shared editing context, you should refetch.
Constants
EOSharedEditingContext defines constants for the notifications it post. For more information, see "Notifications".
Method Types
- Accessing a shared editing context
- defaultSharedEditingContext
- setDefaultSharedEditingContext
- sharedEditingContext
- setSharedEditingContext
- Accessing shared objects
- bindObjectsWithFetchSpecification
- objectsByEntityName
- objectsByEntityNameAndFetchSpecificationName
- objectsWithFetchSpecification
- Locking a shared editing context
- lockForReading
- tryLockForReading
- unlockForReading
- Overridden EOEditingContext methods
- deleteObject
- deletedObjects
- faultForGlobalID
- hasChanges insertedObjects
- insertObject
- objectForGlobalID
- objectWillChange
- refaultObject registeredObjects
- reset
- saveChanges
- setUndoManager
- updatedObjects
- validateChangesForSave
Constructors
EOSharedEditingContext
public
EOSharedEditingContext
(EOObjectStore anObjectStore)
Static Methods
defaultSharedEditingContext
public static EOSharedEditingContext
defaultSharedEditingContext
()
setDefaultSharedEditingContext
public static void
setDefaultSharedEditingContext
(EOSharedEditingContext context)
Instance Methods
bindObjectsWithFetchSpecification
public void
bindObjectsWithFetchSpecification
(
EOFetchSpecification fetchSpecification,
String name)
deleteObject
public void
deleteObject
(EOEnterpriseObject object)
deletedObjects
public NSArray
deletedObjects
()
faultForGlobalID
public EOEnterpriseObject
faultForGlobalID
(
EOGlobalID gid,
EOEditingContext context)
See Also: faultForGlobalID ( EOEditingContext)
hasChanges
public boolean
hasChanges
()
insertedObjects
public NSArray
insertedObjects
()
insertObject
public void
insertObject
(EOEnterpriseObject object)
lockForReading
public void
lockForReading
()
See Also: tryLockForReading
objectForGlobalID
public EOEnterpriseObject
objectForGlobalID
(EOGlobalID gid)
See Also: objectForGlobalID ( EOEditingContext)
objectsByEntityName
public NSDictionary
objectsByEntityName
()
See Also: bindObjectsWithFetchSpecification
objectsByEntityNameAndFetchSpecificationName
public NSDictionary
objectsByEntityNameAndFetchSpecificationName
()
bindObjectsWithFetchSpecification
.
Generally these names are the same names used to identify stored
fetch specifications in EOModeler.Note: The dictionary returned from this method might not contain all the receiver's shared objects. It only contains objects fetched with a named fetch specification using bindObjectsWithFetchSpecification. Shared objects fetched into the receiver with other methods are not returned from this method. |
objectsWithFetchSpecification
public NSArray
objectsWithFetchSpecification
(
EOFetchSpecification fetchSpecification,
EOEditingContext anEditingContext)
See Also: objectsWithFetchSpecification ( EOEditingContext)
objectWillChange
public void
objectWillChange
(Object object)
refaultObject
public void
refaultObject
(
EOEnterpriseObject object,
EOGlobalID gid,
EOEditingContext context)
registeredObjects
public NSArray
registeredObjects
()
See Also: registeredObjects ( EOEditingContext)
reset
public void
reset
()
saveChanges
public void
saveChanges
()
setSharedEditingContext
public void
setSharedEditingContext
(EOSharedEditingContext sharedEC)
setUndoManager
public void
setUndoManager
(NSUndoManager undoManager)
sharedEditingContext
public EOSharedEditingContext
sharedEditingContext
()
tryLockForReading
public boolean
tryLockForReading
()
unlockForReading
public void
unlockForReading
()
updatedObjects
public NSArray
updatedObjects
()
validateChangesForSave
public void
validateChangesForSave
()
Notifications
DefaultSharedEditingContextWasInitializedNotification
public static final String DefaultSharedEditingContextWasInitializedNotification
Notification Object | None |
userInfo Dictionary | None |
SharedEditingContextInitializedObjectsNotification
public static final String SharedEditingContextInitializedObjectsNotification
Notification Object | The shared editing context |
userInfo Dictionary | NSArray of global IDs of the initialized objects |