[
http://issues.apache.org/jira/browse/JDO-364?page=comments#action_12373551 ]
Craig Russell commented on JDO-364:
-----------------------------------
Nice.
Just one comment. The javadoc for the static compare methods have the
description appropriate for compareTo, not compare.
+ /**
+ * Compares two instance of IInsurance for order. Returns a negative
+ * integer, zero, or a positive integer as this object is less than, equal
+ * to, or greater than the specified object.
+ * @param o1 The first IInsurance object to be compared.
+ * @param o2 The second IInsurance object to be compared.
+ * @return a negative integer, zero, or a positive integer as the first
+ * object is less than, equal to, or greater than the second object.
+ */
+ public static int compare(IInsurance o1, IInsurance o2) {
+ return EqualityHelper.compare(o1.getInsid(), o2.getInsid());
+ }
> Completness tests fail with generated implementation classes for interfaces
> ---------------------------------------------------------------------------
>
> Key: JDO-364
> URL: http://issues.apache.org/jira/browse/JDO-364
> Project: JDO
> Type: Bug
> Components: tck20
> Versions: JDO 2 rc1
> Reporter: Craig Russell
> Assignee: Michael Bouschen
> Fix For: JDO 2 final
> Attachments: JDO-364.patch
>
> Completeness tests fail while comparing collections of persistent interfaces.
> This is because EqualityHelper invokes Collections.sort(Collection), which
> requires that the instances in the parameter Collection implement compareTo.
> The instances are not required by the specification to implement compareTo;
> therefore a Comparator must be provided to the sort method.
> Further, classes Department and FullTimeEmployee incorrectly cast to the
> class instead of the interface in the deepCompareFields method.
> Finally, the root classes Address, Company, Department, Insurance, Person,
> and Project need to implement the compare(Object, Object) methods directly,
> as there are three instances involved: the Comparator instance, which is an
> instance of the class, and the two instances to be compared. Both of the
> instances to be compared might be of the JDO-generated classes, which don't
> implement any comparison methods. The compare(Object, Object),
> compareTo(Object), and compareTo(SpecificInterface) should be refactored to
> use a common implementation using only the interface for comparison.
> As a specification activity beyond JDO 2.0, we might consider adding metadata
> to require the JDO implementation to generate comparison methods from the
> Comparable or Comparator interfaces based on field values. For datastore
> identity, simply tagging the interfaces, e.g. "interface IDepartment extends
> Comparable", doesn't give the implementation enough information as to which
> fields to compare.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira