Class PaginationResult<T extends BaseEntity>

java.lang.Object
com.github.collinalpert.java2db.pagination.PaginationResult<T>
Direct Known Subclasses:
CacheablePaginationResult

public class PaginationResult<T extends BaseEntity>
extends Object
Class for a simple pagination implementation.
Author:
Collin Alpert
  • Field Details

  • Constructor Details

  • Method Details

    • getNumberOfPages

      public int getNumberOfPages()
      Gets the amount of pages created to split up a query.
      Returns:
      The number of pages created for the result.
    • getPage

      public List<T> getPage​(int number)
      Retrieves a specific page represented by a List. Only then will a query to the database be executed.
      Parameters:
      number - The number of the page. The first page has the number 1.
      Returns:
      A List of entities on this page.
    • getPageAsync

      public CompletableFuture<Void> getPageAsync​(int number, Consumer<? super List<T>> callback)
      The asynchronous version of the getPage(int) method.
      Parameters:
      number - The number of the page. The first page has the number 1.
      callback - The callback to be executed once the page has been fetched.
      Returns:
      A CompletableFuture representing the asynchronous operation.
      See Also:
      getPage(int)
    • getPageAsStream

      public Stream<T> getPageAsStream​(int number)
      Retrieves a specific page represented by a Stream. Only then will a query to the database be executed.
      Parameters:
      number - The number of the page. The first page has the number 1.
      Returns:
      A Stream of entities on this page.
    • getPageAsStreamAsync

      public CompletableFuture<Void> getPageAsStreamAsync​(int number, Consumer<? super Stream<T>> callback)
      The asynchronous version of the getPageAsStream(int) method.
      Parameters:
      number - The number of the page. The first page has the number 1.
      callback - The callback to be executed once the page has been fetched.
      Returns:
      A CompletableFuture representing the asynchronous operation.
      See Also:
      getPageAsStream(int)
    • getPageAsArray

      public T[] getPageAsArray​(int number)
      Retrieves a specific page represented by an array. Only then will a query to the database be executed.
      Parameters:
      number - The number of the page. The first page has the number 1.
      Returns:
      An array of entities on this page.
    • getPageAsArrayAsync

      public CompletableFuture<Void> getPageAsArrayAsync​(int number, Consumer<? super T[]> callback)
      The asynchronous version of the getPageAsArray(int) method.
      Parameters:
      number - The number of the page. The first page has the number 1.
      callback - The callback to be executed once the page has been fetched.
      Returns:
      A CompletableFuture representing the asynchronous operation.
      See Also:
      getPageAsArray(int)
    • orderBy

      @SafeVarargs public final PaginationResult<T> orderBy​(com.github.collinalpert.lambda2sql.functions.SqlFunction<T,​?>... orderFunctions)
      Adds ascending ORDER BY statements to the queries executed for the pages in a coalescing manner. Note that this will order the entire pagination structure and not every page separately.
      Parameters:
      orderFunctions - The columns to order by.
      Returns:
      The object with an ORDER BY statement
    • orderBy

      @SafeVarargs public final PaginationResult<T> orderBy​(OrderTypes orderType, com.github.collinalpert.lambda2sql.functions.SqlFunction<T,​?>... orderFunctions)
      Adds ORDER BY statements to the queries executed for the pages in a coalescing manner. Note that this will order the entire pagination structure and not every page separately.
      Parameters:
      orderType - The direction of order.
      orderFunctions - The columns to order by.
      Returns:
      The object with an ORDER BY statement