Interface MessagePaginationAction

All Superinterfaces:
Iterable<Message>, PaginationAction<Message, MessagePaginationAction>, RestAction<List<Message>>

public interface MessagePaginationAction extends PaginationAction<Message, MessagePaginationAction>
PaginationAction that paginates the message history endpoint.
Note that this implementation is not considered thread-safe as modifications to the cache are not done with a lock. Calling methods on this class from multiple threads is not recommended.

Must provide not-null MessageChannel to compile a valid pagination route.

Limits:
Minimum - 1
Maximum - 100

Example

// Iterates messages in an async stream and stops once the limit has been reached.
public static void onEachMessageAsync(MessageChannel channel, Consumer<Message> consumer, int limit) {
    if (limit < 1) {
        return;
    }

    MessagePaginationAction action = channel.getIterableHistory();
    AtomicInteger counter = new AtomicInteger(limit);
    action.forEachAsync((message) -> {
        consumer.accept(message);
        // if false the iteration is terminated; else it continues
        return counter.decrementAndGet() == 0;
    });
}
See Also: