Retain direction for empty KeysetScrollPosition.
We now retain the direction when an empty KeysetScrollPosition is created. Closes #2840
This commit is contained in:
@@ -34,9 +34,12 @@ import org.springframework.util.ObjectUtils;
|
||||
*/
|
||||
public final class KeysetScrollPosition implements ScrollPosition {
|
||||
|
||||
private static final KeysetScrollPosition INITIAL = new KeysetScrollPosition(Collections.emptyMap(),
|
||||
private static final KeysetScrollPosition EMPTY_FORWARD = new KeysetScrollPosition(Collections.emptyMap(),
|
||||
Direction.FORWARD);
|
||||
|
||||
private static final KeysetScrollPosition EMPTY_BACKWARD = new KeysetScrollPosition(Collections.emptyMap(),
|
||||
Direction.BACKWARD);
|
||||
|
||||
private final Map<String, Object> keys;
|
||||
private final Direction direction;
|
||||
|
||||
@@ -55,7 +58,7 @@ public final class KeysetScrollPosition implements ScrollPosition {
|
||||
* @return will never be {@literal null}.
|
||||
*/
|
||||
static KeysetScrollPosition initial() {
|
||||
return INITIAL;
|
||||
return EMPTY_FORWARD;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -70,8 +73,7 @@ public final class KeysetScrollPosition implements ScrollPosition {
|
||||
Assert.notNull(keys, "Keys must not be null");
|
||||
Assert.notNull(direction, "Direction must not be null");
|
||||
|
||||
return keys.isEmpty()
|
||||
? initial()
|
||||
return keys.isEmpty() ? (direction == Direction.FORWARD ? EMPTY_FORWARD : EMPTY_BACKWARD)
|
||||
: new KeysetScrollPosition(Collections.unmodifiableMap(new LinkedHashMap<>(keys)), direction);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user