In fact, equals() CANNOT be overridden because it is so critical - it is attributed as 'final':

equals

public final 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()

Ken

On Mar 29, 2006, at 1:39 PM, Chuck Hill wrote:

Hi,

On Mar 29, 2006, at 6:34 AM, Jerry W. Walker wrote:

Hi, Miguel,

On Mar 29, 2006, at 9:04 AM, Miguel Arroz wrote:
  Something I could still not figure out from the docs... what is the standard implementation of the "equals" method in EOs? How does WebObjects compare objects if I do not implement the equals method?

The documentation for EOCustomObject says the following:

=========================================
equals - public final 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()
=========================================

Although the grammar isn't the best, it's pretty clearly saying that if you don't override the equals method, it compares for object equality (that is, it tests whether both the message recipient reference and the argument object reference are references to the same object instance).

The sentence that starts, "To compare EOs in different EOEditingContexts, ...", is simply suggesting a more effective implementation to compare EOs across editing contexts if you care to override the method.

I don't think it is suggesting _replacing_ the equals() method for EOs.  For that would violate: "EOF requires all EOs define equality as (this == other)".  I am near certain that changing the implementation of equals() would directly result in disaster.

Chuck


The suggestion is a good one, since two EOs from different editing contexts will be different objects, even if they represent the same record from the database. By comparing EOGlobalIDs, you will effectively test whether they represent the same persisted object rather than testing whether they are the same instance of an object.


-- 
Coming in 2006 - an introduction to web applications using WebObjects and Xcode     http://www.global-village.net/wointro

Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems.    http://www.global-village.net/products/practical_webobjects




_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:

This email sent to [EMAIL PROTECTED]

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to