[
https://issues.apache.org/jira/browse/JCR-680?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12462186
]
Jukka Zitting commented on JCR-680:
-----------------------------------
> I agreed with stefan that it's a bit hard to understand how it works.
> especially because the
> inner classes modify the field of the GenericValue.
Another alternative for the internal InitialValue classes would be to add a
package-protected setValue() state setter in GenericValue and have the
InitialValues as normal top-level classes. The current approach achieves
maximum encapsulation at the expense of the extra complexity of having the
InitialValues as inner classes. I'm not opposed to changing that.
> to only thing i'm not happy with is the 'equals()' and 'hashCode()'
> implementation. hashcode
> should cache the code, and i suggest that equals delegates to the values. for
> example it might
> result in very poor performance if 2 date values always need to convert to
> string for comparison:
I'm not sure how performance-critical the Value equality and hash code
operations are, thus I'd rather optimize for clarity by default. Also, see
JCR-598 where the previous date optimization actually caused
incorrect behaviour.
> Improve the Value implementation
> --------------------------------
>
> Key: JCR-680
> URL: https://issues.apache.org/jira/browse/JCR-680
> Project: Jackrabbit
> Issue Type: Improvement
> Components: core
> Reporter: Jukka Zitting
> Assigned To: Jukka Zitting
> Priority: Minor
> Attachments: class.jpg, GenericValue.patch, GenericValue.tar.gz,
> JCR-680.patch
>
>
> The current Value implementation found in jackrabbit-jcr-commons has some
> deficiencies like Value.equals() being incorrect in some cases (see for
> example JCR-320), and Name and Path values not following namespace remappings.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira