Implemented by:
- EOEnterpriseObject
- EOCustomObject
- EOGenericRecord
- Implements:
- EOFaulting
- Package:
- com.apple.yellow.eocontrol
The EODeferredFaulting interface defines the method enterprise objects use to manage deferred faulting.
Note: The deferred faulting mechanism isn't available in Java Client. Although EODeferredFaulting is defined in com.apple.client.eocontrol, it's methods are never invoked by the Framework. |
EOF uses faults as stand-ins for objects whose data has not yet been fetched. Although fault creation is much faster than fetching, fault instantiation still takes time. To further improve performance, enterprise objects can use deferred faults (which are more efficient).
In an object whose class enables deferred faulting, the object's relationships are initially set to deferred faults. For a particular relationship, a single deferred fault is shared between all instances of an enterprise object class. This sharing of deferred faults can significantly reduce the number of faults that need to be created, and usually reduces the overhead of fault creation during a fetch.
For example, consider a Movie class with a studio
relationship.
Without deferred faulting, during a fetch of twenty Movie objects,
twenty faults are created for the studio
relationship-one
fault for each movie. With deferred faulting, only one fault is
created-a deferred fault that is shared by all the movies.
public abstract Object
willReadRelationship
(Object object)
For example, suppose a Movie enterprise object uses deferred
faulting. Then the accessors for its relationships-studio
,
for example-should invoke willReadRelationship
before
returning the object:
public Studio studio() { return this.willReadRelationship(studio); }
See Also: createFaultForDeferredFault ( EOFaultHandler)