Skip to content

Commit 12e53c6

Browse files
Return RequestFuture for PaginationAction async iterations
This allows to use continuations after the iteration completed
1 parent 9e593c5 commit 12e53c6

File tree

1 file changed

+8
-11
lines changed

1 file changed

+8
-11
lines changed

src/main/java/net/dv8tion/jda/core/requests/restaction/pagination/PaginationAction.java

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,15 @@
1717
package net.dv8tion.jda.core.requests.restaction.pagination;
1818

1919
import net.dv8tion.jda.core.JDA;
20-
import net.dv8tion.jda.core.requests.Request;
21-
import net.dv8tion.jda.core.requests.Response;
22-
import net.dv8tion.jda.core.requests.RestAction;
23-
import net.dv8tion.jda.core.requests.Route;
20+
import net.dv8tion.jda.core.requests.*;
2421
import net.dv8tion.jda.core.utils.Checks;
2522
import net.dv8tion.jda.core.utils.Procedure;
23+
import net.dv8tion.jda.core.utils.Promise;
2624

2725
import javax.annotation.Nonnull;
2826
import java.util.*;
2927
import java.util.concurrent.CompletableFuture;
3028
import java.util.concurrent.CopyOnWriteArrayList;
31-
import java.util.concurrent.Future;
3229
import java.util.concurrent.atomic.AtomicInteger;
3330
import java.util.function.BooleanSupplier;
3431
import java.util.function.Consumer;
@@ -364,7 +361,7 @@ public PaginationIterator iterator()
364361
*
365362
* @return {@link java.util.concurrent.Future Future} that can be cancelled to stop iteration from outside!
366363
*/
367-
public Future<?> forEachAsync(final Procedure<T> action)
364+
public RequestFuture<?> forEachAsync(final Procedure<T> action)
368365
{
369366
return forEachAsync(action, (throwable) ->
370367
{
@@ -410,12 +407,12 @@ public Future<?> forEachAsync(final Procedure<T> action)
410407
*
411408
* @return {@link java.util.concurrent.Future Future} that can be cancelled to stop iteration from outside!
412409
*/
413-
public Future<?> forEachAsync(final Procedure<T> action, final Consumer<Throwable> failure)
410+
public RequestFuture<?> forEachAsync(final Procedure<T> action, final Consumer<Throwable> failure)
414411
{
415412
Checks.notNull(action, "Procedure");
416413
Checks.notNull(failure, "Failure Consumer");
417414

418-
final CompletableFuture<?> task = new CompletableFuture<>();
415+
final Promise<?> task = new Promise<>();
419416
final Consumer<List<T>> acceptor = new ChainedConsumer(task, action, (throwable) ->
420417
{
421418
task.completeExceptionally(throwable);
@@ -468,7 +465,7 @@ public Future<?> forEachAsync(final Procedure<T> action, final Consumer<Throwabl
468465
*
469466
* @return {@link java.util.concurrent.Future Future} that can be cancelled to stop iteration from outside!
470467
*/
471-
public Future<?> forEachRemainingAsync(final Procedure<T> action)
468+
public RequestFuture<?> forEachRemainingAsync(final Procedure<T> action)
472469
{
473470
return forEachRemainingAsync(action, (throwable) ->
474471
{
@@ -514,12 +511,12 @@ public Future<?> forEachRemainingAsync(final Procedure<T> action)
514511
*
515512
* @return {@link java.util.concurrent.Future Future} that can be cancelled to stop iteration from outside!
516513
*/
517-
public Future<?> forEachRemainingAsync(final Procedure<T> action, final Consumer<Throwable> failure)
514+
public RequestFuture<?> forEachRemainingAsync(final Procedure<T> action, final Consumer<Throwable> failure)
518515
{
519516
Checks.notNull(action, "Procedure");
520517
Checks.notNull(failure, "Failure Consumer");
521518

522-
final CompletableFuture<?> task = new CompletableFuture<>();
519+
final Promise<?> task = new Promise<>();
523520
final Consumer<List<T>> acceptor = new ChainedConsumer(task, action, (throwable) ->
524521
{
525522
task.completeExceptionally(throwable);

0 commit comments

Comments
 (0)