Interface PageProvider<T>

    • Field Detail

      • UNKNOWN_SIZE

        static final long UNKNOWN_SIZE
        Constant to express that the total number of result elements is unknown (usually because the query has not been done yet).
        See Also:
        Constant Field Values
      • UNKNOWN_SIZE_AFTER_QUERY

        static final long UNKNOWN_SIZE_AFTER_QUERY
        Constant to express that the total number of result elements is unknown even after performing a query.
        Since:
        5.5
        See Also:
        Constant Field Values
      • DEFAULT_MAX_PAGE_SIZE

        static final long DEFAULT_MAX_PAGE_SIZE
        Default maximum page size value.
        Since:
        6.0, default value is 1000.
        See Also:
        Constant Field Values
      • PAGE_LIMIT_UNKNOWN

        static final long PAGE_LIMIT_UNKNOWN
        Page limit unknown.
        Since:
        5.8
        See Also:
        Constant Field Values
      • HIGHLIGHT_CTX_DATA

        static final String HIGHLIGHT_CTX_DATA
        Highlight context data property name. Used to store highlights in document context data when fetching ES results
        Since:
        9.1
        See Also:
        Constant Field Values
    • Method Detail

      • getName

        String getName()
        Returns the provider identifier
      • setName

        void setName​(String name)
        Sets the provider identifier
      • getProperties

        Map<String,​Serializable> getProperties()
        Gets properties set on the provider.

        Useful to retrieve a provider specific field attributes after instantiation. Other contextual parameters can be passed through API constructing the result provider.

      • setProperties

        void setProperties​(Map<String,​Serializable> properties)
        Sets properties set on the provider.

        Useful to initialize a provider specific field attributes after instantiation. Other contextual parameters can be passed through API constructing the result provider.

      • getParameters

        Object[] getParameters()
      • setParameters

        void setParameters​(Object[] parameters)
      • getPageSize

        long getPageSize()
        Returns the number of results per page. 0 means no pagination unless getMaxPageSize() is greater than this value, it will be taken into account instead.
      • setPageSize

        void setPageSize​(long pageSize)
        Sets the number of results per page. 0 means no pagination unless getMaxPageSize() is greater than this value, it will be taken into account instead.
      • getMaxPageSize

        long getMaxPageSize()
        Returns the max number of results per page. 0 means no pagination.

        If page size is greater than this maximum value, it will be taken into account instead.

        Since:
        5.4.2
      • setMaxPageSize

        void setMaxPageSize​(long pageSize)
        Sets the max number of results per page. 0 means no pagination.

        If page size is greater than this maximum value, it will be taken into account instead.

        Since:
        5.4.2
      • getPageSizeOptions

        List<Long> getPageSizeOptions()
        Returns a list of available page size options to display in the page size selector.

        Uses an hardcoded list of values, and adds up the page provider initial and current page sizes.

        Since:
        7.3
      • setPageSizeOptions

        void setPageSizeOptions​(List<Long> options)
        Sets the page size options.
        Since:
        7.3
      • getResultsCount

        long getResultsCount()
        Returns the number of result elements if available or a negative value if it is unknown: UNKNOWN_SIZE if it is unknown as query was not done, and since 5.5, UNKNOWN_SIZE_AFTER_QUERY if it is still unknown after query was done.
      • setResultsCount

        void setResultsCount​(long resultsCount)
        Sets the results count.
        Since:
        5.5
      • getNumberOfPages

        long getNumberOfPages()
        Returns the total number of pages or 0 if number of pages is unknown.
      • getPageLimit

        long getPageLimit()
        Returns the page limit. The n first page we know they exist.
        Since:
        5.7.3
      • getCurrentPage

        List<T> getCurrentPage()
        Returns the current page of results.

        This method is designed to be called from higher levels. It therefore ensures cheapness of repeated calls, rather than data consistency. There is a refresh() method for that.

        Returns:
        the current page
      • setSelectedEntries

        void setSelectedEntries​(List<T> entries)
        Sets the list of selected entries to take into account in getCurrentSelectPage().
      • setCurrentPageOffset

        void setCurrentPageOffset​(long offset)
        Sets the current page offset.

        If the provider keeps information linked to the current page, they should be reset after calling this method.

        Since:
        5.5
      • setCurrentPageIndex

        void setCurrentPageIndex​(long currentPageIndex)
        Sets the current page of results to the required one.
        Parameters:
        currentPageIndex - the page index, starting from 0
        Since:
        5.7.3
      • setCurrentPage

        List<T> setCurrentPage​(long page)
        Sets the current page of results to the required one and return it.
        Parameters:
        page - the page index, starting from 0
      • refresh

        void refresh()
        Forces refresh of the current page.
      • isNextPageAvailable

        boolean isNextPageAvailable()
        Returns a boolean expressing if there are further pages.
      • isLastPageAvailable

        boolean isLastPageAvailable()
        Returns a boolean expressing if the last page can be displayed.
        Since:
        5.5
      • isPreviousPageAvailable

        boolean isPreviousPageAvailable()
        Returns a boolean expressing if there is a previous page.
      • getCurrentPageSize

        long getCurrentPageSize()
        Returns the number of elements in current page.
      • getCurrentPageOffset

        long getCurrentPageOffset()
        Returns the offset (starting from 0) of the first element in the current page or UNKNOWN_SIZE.
      • getCurrentPageIndex

        long getCurrentPageIndex()
        Returns the current page index as a zero-based integer.
      • getCurrentPageStatus

        String getCurrentPageStatus()
        Returns a simple formatted string for current pagination status.
      • firstPage

        void firstPage()
        Go to the first page
      • previousPage

        void previousPage()
        Go to the previous page
      • nextPage

        void nextPage()
        Go to the next page
      • lastPage

        void lastPage()
        Go to the last page. Does not do anything if there is only one page displayed, or if the number of results is unknown.
      • getCurrentEntry

        T getCurrentEntry()
        Returns the current entry.
      • setCurrentEntry

        void setCurrentEntry​(T entry)
        Sets the current entry.
      • setCurrentEntryIndex

        void setCurrentEntryIndex​(long index)
        Sets the current entry index.
      • isNextEntryAvailable

        boolean isNextEntryAvailable()
        Returns true if there is a next entry.

        The next entry might be in next page, except if results count is unknown.

      • isPreviousEntryAvailable

        boolean isPreviousEntryAvailable()
        Returns true if there is a previous entry.

        The previous entry might be in previous page.

      • previousEntry

        void previousEntry()
        Move the current entry to the previous one, if applicable.

        No exception: this method is intended to be plugged directly at the UI layer. In case there's no previous entry, nothing will happen.

      • nextEntry

        void nextEntry()
        Move the current entry to the next one, if applicable.

        If needed and possible, the provider will forward to next page. No special exceptions: this method is intended to be plugged directly at the UI layer. In case there's no next entry, nothing happens.

      • isSortable

        boolean isSortable()
        Returns if this provider is sortable
      • setSortable

        void setSortable​(boolean sortable)
      • getSortInfos

        List<SortInfo> getSortInfos()
        Returns the complete list of sorting info for this provider
      • getSortInfo

        SortInfo getSortInfo()
        Returns the first sorting info for this provider

        Also kept for compatibility with existing code.

      • setSortInfos

        void setSortInfos​(List<SortInfo> sortInfo)
        Sets the complete list of sorting info for this provider
      • setSortInfo

        void setSortInfo​(SortInfo sortInfo)
        Sets the first and only sorting info for this provider.

        Also kept for compatibility with existing code.

      • setSortInfo

        void setSortInfo​(String sortColumn,
                         boolean sortAscending,
                         boolean removeOtherSortInfos)
        Sets the first and only sorting info for this provider if parameter removeOtherSortInfos is true. Otherwise, adds or changes the sortAscending information according to given direction.
      • addSortInfo

        void addSortInfo​(String sortColumn,
                         boolean sortAscending)
        Add the given sort info to the list of sorting infos.
      • getSortInfoIndex

        int getSortInfoIndex​(String sortColumn,
                             boolean sortAscending)
        Returns a positive 0-based integer if given sort information is found on the set sort infos, indicating the sort index, or -1 if this sort information is not found.
      • setSearchDocumentModel

        void setSearchDocumentModel​(DocumentModel doc)
      • hasError

        boolean hasError()
      • getErrorMessage

        String getErrorMessage()
      • hasChangedParameters

        boolean hasChangedParameters​(Object[] parameters)
        Test if provider parameters have changed
        Since:
        5.7
      • hasAggregateSupport

        boolean hasAggregateSupport()
        Since:
        6.0
      • isSkipAggregates

        boolean isSkipAggregates()
        Since:
        10.2
      • setQuickFilters

        void setQuickFilters​(List<QuickFilter> quickFilters)
        Since:
        8.4
      • addQuickFilter

        void addQuickFilter​(QuickFilter quickFilter)
        Since:
        8.4
      • getAvailableQuickFilters

        List<QuickFilter> getAvailableQuickFilters()
        Since:
        8.4
      • getHighlights

        List<String> getHighlights()
        Since:
        9.1
      • setHighlights

        void setHighlights​(List<String> highlights)
        Since:
        9.1
      • getResultsCountLimit

        long getResultsCountLimit()
        Limit of number of results beyond which the page provider may not be able to compute getResultsCount() or navigate.

        Requesting results beyond this limit may result in error. When getResultsCount() is negative, it means there may be more results than this limit.

        0 means there is no limit.

        Since:
        9.3