| 
WebObjects 5.2.2 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Object | +--com.webobjects.eocontrol.EOCustomObject
The EOCustomObject class provides a default implementation of the EOEnterpriseObject interface. If a custom Enterprise Object class needs to be created, you can subclass EOCustomObject and inherit the framework's default implementations. Some of the methods are for subclasses to implement or override, but most are meant to be used as defined by EOCustomObject.
EOCustomObject's constructors are not meant to be invoked; an instance of EOCustomObject would never be created. EOCustomObject provides them to demonstrate the constructors that custom enterprise objects should implement.
EOEnterpriseObject, 
Serialized Form| Nested Class Summary | 
| Nested classes inherited from class com.webobjects.eocontrol.EOKeyValueCodingAdditions | 
EOKeyValueCodingAdditions.DefaultImplementation, EOKeyValueCodingAdditions.Utility | 
| Nested classes inherited from class com.webobjects.foundation.NSKeyValueCodingAdditions | 
NSKeyValueCodingAdditions.DefaultImplementation, NSKeyValueCodingAdditions.Utility | 
| Nested classes inherited from class com.webobjects.foundation.NSKeyValueCoding | 
NSKeyValueCoding.DefaultImplementation, NSKeyValueCoding.ErrorHandling, NSKeyValueCoding.Null, NSKeyValueCoding.UnknownKeyException, NSKeyValueCoding.Utility, NSKeyValueCoding.ValueAccessor | 
| Nested classes inherited from class com.webobjects.eocontrol.EOKeyValueCoding | 
EOKeyValueCoding.DefaultImplementation, EOKeyValueCoding.Utility | 
| Nested classes inherited from class com.webobjects.foundation.NSValidation | 
NSValidation.DefaultImplementation, NSValidation.Utility, NSValidation.ValidationException | 
| Field Summary | 
| Fields inherited from interface com.webobjects.foundation.NSKeyValueCodingAdditions | 
KeyPathSeparator | 
| Fields inherited from interface com.webobjects.foundation.NSKeyValueCoding | 
NullValue | 
| Constructor Summary | |
EOCustomObject()
Default constructor.  | 
|
EOCustomObject(EOEditingContext editingContext,
               EOClassDescription classDescription,
               EOGlobalID gid)
Deprecated. the default or 0 argument constructor should be used instead  | 
|
| Method Summary | |
 void | 
addObjectToBothSidesOfRelationshipWithKey(EORelationshipManipulation object,
                                          String key)
Sets or adds object as the destination for the receiver's relationship
 identified by key, and also sets or adds the receiver for object's
 reciprocal relationship if there is one. | 
 void | 
addObjectToPropertyWithKey(Object eo,
                           String key)
Adds to the relationship named key the object eo
 without setting inverse relationships. | 
 NSArray | 
allPropertyKeys()
Returns the union of the keys returned by attributeKeys,
 toOneRelationshipKeys, and toManyRelationshipKeys. | 
 NSArray | 
attributeKeys()
Returns the names of the receiver's attributes (not relationship properties).  | 
 void | 
awakeFromClientUpdate(EOEditingContext ec)
Invoked on a server-side enterprise object after it has been updated with changes from a client application.  | 
 void | 
awakeFromFetch(EOEditingContext ec)
Overridden by subclasses to perform additional initialization on the receiver upon its being fetched from the external repository into ec. | 
 void | 
awakeFromInsertion(EOEditingContext ec)
Overridden by subclasses to perform additional initialization on the receiver upon its being inserted into ec. | 
static boolean | 
canAccessFieldsDirectly()
Returns true.  | 
 NSDictionary | 
changesFromSnapshot(NSDictionary snapshot)
Returns a dictionary whose keys correspond to the receiver's properties with uncommitted changes relative to snapshot, and whose values are the
 uncommitted values. | 
 EOClassDescription | 
classDescription()
Returns the EOClassDescription registered for the receiver's class by invoking the EOClassDescription static method classDescriptionForClass. | 
 EOClassDescription | 
classDescriptionForDestinationKey(String detailKey)
Returns the EOClassDescription for the destination objects of the relationship identified by detailKey. | 
 void | 
clearFault()
Sets the faultHandler to null. | 
 void | 
clearProperties()
Sets all of the receiver's to-one and to-many relationships to null. | 
 int | 
deleteRuleForRelationshipKey(String relationshipKey)
Returns a rule indicating how to handle the destination of the receiver's relationship named by relationshipKey when the receiver is deleted. | 
 EOEditingContext | 
editingContext()
Returns the editing context that contains the receiver or null if
 none is set. | 
 String | 
entityName()
Returns the name of the receiver's entity, or null if it doesn't have one by sending an entityName message to the receiver's EOClassDescription. | 
 String | 
eoDescription()
Returns a full description of the receiver's property values by extracting them using the key-value coding methods.  | 
 String | 
eoShallowDescription()
Similar to eoDescription, but doesn't descend into relationships. | 
 boolean | 
equals(Object other)
EOF requires all EOs define equality as (this == other) To compare EOs in different EOEditingContexts, consider instead comparing their EOGlobalIDs with equals()  | 
protected  void | 
excludeObjectFromPropertyWithKey(Object eo,
                                 String key)
Removes the object eo from the to-many relationship named
 key without affecting inverse relationships, by directly
 modifying the property storing the to-many relationship. | 
 EOFaultHandler | 
