Skip to content

Commit f356985

Browse files
committed
chore: minor improvements
1 parent 6890f3e commit f356985

File tree

5 files changed

+13
-12
lines changed

5 files changed

+13
-12
lines changed

core/src/main/java/ai/timefold/solver/core/impl/domain/valuerange/ValueRangeCache.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,7 @@ public Iterator<Value_> iterator(Random workingRandom) {
8282
* @param sorter never null, the sorter
8383
*/
8484
public ValueRangeCache<Value_> sort(ValueRangeSorter<Value_> sorter) {
85-
var valuesWithFastRandomAccessSorted = new ArrayList<>(valuesWithFastRandomAccess);
86-
sorter.sort(valuesWithFastRandomAccessSorted);
85+
var valuesWithFastRandomAccessSorted = sorter.sort(valuesWithFastRandomAccess);
8786
return switch (cacheType) {
8887
case USER_VALUES -> Builder.FOR_USER_VALUES.buildCache(valuesWithFastRandomAccessSorted);
8988
case TRUSTED_VALUES -> Builder.FOR_TRUSTED_VALUES.buildCache(valuesWithFastRandomAccessSorted);

core/src/main/java/ai/timefold/solver/core/impl/domain/valuerange/buildin/collection/ListValueRange.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package ai.timefold.solver.core.impl.domain.valuerange.buildin.collection;
22

3-
import java.util.ArrayList;
43
import java.util.Iterator;
54
import java.util.List;
65
import java.util.Random;
@@ -60,9 +59,8 @@ public boolean contains(@Nullable T value) {
6059

6160
@Override
6261
public ValueRange<T> sort(ValueRangeSorter<T> sorter) {
63-
var newList = new ArrayList<>(list);
64-
sorter.sort(newList);
65-
return new ListValueRange<>(newList, isValueImmutable);
62+
var sortedList = sorter.sort(list);
63+
return new ListValueRange<>(sortedList, isValueImmutable);
6664
}
6765

6866
@Override

core/src/main/java/ai/timefold/solver/core/impl/domain/valuerange/buildin/composite/CompositeCountableValueRange.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ public CompositeCountableValueRange(List<? extends AbstractCountableValueRange<T
4141
}
4242

4343
private CompositeCountableValueRange(ValueRangeCache<T> cache, boolean isValueImmutable) {
44-
this.isValueImmutable = isValueImmutable;
4544
this.cache = cache;
45+
this.isValueImmutable = isValueImmutable;
4646
}
4747

4848
@Override

core/src/main/java/ai/timefold/solver/core/impl/domain/valuerange/sort/SelectionSorterAdapter.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package ai.timefold.solver.core.impl.domain.valuerange.sort;
22

3+
import java.util.ArrayList;
4+
import java.util.Collections;
35
import java.util.List;
46
import java.util.Set;
57
import java.util.SortedSet;
@@ -18,8 +20,10 @@ public static <Solution_, T> ValueRangeSorter<T> of(Solution_ solution, Selectio
1820
}
1921

2022
@Override
21-
public void sort(List<T> selectionList) {
22-
selectionSorter.sort(solution, selectionList);
23+
public List<T> sort(List<T> selectionList) {
24+
var newList = new ArrayList<>(selectionList);
25+
selectionSorter.sort(solution, newList);
26+
return Collections.unmodifiableList(newList);
2327
}
2428

2529
@Override

core/src/main/java/ai/timefold/solver/core/impl/domain/valuerange/sort/ValueRangeSorter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@
1515
public interface ValueRangeSorter<T> {
1616

1717
/**
18-
* Apply an in-place sorting operation.
18+
* Creates a copy of the provided list and sort the data.
1919
*
20-
* @param selectionList never null, a {@link List} of value that will be sorted.
20+
* @param selectionList never null, a {@link List} of values that will be used as input for sorting.
2121
*/
22-
void sort(List<T> selectionList);
22+
List<T> sort(List<T> selectionList);
2323

2424
/**
2525
* Creates a copy of the provided set and sort the data.

0 commit comments

Comments
 (0)