Class PaginationResult<T extends BaseEntity>

  • Direct Known Subclasses:
    CacheablePaginationResult

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

      Fields 
      Modifier and Type Field Description
      protected java.util.List<EntityQuery<T>> queries  
    • Method Summary

      Modifier and Type Method Description
      int getNumberOfPages()
      Gets the amount of pages created to split up a query.
      java.util.List<T> getPage​(int number)
      Retrieves a specific page represented by a List.
      T[] getPageAsArray​(int number)
      Retrieves a specific page represented by an array.
      java.util.concurrent.CompletableFuture<java.lang.Void> getPageAsArrayAsync​(int number, java.util.function.Consumer<? super T[]> callback)
      The asynchronous version of the getPageAsArray(int) method.
      java.util.stream.Stream<T> getPageAsStream​(int number)
      Retrieves a specific page represented by a Stream.
      java.util.concurrent.CompletableFuture<java.lang.Void> getPageAsStreamAsync​(int number, java.util.function.Consumer<? super java.util.stream.Stream<T>> callback)
      The asynchronous version of the getPageAsStream(int) method.
      java.util.concurrent.CompletableFuture<java.lang.Void> getPageAsync​(int number, java.util.function.Consumer<? super java.util.List<T>> callback)
      The asynchronous version of the getPage(int) method.
      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.
      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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • PaginationResult

        public PaginationResult​(java.util.List<EntityQuery<T>> queries)
    • Method Detail

      • 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 java.util.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 java.util.concurrent.CompletableFuture<java.lang.Void> getPageAsync​(int number,
                                                                                   java.util.function.Consumer<? super java.util.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 java.util.stream.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 java.util.concurrent.CompletableFuture<java.lang.Void> getPageAsStreamAsync​(int number,
                                                                                           java.util.function.Consumer<? super java.util.stream.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 java.util.concurrent.CompletableFuture<java.lang.Void> getPageAsArrayAsync​(int number,
                                                                                          java.util.function.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