faultHandler()
Returns the receiver's fault handler.  | 
 Object | 
handleQueryWithUnboundKey(String key)
Invoked from valueForKey when it finds no property binding
 for key. | 
 void | 
handleTakeValueForUnboundKey(Object value,
                             String key)
Invoked from takeValueForKey when it finds no property binding
 for key. | 
 int | 
hashCode()
This method must adhere to the contract specified in java.lang.Object.hashCode  | 
protected  void | 
includeObjectIntoPropertyWithKey(Object eo,
                                 String key)
Adds to the relationship named key the object eo
 without affecting inverse relationships, by directly modifying the property
 storing the to-many relationship. | 
 String | 
inverseForRelationshipKey(String relationshipKey)
Returns the name of the relationship pointing back to the receiver's class or entity from that named by relationshipKey, or null if there
 isn't one. | 
 Object | 
invokeRemoteMethod(String methodName,
                   Class[] argumentTypes,
                   Object[] arguments)
Invokes a method on the server-side equivalent of the enterprise object.  | 
 boolean | 
isFault()
Returns true if the object's values haven't yet been fetched from the database.  | 
 boolean | 
isToManyKey(String key)
Returns true if the receiver has a to-many relationship identified
 by key, false otherwise. | 
 Object | 
opaqueState()
This methods returns an opaque object which encapsulates state private to EOF.  | 
 boolean | 
ownsDestinationObjectsForRelationshipKey(String relationshipKey)
Returns true if the receiver has a relationship identified by key
 that owns its destination, and false otherwise. | 
 void | 
prepareValuesForClient()
Invoked on a server-side enterprise object before the values of it are distributed to a client application.  | 
 void | 
propagateDeleteWithEditingContext(EOEditingContext ec)
Deletes the destination objects of the receiver's relationships according to the delete rule for each relationship.  | 
protected  Object | 
readResolve()
 | 
 void | 
reapplyChangesFromDictionary(NSDictionary changes)
Similar to takeValuesFromDictionary, but the changes dictionary can
 contain arrays for to-many
 relationships. | 
 void | 
removeObjectFromBothSidesOfRelationshipWithKey(EORelationshipManipulation object,
                                               String key)
Removes object from the receiver's relationship identified by key,
 and also removes the receiver from objects's reciprocal relationship
 if there is one. | 
 void | 
removeObjectFromPropertyWithKey(Object eo,
                                String key)
Removes the object eo from the to-many relationship named
 key without affecting inverse relationships. | 
static boolean | 
shouldUseStoredAccessors()
Returns true.  | 
 NSDictionary | 
snapshot()
Returns a dictionary whose keys are those of the receiver's attributes, to-one relationships, and to-many relationships, and whose values are the values of those properties, with EONullValue substituted for null. | 
 Object | 
storedValueForKey(String key)
Returns the value for the property identified by key. | 
 void | 
takeStoredValueForKey(Object value,
                      String key)
Sets the property identified by key to value. | 
 void | 
takeValueForKey(Object value,
                String key)
Sets the receiver's value for the property identified by key to value. | 
 void | 
takeValueForKeyPath(Object value,
                    String keyPath)
Sets the receiver's property identified by keyPath to value. | 
 void | 
takeValuesFromDictionary(NSDictionary dictionary)
Sets properties of the receiver with values from dictionary, using its
 keys to identify the properties. | 
 void | 
takeValuesFromDictionaryWithMapping(NSDictionary dictionary,
                                    NSDictionary mapping)
Sets properties of the receiver with values from dictionary, using
 its keys and mapping to identify the properties. | 
 NSArray | 
toManyRelationshipKeys()
Returns the names of the receiver's to-many relationships.  | 
 NSArray | 
toOneRelationshipKeys()
Returns the names of the receiver's to-one relationships.  | 
 String | 
toString()
String representation of the object.  | 
 void | 
turnIntoFault(EOFaultHandler handler)
Converts the receiver into a fault, assigning handler as the object that stores its original state and later
 converts the fault back into a normal object (typically by fetching data
 from an external repository). | 
 void | 
unableToSetNullForKey(String key)
Invoked from takeValueForKey when it's given a null value for a scalar
 property (such as an int or a float). | 
 void | 
updateFromSnapshot(NSDictionary snapshot)
Takes the values from snapshot, and sets the receiver's properties
 to them. | 
 String | 
userPresentableDescription()
Returns a short (no longer than 60 characters) description of an enterprise object based on its data by calling EOClassDescription's userPresentableDescriptionForObject method | 
static boolean | 
usesDeferredFaultCreation()
Conformance to EODeferredFaulting.  | 
 void | 
validateClientUpdate()
Validate whether object is in an consistent state after being updated from a client.  | 
 void | 
validateForDelete()
Confirms that the receiver can be deleted in its current state, throwing an NSValidation.ValidationException if it can't. | 
 void | 
validateForInsert()
Confirms that the receiver can be inserted in its current state, throwing an NSValidation.ValidationException if it can't. | 
 void | 
validateForSave()
Confirms that the receiver can be saved in its current state, throwing an NSValidation.ValidationException if it can't. | 
 void | 
validateForUpdate()
Confirms that the receiver can be saved in its current state, throwing a NSValidation.ValidationException if it can't. | 
 Object | 
validateTakeValueForKeyPath(Object value,
                            String keyPath)
