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;
    });
}
Since:
3.1
See Also: