RFR: 8302816: Refactor sorting-related classes [v2]
Ambarish Rapte
arapte at openjdk.org
Fri Apr 28 08:09:05 UTC 2023
On Wed, 26 Apr 2023 10:16:54 GMT, Nir Lisker <nlisker at openjdk.org> wrote:
>> Most of the changes revolve around unifying the sorting methods for a collection with `Comparable` elements with sorting methods that take an external `Comparator` by passing `Comparator.naturalOrder()` from the former to the latter. This eliminates method duplication and some warnings suppressions.
>>
>> Note that I get 1 failing test: VersionInfoTest.testMajorVersion. This PR is unrelated to this test.
>
> Nir Lisker has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains three commits:
>
> - Added missing space
> - Merge branch 'master' into 8302816_Refactor_sorting-related_classes
> - Initial commit
Providing few minor comments.
Please allow a day more to review the changes in `SortHelper.java`
modules/javafx.base/src/main/java/com/sun/javafx/collections/ObservableListWrapper.java line 45:
> 43: *
> 44: */
> 45: public class ObservableListWrapper<E> extends ModifiableObservableListBase<E> implements SortableList<E>, RandomAccess {
Looks like an unintended change. Can be reverted.
modules/javafx.base/src/main/java/com/sun/javafx/collections/ObservableSequentialListWrapper.java line 244:
> 242: }
> 243:
> 244: private SortHelper helper;
Looks like this only got moved from line# 41. Can be placed back to reduce diff.
modules/javafx.base/src/main/java/com/sun/javafx/collections/SortHelper.java line 36:
> 34: /**
> 35: * A helper class containing algorithms taken from JDK 6 that additionally track the permutations that're created
> 36: * during the process.
Break line to <= 80 length.
modules/javafx.base/src/main/java/javafx/collections/FXCollections.java line 670:
> 668:
> 669: /**
> 670: * Sorts the provided observable list as specified in {@link java.util.Collections#sort(List) Collections.sort(List)}.
Could you please break the line into two, similar to the lines# 681, 682.
modules/javafx.base/src/main/java/javafx/collections/FXCollections.java line 673:
> 671: * Fires only <b>one</b> change notification on the list.
> 672: *
> 673: * @param <T> the element type of the list
Looks like this type of wording is widely used in jfx source : `The type of the elements contained within the List.`
[Example in ComboBoxTreeTableCell](https://github.com/openjdk/jfx/blob/1975165bed2942eaad9a1d7685839d2f77339ccb/modules/javafx.controls/src/main/java/javafx/scene/control/cell/ComboBoxTreeTableCell.java#L56)
May be adapt similar wording here, and other modified places too. ?
Or use similar as Collections.sort() as:
`the type of the elements in the list`
modules/javafx.base/src/main/java/javafx/collections/FXCollections.java line 687:
> 685: * @param <T> the element type of the list
> 686: * @param list the list to sort
> 687: * @param comparator the comparator to determine the order of the list. A {@code null} value indicates that the
Line looks lengthy, may be let's break into two
-------------
Changes requested by arapte (Reviewer).
PR Review: https://git.openjdk.org/jfx/pull/1041#pullrequestreview-1405289087
PR Review Comment: https://git.openjdk.org/jfx/pull/1041#discussion_r1179981604
PR Review Comment: https://git.openjdk.org/jfx/pull/1041#discussion_r1180057892
PR Review Comment: https://git.openjdk.org/jfx/pull/1041#discussion_r1180063363
PR Review Comment: https://git.openjdk.org/jfx/pull/1041#discussion_r1179970773
PR Review Comment: https://git.openjdk.org/jfx/pull/1041#discussion_r1179976388
PR Review Comment: https://git.openjdk.org/jfx/pull/1041#discussion_r1180003549
More information about the openjfx-dev
mailing list