Confirms that value is valid for the receiver's property named by keyPath,
 and assigns the value to the property (if value is
 different from the current value), or throws an
 NSValidation.ValidationException if value isn't valid. | 
 Object | 
validateValueForKey(Object value,
                    String key)
Validates a property indirectly by name.  | 
 Object | 
valueForKey(String key)
Returns the receiver's value for the property identified by key. | 
 Object | 
valueForKeyPath(String keyPath)
Returns the value for the derived property identified by keyPath. | 
 NSDictionary | 
valuesForKeys(NSArray keys)
Returns an NSDictionary containing the property values identified by each element in keys. | 
 NSDictionary | 
valuesForKeysWithMapping(NSDictionary mapping)
Returns an NSDictionary containing the property values identified by each of the key-value pairs in mapping. | 
 void | 
willChange()
Notifies any observers that the receiver's state is about to change, by sending each an objectWillChange message. | 
 void | 
willRead()
Fills the receiver with values fetched from the database.  | 
 Object | 
willReadRelationship(Object object)
Enterprise object instances that use deferred faulting invoke this method before accessing a relationship to ensure that the relationship isn't a deferred fault.  | 
| Methods inherited from class java.lang.Object | 
clone, finalize, getClass, notify, notifyAll, wait, wait, wait | 
| Constructor Detail | 
public EOCustomObject(EOEditingContext editingContext,
                      EOClassDescription classDescription,
                      EOGlobalID gid)
public EOCustomObject()
| Method Detail | 
public void addObjectToBothSidesOfRelationshipWithKey(EORelationshipManipulation object,
                                                      String key)
object as the destination for the receiver's relationship
 identified by key, and also sets or adds the receiver for object's
 reciprocal relationship if there is one. For a to-one relationship,
 object is set using takeValueForKey. For a to-many relationship,
 object is added using addObjectToPropertyWithKey.
 This method also properly handles removing this and object from
 their previous relationship as needed. For example, if an Employee
 object belongs to the Research department, invoking this
 method with the Maintenance department removes the Employee from
 the Research department as well as setting the Employee's department
 to Maintenance.
addObjectToBothSidesOfRelationshipWithKey in interface EORelationshipManipulationobject - instance to be added to the destination relationshipkey - name of relationship(Object anObject, String key)
public void addObjectToPropertyWithKey(Object eo,
                                       String key)
key the object eo
 without setting inverse relationships. Attempts to invoke a method of the
 form addToKey. If the receiver doesn't have such a method, this
 method gets the property array using valueForKey and operates
 directly on that (adds the object to the array).
addObjectToPropertyWithKey in interface EORelationshipManipulationeo - the object to add to the relationshipkey - the name of the relationshippublic NSArray allPropertyKeys()
attributeKeys,
 toOneRelationshipKeys, and toManyRelationshipKeys.
allPropertyKeys in interface EOEnterpriseObjectEOEnterpriseObject.attributeKeys(), 
EOEnterpriseObject.toOneRelationshipKeys(), 
EOEnterpriseObject.toManyRelationshipKeys()public NSArray attributeKeys()
attributeKeys in the object's EOClassDescription and returns the
 results. You might wish to override this method to add keys for
 attributes not defined by the EOClassDescription. The access
 layer's subclass of EOClassDescription, EOEntityClassDescription,
 returns the names of attributes designated as class properties.
attributeKeys in interface EOEnterpriseObjectEOEnterpriseObject.toOneRelationshipKeys(), 
EOEnterpriseObject.toManyRelationshipKeys()public void awakeFromClientUpdate(EOEditingContext ec)
awakeFromClientUpdate in interface EOEnterpriseObjectec - the EOEditingContext of the enterprise object.public void awakeFromFetch(EOEditingContext ec)
ec. EOCustomObject's implementation
 merely sends an awakeObjectFromFetch to the receiver's EOClassDescription.
 Subclasses should invoke super's implementation before performing
 their own initialization.
awakeFromFetch in interface EOEnterpriseObjectec - An EOEditingContext object.public void awakeFromInsertion(EOEditingContext ec)
ec.
 This is commonly used to assign default values or record the time
 of insertion. EOCustomObject's implementation merely sends an
 awakeObjectFromInsertion to the receiver's EOClassDescription.
 Subclasses should invoke super's implementation before
 performing their own initialization.
awakeFromInsertion in interface EOEnterpriseObjectec - An EOEditingContext object.public static boolean canAccessFieldsDirectly()
false if the key-value
 coding methods should never access the corresponding instance variable
 directly on finding no accessor method for a property.
valueForKey(String key), 
takeValueForKey(Object value, String key)public NSDictionary changesFromSnapshot(NSDictionary snapshot)
snapshot, and whose values are the
 uncommitted values. In both snapshot and the returned dictionary,
 where a key represents a to-many relationship the corresponding value
 is a NSArray containing two other NSArrays: the first is an array of
 objects to be added to the relationship property, and the second is an
 array of objects to be removed.
changesFromSnapshot in interface EOEnterpriseObjectsnapshot - An NSDictionary whose keys are those of the receiver's
                 attributes.
