Interface PageProvider<T>
- Type Parameters:
T
- any Serializable item
- All Superinterfaces:
Serializable
- All Known Implementing Classes:
AbstractGroupMemberPageProvider
,AbstractGroupsPageProvider
,AbstractPageProvider
,AbstractUsersPageProvider
,AuditPageProvider
,CoreQueryAndFetchPageProvider
,CoreQueryDocumentPageProvider
,DirectoryEntryPageProvider
,DocumentHistoryPageProvider
,DocumentModelListPageProvider
,ElasticSearchNativePageProvider
,ElasticSearchNxqlPageProvider
,EmptyPageProvider
,ESAuditPageProvider
,ESDocumentHistoryPageProvider
,GroupMemberGroupsPageProvider
,GroupMemberUsersPageProvider
,GroupsPageProvider
,LatestCreatedUsersOrGroupsPageProvider
,MongoDBAuditPageProvider
,MongoDBDocumentHistoryPageProvider
,NuxeoGroupsPageProvider
,NuxeoPrincipalsPageProvider
,RoutingTaskPageProvider
,ShibbolethGroupsPageProvider
,UsersPageProvider
,UserTaskPageProvider
,VFolderPageProvider
Provides APIs to navigate between result pages
- Since:
- 5.4
- Author:
- arussel, Anahide Tchertchian
-
Field Summary
Modifier and TypeFieldDescriptionstatic final long
Default maximum page size value.static final String
static final String
Highlight context data property name.static final long
Page limit unknown.static final String
static final long
Constant to express that the total number of result elements is unknown (usually because the query has not been done yet).static final long
Constant to express that the total number of result elements is unknown even after performing a query. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addQuickFilter
(QuickFilter quickFilter) void
addSortInfo
(String sortColumn, boolean sortAscending) Add the given sort info to the list of sorting infos.void
Go to the first pageReturns the current entry.Returns the current page of results.long
Returns the current page index as a zero-based integer.long
Returns the offset (starting from 0) of the first element in the current page orUNKNOWN_SIZE
.long
Returns the number of elements in current page.Returns a simple formatted string for current pagination status.Returns the current page of results wrapped in aPageSelection
item.getError()
long
Returns the max number of results per page. 0 means no pagination.getName()
Returns the provider identifierlong
Returns the total number of pages or 0 if number of pages is unknown.long
Returns the page limit.long
Returns the number of results per page. 0 means no pagination unlessgetMaxPageSize()
is greater than this value, it will be taken into account instead.Returns a list of available page size options to display in the page size selector.Object[]
Gets properties set on the provider.long
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.long
Limit of number of results beyond which the page provider may not be able to computegetResultsCount()
or navigate.Returns the first sorting info for this providerint
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.Returns the complete list of sorting info for this providerboolean
boolean
hasChangedParameters
(Object[] parameters) Test if provider parameters have changedboolean
hasError()
boolean
Returns a boolean expressing if the last page can be displayed.boolean
Returns true if there is a next entry.boolean
Returns a boolean expressing if there are further pages.boolean
Returns true if there is a previous entry.boolean
Returns a boolean expressing if there is a previous page.boolean
boolean
Returns if this provider is sortablevoid
lastPage()
Go to the last page.void
Move the current entry to the next one, if applicable.void
nextPage()
Go to the next pagevoid
Move the current entry to the previous one, if applicable.void
Go to the previous pagevoid
refresh()
Forces refresh of the current page.void
setCurrentEntry
(T entry) Sets the current entry.void
setCurrentEntryIndex
(long index) Sets the current entry index.setCurrentPage
(long page) Sets the current page of results to the required one and return it.void
setCurrentPageIndex
(long currentPageIndex) Sets the current page of results to the required one.void
setCurrentPageOffset
(long offset) Sets the current page offset.void
setDefinition
(PageProviderDefinition providerDefinition) void
setHighlights
(List<String> highlights) void
setMaxPageSize
(long pageSize) Sets the max number of results per page. 0 means no pagination.void
Sets the provider identifiervoid
Sets thePageProviderChangedListener
for thisPageProvider
.void
setPageSize
(long pageSize) Sets the number of results per page. 0 means no pagination unlessgetMaxPageSize()
is greater than this value, it will be taken into account instead.void
setPageSizeOptions
(List<Long> options) Sets the page size options.void
setParameters
(Object[] parameters) void
setProperties
(Map<String, Serializable> properties) Sets properties set on the provider.void
setQuickFilters
(List<QuickFilter> quickFilters) void
setResultsCount
(long resultsCount) Sets the results count.void
void
setSelectedEntries
(List<T> entries) Sets the list of selected entries to take into account ingetCurrentSelectPage()
.void
setSortable
(boolean sortable) void
setSortInfo
(String sortColumn, boolean sortAscending, boolean removeOtherSortInfos) Sets the first and only sorting info for this provider if parameter removeOtherSortInfos is true.void
setSortInfo
(SortInfo sortInfo) Sets the first and only sorting info for this provider.void
setSortInfos
(List<SortInfo> sortInfo) Sets the complete list of sorting info for this provider
-
Field Details
-
DEFAULT_MAX_PAGE_SIZE_RUNTIME_PROP
- See Also:
-
UNKNOWN_SIZE
static final long UNKNOWN_SIZEConstant to express that the total number of result elements is unknown (usually because the query has not been done yet).- See Also:
-
UNKNOWN_SIZE_AFTER_QUERY
static final long UNKNOWN_SIZE_AFTER_QUERYConstant to express that the total number of result elements is unknown even after performing a query.- Since:
- 5.5
- See Also:
-
DEFAULT_MAX_PAGE_SIZE
static final long DEFAULT_MAX_PAGE_SIZEDefault maximum page size value.- Since:
- 6.0, default value is 1000.
- See Also:
-
PAGE_LIMIT_UNKNOWN
static final long PAGE_LIMIT_UNKNOWNPage limit unknown.- Since:
- 5.8
- See Also:
-
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:
-
SKIP_AGGREGATES_PROP
- Since:
- 10.2
- See Also:
-
-
Method Details
-
getName
String getName()Returns the provider identifier -
setName
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
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
-
getPageSize
long getPageSize()Returns the number of results per page. 0 means no pagination unlessgetMaxPageSize()
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 unlessgetMaxPageSize()
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
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
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
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
-
getCurrentSelectPage
PageSelections<T> getCurrentSelectPage()Returns the current page of results wrapped in aPageSelection
item.By default, no entry is selected, unless
setSelectedEntries(List)
has been called before. -
setSelectedEntries
Sets the list of selected entries to take into account ingetCurrentSelectPage()
. -
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
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 orUNKNOWN_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
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
Returns the complete list of sorting info for this provider -
getSortInfo
SortInfo getSortInfo()Returns the first sorting info for this providerAlso kept for compatibility with existing code.
-
setSortInfos
Sets the complete list of sorting info for this provider -
setSortInfo
Sets the first and only sorting info for this provider.Also kept for compatibility with existing code.
-
setSortInfo
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
Add the given sort info to the list of sorting infos. -
getSortInfoIndex
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. -
getSearchDocumentModel
DocumentModel getSearchDocumentModel() -
setSearchDocumentModel
-
hasError
boolean hasError() -
getErrorMessage
String getErrorMessage() -
getError
Throwable getError() -
setDefinition
-
getDefinition
PageProviderDefinition getDefinition() -
setPageProviderChangedListener
Sets thePageProviderChangedListener
for thisPageProvider
.- Since:
- 5.7
-
hasChangedParameters
Test if provider parameters have changed- Since:
- 5.7
-
getAggregateDefinitions
List<AggregateDefinition> getAggregateDefinitions()- Since:
- 6.0
-
getAggregates
- Since:
- 6.0
-
hasAggregateSupport
boolean hasAggregateSupport()- Since:
- 6.0
-
isSkipAggregates
boolean isSkipAggregates()- Since:
- 10.2
-
getQuickFilters
List<QuickFilter> getQuickFilters()- Since:
- 8.4
-
setQuickFilters
- Since:
- 8.4
-
addQuickFilter
- Since:
- 8.4
-
getAvailableQuickFilters
List<QuickFilter> getAvailableQuickFilters()- Since:
- 8.4
-
getHighlights
- Since:
- 9.1
-
setHighlights
- Since:
- 9.1
-
getResultsCountLimit
long getResultsCountLimit()Limit of number of results beyond which the page provider may not be able to computegetResultsCount()
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
-