Skip to content

Elimate Code Duplication in DefaultRedisList #2997

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 3 commits into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
* @author Christoph Strobl
* @author Mark Paluch
* @author John Blum
* @author Jinbeom Kim
*/
public class DefaultRedisList<E> extends AbstractRedisCollection<E> implements RedisList<E> {

Expand Down Expand Up @@ -216,16 +217,14 @@ public boolean remove(Object o) {
public void add(int index, E element) {

if (index == 0) {
listOps.leftPush(element);
cap();
addFirst(element);
return;
}

int size = size();

if (index == size()) {
listOps.rightPush(element);
cap();
addLast(element);
return;
}

Expand All @@ -241,24 +240,15 @@ public boolean addAll(int index, Collection<? extends E> collection) {

// insert collection in reverse
if (index == 0) {

Collection<? extends E> reverseCollection = CollectionUtils.reverse(collection);

for (E element : reverseCollection) {
listOps.leftPush(element);
cap();
}

CollectionUtils.reverse(collection)
.forEach(this::addFirst);
return true;
}

int size = size();

if (index == size()) {
for (E element : collection) {
listOps.rightPush(element);
cap();
}
collection.forEach(this::addLast);
return true;
}

Expand Down Expand Up @@ -341,9 +331,7 @@ public E element() {

@Override
public boolean offer(E element) {
listOps.rightPush(element);
cap();
return true;
return add(element);
}

@Override
Expand Down