snapshotEOEnterpriseObject.snapshot(), 
EOEnterpriseObject.reapplyChangesFromDictionary(NSDictionary changes), 
EOEditingContext.currentEventSnapshotForObject(EOEnterpriseObject object), 
EOEditingContext.committedSnapshotForObject(EOEnterpriseObject object)public EOClassDescription classDescription()
classDescriptionForClass.
classDescription in interface EOEnterpriseObjectEOClassDescription.classDescriptionForClass(Class c), 
classDescription(), 
EOGenericRecord.classDescription()public EOClassDescription classDescriptionForDestinationKey(String detailKey)
detailKey. EOCustomObject's implementation sends
 a classDescriptionForDestinationKey message to the
 receiver's EOClassDescription.
classDescriptionForDestinationKey in interface EOEnterpriseObjectdetailKey - Identifies relationship of the destination objects.
public void clearFault()
null.
 This method is rarely used directly. Rather, it's invoked by an EOFaultHandler during the process of firing the fault.
clearFault in interface EOFaultingEOFaultHandlerpublic void clearProperties()
null.
 EOEditingContext's use this method to break cyclic references among
 objects when they're finalized. EOCustomObject's
 implementation should be sufficient for all purposes. If the enterprise
 object maintains references to other objects and these references are
 not to-one or to-many keys, then you should probably subclass this
 method ensure unused objects can be finalized.
clearProperties in interface EOEnterpriseObjectpublic int deleteRuleForRelationshipKey(String relationshipKey)
relationshipKey when the receiver is deleted.
 The delete rule is one of:
 EOCustomObject's implementation of this method simply sends a
 deleteRuleForRelationshipKey message to the receiver's EOClassDescription.
deleteRuleForRelationshipKey in interface EOEnterpriseObjectrelationshipKey - identifies the receiver's relationship.
EOClassDescription.deleteRuleForRelationshipKey(String
                        relationshipKey)public EOEditingContext editingContext()
null if
 none is set.
editingContext in interface EOEnterpriseObjectEOEditingContextpublic String entityName()
entityName message to the receiver's EOClassDescription.
entityName in interface EOEnterpriseObjectpublic String eoDescription()
eoShallowDescription message (to avoid infinite
 recursion through cyclical relationships).
eoDescription in interface EOEnterpriseObjecteoShallowDescription(), 
userPresentableDescription()public String eoShallowDescription()
eoDescription, but doesn't descend into relationships.
 eoDescription invokes this method for relationship destinations to
 avoid infinite recursion through cyclical relationships.
 EOCustomObject's implementation simply returns a String containing
 the receiver's class and entity names.
eoShallowDescription in interface EOEnterpriseObjectEOEnterpriseObject.userPresentableDescription(), 
EOEnterpriseObject.eoDescription()public final boolean equals(Object other)
equals in class Objectother - input object against which this object is compared
true if the objects are equal; false otherwiseObject.equals(java.lang.Object), 
EOGlobalID.equals(java.lang.Object)
protected void excludeObjectFromPropertyWithKey(Object eo,
                                                String key)
eo from the to-many relationship named
 key without affecting inverse relationships, by directly
 modifying the property storing the to-many relationship. This method
 can be used from inside of methods of the form removeFromKey.
 The method throws an IllegalArgumentException when attempting to remove
 an object not contained in the relationship array.
eo - the object to remove from the relationship.key - the name of the relationship
IllegalArgumentException - if eo is not in relationship keypublic EOFaultHandler faultHandler()
faultHandler in interface EOFaultingnull.EOFaultHandler.handlerForFault(Object)public Object handleQueryWithUnboundKey(String key)
valueForKey when it finds no property binding
 for key. The default implementation
 throws an NSKeyValueCoding.UnknownKeyException,
 with the target object(TargetObjectUserInfoKey) and
 key(UnknownUserInfokey)
 in the user info. An NSKeyValueCoding.ErrorHandling class can override this
 method to handle the query in some other way. The method can return a value,
 in which case that value is returned by the corresponding
 valueForKey invocation.
handleQueryWithUnboundKey in interface NSKeyValueCoding.ErrorHandlingkey - the key that was not found
valueForKey invocationvalueForKey(String key), 
NSKeyValueCoding.DefaultImplementation, 
NSKeyValueCoding.UnknownKeyException#TargetObjectUserInfoKey, 
NSKeyValueCoding.UnknownKeyException#UnknownUserInfoKey
public void handleTakeValueForUnboundKey(Object value,
                                         String key)
takeValueForKey when it finds no property binding
 for key. The default implementation
 throws an NSKeyValueCoding.UnknownKeyException, with the
 target object(TargetObjectUserInfoKey) and key(UnknownUserInfoKey)
 in the user info.
handleTakeValueForUnboundKey in interface NSKeyValueCoding.ErrorHandlingvalue - the value that was attempted to be set for keykey - they key whose property binding wasn't found in takeValueForKeytakeValueForKey(Object value, String key), 
NSKeyValueCoding.DefaultImplementation, 
NSKeyValueCoding.UnknownKeyException#TargetObjectUserInfoKey, 
NSKeyValueCoding.UnknownKeyException#UnknownUserInfoKeypublic int hashCode()
hashCode in class ObjectObject.hashCode(), 
equals(java.lang.Object)
protected void includeObjectIntoPropertyWithKey(Object eo,
                                                String key)
key the object eo
 without affecting inverse relationships, by directly modifying the property
 storing the to-many relationship. This method can be used from inside of
 methods of the form addToKey.
