Interface MessagePaginationAction

All Superinterfaces:
Iterable<Message>, PaginationAction<Message,MessagePaginationAction>, RestAction<@Unmodifiable 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: