RFR: 8310033: Clarify return value of Java Time compareTo methods [v7]

Stephen Colebourne scolebourne at openjdk.org
Thu Jul 20 19:37:46 UTC 2023


On Tue, 11 Jul 2023 17:54:23 GMT, Roger Riggs <rriggs at openjdk.org> wrote:

>> In java.time packages, clarify timeline order javadoc to mention "before" and "after" in the value of the `compareTo` method return values. 
>> Add javadoc @see tags to isBefore and isAfter methods
>> 
>> Replace use of "negative" and positive with "less than zero" and "greater than zero" in javadoc @return
>> The term "positive" is ambiguous, zero is considered positive and indicates equality.
>
> Roger Riggs has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 12 additional commits since the last revision:
> 
>  - Improve wording and remove markup for clarity
>  - Merge branch 'master' into 8310033-time-compareto
>  - Correct the descriptions to correctly identify the compareTo return
>    value < 0 as this is before that, and > 0 as this is after that.
>    Thanks to a careful reviewer spotting my reversing of the conditions.
>  - Improve the grammar of "the comparator value is" -> "the comparator value, that is"
>    Thanks for the reminder.
>  - Merge branch 'master' into 8310033-time-compareto
>  - Improve descriptions to be more specific and remove inappropriate use of before/after
>    Remove extra blank lines
>  - Clarify return values of date time classes
>  - Use {@code xxx} to highlight the comparison against the arg.
>    Update copyrights.
>  - Merge branch 'master' into 8310033-time-compareto
>  - Clarify for Duration, AbstractChronology, and Chronology
>  - ... and 2 more: https://git.openjdk.org/jdk/compare/cbfb208d...1d39e2d4

Changes requested by scolebourne (Author).

src/java.base/share/classes/java/time/LocalDate.java line 1991:

> 1989:      *
> 1990:      * @param other  the other date to compare to, not null
> 1991:      * @return the comparator value, that is less than zero if this is before {@code other},

This text is incorrect. It does not match the description above re chronologies.

src/java.base/share/classes/java/time/LocalDateTime.java line 1810:

> 1808:      *
> 1809:      * @param other  the other date-time to compare to, not null
> 1810:      * @return the comparator value, that is less than zero if this is before {@code other},

This text is incorrect. It does not match the description above re chronologies.

src/java.base/share/classes/java/time/OffsetDateTime.java line 1805:

> 1803:      *
> 1804:      * @param other  the other date-time to compare to, not null
> 1805:      * @return the comparator value, that is the comparison with the {@code other}'s instant, if they are not equal;

This text is incorrect. It does not match the description above re offsets. (This would be a suitable description for `compareInstant`)

src/java.base/share/classes/java/time/OffsetTime.java line 1286:

> 1284:      * @return the comparator value, that is the comparison of the UTC equivalent {@code other} instant,
> 1285:      *          if they are not equal, and if the UTC equivalent {@code other} instant is equal,
> 1286:      *          the comparison of this local date-time with {@code other} local date-time

This text is incorrect. It compares the local time, not the local date-time, when  the instants are equal

src/java.base/share/classes/java/time/chrono/ChronoLocalDate.java line 703:

> 701:      *
> 702:      * @param other  the other date to compare to, not null
> 703:      * @return the comparator value, that is less than zero if this is before {@code other},

This text is incorrect. It does not match the description above re chronologies.

-------------

PR Review: https://git.openjdk.org/jdk/pull/14479#pullrequestreview-1539950887
PR Review Comment: https://git.openjdk.org/jdk/pull/14479#discussion_r1269880032
PR Review Comment: https://git.openjdk.org/jdk/pull/14479#discussion_r1269879973
PR Review Comment: https://git.openjdk.org/jdk/pull/14479#discussion_r1269881117
PR Review Comment: https://git.openjdk.org/jdk/pull/14479#discussion_r1269883364
PR Review Comment: https://git.openjdk.org/jdk/pull/14479#discussion_r1269884657


More information about the core-libs-dev mailing list