eo - the object to add to the relationshipkey - the name of the relationshippublic String inverseForRelationshipKey(String relationshipKey)
relationshipKey, or null if there
 isn't one. With the access layer's EOEntity and EORelationship,
 for example, reciprocality is determined by the join attributes of
 the two EORelationships. EOCustomObject's implementation simply
 sends an inverseForRelationshipKey
 message to the receiver's EOClassDescription.
inverseForRelationshipKey in interface EOEnterpriseObjectrelationshipKey - the String name of the relationship
public Object invokeRemoteMethod(String methodName,
                                 Class[] argumentTypes,
                                 Object[] arguments)
invokeRemoteMethod in interface EOEnterpriseObjectmethodName - the name of the method to be invokedargumentTypes - Array containing the types of argumentsarguments - Array containing the arguments.
public boolean isFault()
isFault in interface EOFaultingEOFaultHandler.isFault(Object)public boolean isToManyKey(String key)
true if the receiver has a to-many relationship identified
 by key, false otherwise. EOCustomObject's implementation of this
 method simply checks its toManyRelationshipKeys array for key.
isToManyKey in interface EOEnterpriseObjectkey - Identifies the to-many relationship of the receiver.
EOEnterpriseObject.toManyRelationshipKeys()public final Object opaqueState()
EOEnterpriseObject
opaqueState in interface EOEnterpriseObjectpublic boolean ownsDestinationObjectsForRelationshipKey(String relationshipKey)
true if the receiver has a relationship identified by key
 that owns its destination, and false otherwise. If an object owns the
 destination for a relationship, then when that destination object
 is removed from the relationship, it's automatically deleted.
 Ownership of a relationship thus contrasts with a delete rule, in
 that the first applies when the destination is removed and the
 second applies when the source is deleted. EOCustomObject's
 implementation of this method simply sends an
 ownsDestinationObjectsForRelationshipKey message to the receiver's
 EOClassDescription.
ownsDestinationObjectsForRelationshipKey in interface EOEnterpriseObjectrelationshipKey - Identifies the relationship of the receiver.
EOEnterpriseObject.deleteRuleForRelationshipKey(String relationshipKey), 
EORelationship.ownsDestination()public void prepareValuesForClient()
prepareValuesForClient in interface EOEnterpriseObjectpublic void propagateDeleteWithEditingContext(EOEditingContext ec)
propagateDeleteForObject message
 to the receiver's EOClassDescription.
propagateDeleteWithEditingContext in interface EOEnterpriseObjectec - the EOEditingContext containing the objectsEOClassDescription.deleteRuleForRelationshipKey(String
           relationshipKey)
protected Object readResolve()
                      throws ObjectStreamException
ObjectStreamExceptionpublic void reapplyChangesFromDictionary(NSDictionary changes)
takeValuesFromDictionary, but the changes dictionary can
 contain arrays for to-many
 relationships.  A key represents a to-many relationship, the
 dictionary's value is an NSArray containing two other NSArrays: the first
 is an array of objects to be added to the relationship property, and the
 second is an array of objects to be removed. EOCustomObject's
 implementation should be sufficient for all purposes; you shouldn't have
 to override this method.
reapplyChangesFromDictionary in interface EOEnterpriseObjectchanges - an NSDictionary that contain arrays for to-many
                relationshipsEOEnterpriseObject.snapshot(), 
EOEnterpriseObject.changesFromSnapshot(NSDictionary snapshot), 
EOEditingContext.currentEventSnapshotForObject(EOEnterpriseObject object), 
EOEditingContext.committedSnapshotForObject(EOEnterpriseObject object)
public void removeObjectFromBothSidesOfRelationshipWithKey(EORelationshipManipulation object,
                                                           String key)
object from the receiver's relationship identified by key,
 and also removes the receiver from objects's reciprocal relationship
 if there is one. For a to-one relationship, object is removed using
 takeValueForKey with null as the value. For a to-many relationship,
 object is removed using removeObjectFromPropertyWithKey.
removeObjectFromBothSidesOfRelationshipWithKey in interface EORelationshipManipulationobject - object to be removed from the receiver's relationshipkey - name of the relationship.(Object anObject, String key)
public void removeObjectFromPropertyWithKey(Object eo,
                                            String key)
eo from the to-many relationship named
 key without affecting inverse relationships. Attempts to
 invoke a method of the form removeFromKey. If the receiver
 doesn't have such a method, this method gets the property array using
 valueForKey and removes the object if present. The method
 throws an IllegalArgumentException when attempting to remove an object
 not contained in the relationship array.
removeObjectFromPropertyWithKey in interface EORelationshipManipulationeo - the object to remove from the relationship.key - the name of the relationship
IllegalArgumentException - if eo is not in relationship keypublic static boolean shouldUseStoredAccessors()
false if the stored
 value methods (storedValueForKey and takeStoredValueForKey) should
 not use private accessor methods in preference to public accessors.
 Returning false causes the stored value methods to use the same
 accessor method instance variable search order as the corresponding
 basic key-value coding methods (valueForKey and takeValueForKey).
 This method doesn't have to be implemented if the default stored
 value search order is correct for the objects.
public NSDictionary snapshot()
null. For to-many relationships, the dictionary
 contains shallow copies of the arrays. EOCustomObject's implementation
 should be sufficient for all purposes; you shouldn't
 have to override this method.
snapshot in interface EOEnterpriseObjectEOEnterpriseObject.updateFromSnapshot(NSDictionary aSnapshot)public Object storedValueForKey(String key)
key. This method is used when
 the value is retrieved for storage in an object store (generally,
 this is ultimately in a database) or for inclusion in a
 snapshot. The default implementation provided by EOCustomObject is
 similar to the implementation of valueForKey, but it resolves key with
 a different method instance variable search order:
 key (a method
 preceded by an underbar). For example, with a key of "lastName",
 storedValueForKey looks for a method named _getLastName or _lastName.key and returns its value directly. For example,
 with a key of "lastName", storedValueForKey looks for an instance
 variable named _lastName or lastName.storedValueForKey searches for a public accessor method based on key.
 For the key "lastName", this would be getLastName or lastName.key is unknown, storedValueForKey calls
 handleTakeValueForUnboundKey.
storedValueForKey in interface EOKeyValueCodingkey - a property of receiver.
NSKeyValueCoding, 
NSKeyValueCoding.ErrorHandling, 
NSKeyValueCoding.valueForKey(String), 
NSKeyValueCoding.ErrorHandling.handleQueryWithUnboundKey(String)
public void takeStoredValueForKey(Object value,
                                  String key)
key to value. This method is used
 to initialize the receiver with values from an object store
 (generally, this is ultimately from a database) or to restore a value
 from a snapshot. The default implementation provided by EOCustomObject
 is similar to the implementation of takeValueForKey, but it resolves key
 with a different method instance variable search order:
 key (a method
 preceded by an underbar). For example, with a key of "lastName",
 takeStoredValueForKey looks for a method named _setLastName.
 key and sets its value directly. For example, with a key of
 "lastName", takeStoredValueForKey looks for an instance variable
 named _lastName or lastName.takeStoredValueForKey searches for a public accessor method based on key.
 For the key "lastName", this would be setLastName.key is unknown, takeStoredValueForKey calls
 handleTakeValueForUnboundKey.
 This different search order allows an object to bypass processing
 that is performed before setting a value through public API. However,
 if it is always wanted to use the search order in takeValueForKey, you can
 implement the static method shouldUseStoredAccessors to return false. And
 as with valueForKey, you can prevent direct access of an instance
 variable with the static method canAccessFieldsDirectly.
takeStoredValueForKey in interface EOKeyValueCodingvalue - the property identified by key is set to this.key - a property of receiver.shouldUseStoredAccessors(), 
canAccessFieldsDirectly()
public void takeValueForKey(Object value,
                            String key)
key to value.
 The default implementation provided by NSKeyValueCoding.DefaultImplementation
 works as follows:
setKey,
 and invokes it if there is one._setKey, and invokes it
 if there is one.canAccessFieldsDirectly returns true, searches for an instance variable
 based on key and sets its value directly. For the key
 "lastName", this would be _lastName or lastName. handleTakeValueForUnboundKey
 if the object implements NSKeyValueCoding.ErrorHandling or throws
 NSKeyValueCoding.UnknownKeyException if the object doesn't.NSKeyValueCoding
 provided by the Foundation package should always be used. The
 default implementations
 have significant performance optimizations. To benefit from them,
 implement NSKeyValueCoding on a custom class as shown above by using
 the methods in NSKeyValueCoding.DefaultImplementation; or if
 the class inherits from an WebObjects class that implements
 NSKeyValueCoding, the inherited implementation is not to be overridden.
 Using a custom implementation incurs significant
 performance penalties.
takeValueForKey in interface NSKeyValueCodingvalue - The receiver's value for the property key is set to this.key - Identifies the property of the receiver.
NSKeyValueCoding.UnknownKeyException - if the object
              doesn't implements NSKeyValueCoding.ErrorHandling.NSKeyValueCoding.NullValue, 
NSKeyValueCoding.valueForKey(java.lang.String), 
NSKeyValueCoding.DefaultImplementation, 
NSKeyValueCoding.ErrorHandling, 
NSKeyValueCoding.ErrorHandling.handleTakeValueForUnboundKey(java.lang.Object, java.lang.String)
public void takeValueForKeyPath(Object value,
                                String keyPath)
keyPath to value. A key path
 as the form relationship.property (with one or more relationships).
takeValueForKeyPath in interface NSKeyValueCodingAdditionsvalue - the receiver's property identified by keyPath is set to thiskeyPath - a property of an objectNSKeyValueCoding.takeValueForKey(java.lang.Object, java.lang.String), 
NSKeyValueCodingAdditions.valueForKeyPath(java.lang.String), 
NSKeyValueCodingAdditions.DefaultImplementationpublic void takeValuesFromDictionary(NSDictionary dictionary)
dictionary, using its
 keys to identify the properties. EOCustomObject's implementation invokes
 takeValueForKey for each key-value pair, substituting null for
 EONullValues in aDictionary.
takeValuesFromDictionary in interface EOKeyValueCodingAdditionsdictionary - values from this are taken to set properties of the receivertakeValueForKey(Object value, String key)
public void takeValuesFromDictionaryWithMapping(NSDictionary dictionary,
                                                NSDictionary mapping)
dictionary, using
 its keys and mapping to identify the properties. mapping
 associates the keys of dictionary, which are arbitrary external names
 for the properties to be set, with the internal or EOModel names for those properties.
 If a key in dictionary does not have a corresponding entry in mapping,
 the external key (i.e., the key from dictionary) is used.
 
 Invokes takeValueForKey for each key-value pair of dictionary,
 substituting null for NSKeyValueCoding.NullValue values in the dictionary.
