On Sep 20, 2010, at 5:26 PM, James Carman wrote:

> On Mon, Sep 20, 2010 at 6:16 PM, Matt Benson <gudnabr...@gmail.com> wrote:
>> Hi all,
>>  By default, [proxy]'s provided ProxyFactory implementations all force their 
>> generated proxies to implement hashCode via System.identityHashCode() and 
>> equals via reference equality.  I will leave it to the original author to 
>> explain the reasons behind this design decision if he chooses, but I would 
>> propose that it would not be out of order to provide a means of allowing a 
>> user to implement these methods as any other.  If anyone has any opinions to 
>> contribute on the matter, please make them known.
>> 
> 
> As the original author, I do not recall the exact reasoning behind
> this decision at this time.  However, I would assume that it has
> something to do with the fact that you may have two different proxies
> with the same "target" object.  One of these proxies could have
> interceptors on it (for security, logging, whatever) and the other
> might not.  If you let the "target" respond to equals/hashCode, then
> these two proxies would be considered equal, when they clearly should
> not.
> 
> I agree that it would be nice to allow the user to override this
> behavior, but I think the general case should be to just use Object's
> implementation of these two methods.  I don't want to muddy up
> ProxyFactory's API to do this, though.  I'd rather figure out some
> other way to do this.  Perhaps we could make every proxy object
> implement some interface (ProxyObject perhaps).  That interface could
> have a "setter" on it to allow the user to override the "thing" that
> implements the equals/hashCode methods:
> 
> public interface Equalizer<T> {
>  public boolean equals(T source, T target);
>  public int hashCode(T source);
> }
> 

This would seem quite complicated to execute, would it not?

-Matt

> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to