takeValuesFromDictionaryWithMapping in interface EOKeyValueCodingAdditionsdictionary - the key-value pairs to be setmapping - the dictionary that maps arbitrary external names to
                internal property namestakeValueForKey(Object value, String key)public NSArray toManyRelationshipKeys()
toManyRelationshipKeys() in the object's
 EOClassDescription and returns the results. You might wish to override
 this method to add keys for relationships not defined by the
 EOClassDescription, but it's rarely necessary: The access layer's
 subclass of EOClassDescription, EOEntityClassDescription, returns the
 names of to-many relationships designated as class properties.
toManyRelationshipKeys in interface EOEnterpriseObjecttoOneRelationshipKeys(), 
attributeKeys()public NSArray toOneRelationshipKeys()
toOneRelationshipKeys in the object's
 EOClassDescription and returns the results. You might wish to override this
 method to add keys for relationships not defined by the EOClassDescription,
 but it's rarely necessary: The access layer's subclass of EOClassDescription,
 EOEntityClassDescription, returns the names of to-one relationships
 designated as class properties.
toOneRelationshipKeys in interface EOEnterpriseObjectattributeKeys(), 
toOneRelationshipKeys()public String toString()
eoDescription.
toString in class ObjecteoDescriptionpublic void turnIntoFault(EOFaultHandler handler)
handler as the object that stores its original state and later
 converts the fault back into a normal object (typically by fetching data
 from an external repository). The receiver becomes the owner of
 handler; it shouldn't be assigned to another object.
turnIntoFault in interface EOFaultinghandler - an EOFaultHandler that stores receiver's original state and later
                converts the fault back into a normal objectEOFaultHandler.makeObjectIntoFault(Object, EOFaultHandler)public void unableToSetNullForKey(String key)
takeValueForKey when it's given a null value for a scalar
 property (such as an int or a float). The default implementation
 throws an IllegalArgumentException. You might want to implement the method
 (or override the inherited implementation) to handle the request in some
 other way, such as by substituting zero or a sentinel value and invoking
 takeValueForKey again.
unableToSetNullForKey in interface NSKeyValueCoding.ErrorHandlingkey - a property of the receiver.
IllegalArgumentException - when it's given a null value
            for a scalar property.NSKeyValueCoding.DefaultImplementationpublic void updateFromSnapshot(NSDictionary snapshot)
snapshot, and sets the receiver's properties
 to them. EOCustomObject's implementation sets each one using
 takeStoredValueForKey. In the process, EONullValues are
 converted to null, and array values are set as shallow mutable copies.
updateFromSnapshot in interface EOEnterpriseObjectsnapshot - the receiver's properties are set to the values
                 taken from thisEOEnterpriseObject.snapshot()public String userPresentableDescription()
userPresentableDescriptionForObject method
userPresentableDescription in interface EOEnterpriseObjectEOEnterpriseObject.eoDescription(), 
EOEnterpriseObject.eoShallowDescription(), 
EOEnterpriseObject.attributeKeys()public static boolean usesDeferredFaultCreation()
public void validateClientUpdate()
                          throws NSValidation.ValidationException
validateClientUpdate in interface EOValidationNSValidation.ValidationException
public void validateForDelete()
                       throws NSValidation.ValidationException
NSValidation.ValidationException if it can't.
 For example, an object can't be deleted if it has a relationship
 with a delete rule of EOClassDescription.DeleteRuleDeny and that
 relationship has a destination object.
 EOCustomObject's implementation sends the receiver's EOClassDescription
 a message (which performs basic checking based on the presence or absence
 of values). Subclasses should invoke super's implementation before
 performing their own validation, and should combine any
 Exception thrown by super's implementation with their own.
validateForDelete in interface EOValidationNSValidation.ValidationException - if the receiver can't be
         deleted in its current state.EOEnterpriseObject.propagateDeleteWithEditingContext(
         EOEditingContext ec)
public void validateForInsert()
                       throws NSValidation.ValidationException
NSValidation.ValidationException if it can't. EOCustomObject's
 implementation simply invokes validateForSave.
 The method validateForSave is the generic validation method for
 when an object is written to the external store. If an object performs
 validation that isn't specific to insertion, it should go in
 validateForSave.
validateForInsert in interface EOValidationNSValidation.ValidationException - if the receiver can't be
         inserted in its current state.validateForSave()
public void validateForSave()
                     throws NSValidation.ValidationException
NSValidation.ValidationException if it can't. EOCustomObject's
 implementation sends the receiver's EOClassDescription a
 validateObjectForSave message, then iterates through all of the
 receiver's properties. If this results in more than one exception, the
 Exception returned contains the additional ones in its userInfo dictionary
 under NSValidation.ValidationException.AdditionalExceptionsKey.
 Subclasses should invoke super's implementation before performing their
 own validation, and should combine any Exception thrown by super's
 implementation with their own.
validateForSave in interface EOValidationNSValidation.ValidationException - if the receiver can't be
         saved in its current state.NSValidation.ValidationException
public void validateForUpdate()
                       throws NSValidation.ValidationException
NSValidation.ValidationException if it can't. EOCustomObject's implementation
 simply invokes validateForSave.
 The method validateForSave is the generic validation method for when
 an object is written to the external store. If an object performs
 validation that isn't specific to updating, it should go in
 validateForSave.
validateForUpdate in interface EOValidationNSValidation.ValidationException - if the receiver can't be
         saved in its current state.validateForSave()
public Object validateTakeValueForKeyPath(Object value,
                                          String keyPath)
                                   throws NSValidation.ValidationException
value is valid for the receiver's property named by keyPath,
 and assigns the value to the property (if value is
 different from the current value), or throws an
 NSValidation.ValidationException if value isn't valid.A key path has the form relationship.property (with one or more relationships); for example "movieRole.roleName" or "movieRole.talent.lastName".
validateTakeValueForKeyPath in interface NSValidationvalue - the value to validatekeyPath - the keypath that will contain the value
NSValidation.ValidationException - if value isn't legalNSKeyValueCoding.valueForKey(String key)
public Object validateValueForKey(Object value,
                                  String key)
                           throws NSValidation.ValidationException
It searches for a method of
 the form validateKey and invokes it if it exists. These are the methods that your
 custom classes can implement to validate individual properties, such as validateAge
 to check that the value the user entered is within acceptable limits.
 The validateAge method should raise an EOValidation.Exception if it finds
 an unacceptable value.
validateValueForKey in interface NSValidationkey - the key corresponding to the object property that will hold the valuevalue - the value to be examined for validity
NSValidation.ValidationException - if value isn't legalNSKeyValueCoding.valueForKey(String key)public Object valueForKey(String key)
key.
 The default implementation provided by NSKeyValueCoding.DefaultImplementation
 works as follows:
key. For example,
 with a key of "lastName", the method looks for a method named
 getLastName or lastName.key (a method preceded by an underbar).
 For example, with a key of "lastName", the method
 looks for a method named _getLastName or _lastNamecanAccessFieldsDirectly returns true, the method searches for an
 instance variable based on key and returns its value directly. For the
 key "lastName", this would be _lastName or lastName.handleQueryWithUnboundKey (defined in
 NSKeyValueCoding.ErrorHandling).NSKeyValueCoding
 provided by the Foundation package should always be used. The default
 implementations have significant performance optimizations.
 To benefit from them, implement NSKeyValueCoding on a custom
 class as shown above by using the methods in
 NSKeyValueCoding.DefaultImplementation; or if
 the class inherits from an WebObjects class that implements
 NSKeyValueCoding, the inherited implementation is not to be overridden.
 Using a custom implementation incurs significant performance penalties.
valueForKey in interface NSKeyValueCodingkey - a property of the receiver
NSKeyValueCoding.NullValue, 
NSKeyValueCoding.takeValueForKey(java.lang.Object, java.lang.String), 
NSKeyValueCoding.DefaultImplementation, 
NSKeyValueCoding.ErrorHandling, 
NSKeyValueCoding.ErrorHandling.handleQueryWithUnboundKey(java.lang.String)public Object valueForKeyPath(String keyPath)
keyPath.
 A key path has the form relationship.property (with one or more
 relationships). For example "movieRole.roleName" or
 "movieRole.talent.lastName". The default implementation of this
 method (provided by NSKeyValueCodingAdditions.DefaultImplementation)
 gets the destination object for each relationship using valueForKey,
 and returns the result of a valueForKey message to the final object.
valueForKeyPath in interface NSKeyValueCodingAdditionskeyPath - Identifies the derived property for the receiver.
NSKeyValueCoding.valueForKey(java.lang.String), 
NSKeyValueCodingAdditions.takeValueForKeyPath(java.lang.Object, java.lang.String), 
NSKeyValueCodingAdditions.DefaultImplementationpublic NSDictionary valuesForKeys(NSArray keys)
keys. EOCustomObject's implementation invokes valueForKey
 for each key in keys, substituting EONullValues into the NSDictionary
 for returned nulls.
valuesForKeys in interface EOKeyValueCodingAdditionskeys - an NSArray of property names in the receiver
NSKeyValueCoding.valueForKey(String)public NSDictionary valuesForKeysWithMapping(NSDictionary mapping)
mapping. The keys
 of the mapping dictionary represent arbitrary external names
 for properties of an Enterprise Object and the values are the internal or
 EOModel names for these properties. Invokes valueForKey for
 each value in mapping, substituting NSKeyValueCoding.NullValue
 in the returned dictionary for returned nulls.
valuesForKeysWithMapping in interface EOKeyValueCodingAdditionsmapping - the dictionary that maps arbitrary external names to
                internal property names
mappingNSKeyValueCoding.valueForKey(String)public void willChange()
objectWillChange message. A subclass should not
 override this method, but should invoke it prior to altering the subclass's
 state, most typically in "set" methods such as the following:
 public void setRoleName(String value){ willChange(); roleName =value; }
willChange in interface EOEnterpriseObjectEOObserverCenterpublic void willRead()
willRead prior to any attempt to access the object's state, most typically
 in "get" methods such as the following:
 This methods locks the parent EOObjectStore of the EOEditingContext this EO is contained within for the duration of this method.public String roleName(){ willRead(); return roleName; }
willRead in interface EOFaultingpublic Object willReadRelationship(Object object)
willReadRelationship in interface EODeferredFaultingobject - the object that is checked
EOFaultHandler.createFaultForDeferredFault(Object fault,
                      EOEnterpriseObject eo)
  | 
Last updated Mon Oct 13 15:42:52 PDT 2003. | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||