public class CoreQueryAndFetchPageProvider extends AbstractPageProvider<Map<String,Serializable>>
It builds the query at each call so that it can refresh itself when the query changes.
The page provider property named CORE_SESSION_PROPERTY
is used to
pass the CoreSession
instance that will perform the query. The
optional property CHECK_QUERY_CACHE_PROPERTY
can be set to "true"
to avoid performing the query again if it did not change.
Since 6.0, the page provider property named LANGUAGE_PROPERTY
allows specifying the query language (NXQL, NXTAG,...).
Also since 6.0, the page provider property named
USE_UNRESTRICTED_SESSION_PROPERTY
allows specifying whether the
query should be run as unrestricted.
Modifier and Type | Field and Description |
---|---|
static String |
CHECK_QUERY_CACHE_PROPERTY |
static String |
CORE_SESSION_PROPERTY |
static String |
LANGUAGE_PROPERTY |
static String |
USE_UNRESTRICTED_SESSION_PROPERTY
Boolean property stating that query should be unrestricted.
|
DEFAULT_MAX_PAGE_SIZE, DEFAULT_MAX_PAGE_SIZE_RUNTIME_PROP, PAGE_LIMIT_UNKNOWN, UNKNOWN_SIZE, UNKNOWN_SIZE_AFTER_QUERY
Constructor and Description |
---|
CoreQueryAndFetchPageProvider() |
Modifier and Type | Method and Description |
---|---|
List<Map<String,Serializable>> |
getCurrentPage()
Returns the list of current page items.
|
String |
getCurrentQuery() |
PageSelections<Map<String,Serializable>> |
getCurrentSelectPage()
Returns the current page of results wrapped in a
PageSelection
item. |
void |
refresh()
Refresh hook, to override for custom behavior
|
addSortInfo, firstPage, getAggregateDefinitions, getAggregates, getCurrentEntry, getCurrentHigherNonEmptyPageIndex, getCurrentPageIndex, getCurrentPageOffset, getCurrentPageSize, getCurrentPageStatus, getDefinition, getError, getErrorMessage, getMaxNumberOfEmptyPages, getMaxPageSize, getMinMaxPageSize, getName, getNumberOfPages, getPageLimit, getPageSize, getParameters, getProperties, getResultsCount, getSearchDocumentModel, getSortInfo, getSortInfoIndex, getSortInfos, hasAggregateSupport, hasChangedParameters, hasError, isLastPageAvailable, isNextEntryAvailable, isNextPageAvailable, isPreviousEntryAvailable, isPreviousPageAvailable, isSortable, last, lastPage, next, nextEntry, nextPage, previous, previousEntry, previousPage, rewind, setCurrentEntry, setCurrentEntryIndex, setCurrentHigherNonEmptyPageIndex, setCurrentPage, setCurrentPageIndex, setCurrentPageOffset, setDefinition, setMaxPageSize, setName, setPageProviderChangedListener, setPageSize, setParameters, setProperties, setResultsCount, setSearchDocumentModel, setSelectedEntries, setSortable, setSortInfo, setSortInfo, setSortInfos
public static final String CORE_SESSION_PROPERTY
public static final String CHECK_QUERY_CACHE_PROPERTY
public static final String USE_UNRESTRICTED_SESSION_PROPERTY
public static final String LANGUAGE_PROPERTY
public List<Map<String,Serializable>> getCurrentPage()
AbstractPageProvider
Custom implementation can be added here, based on the page provider
properties, parameters and WhereClauseDefinition
on the
PageProviderDefinition
, as well as search document, sort
information, etc...
Implementation of this method usually consists in setting a non-null
value to a field caching current items, and nullifying this field by
overriding AbstractPageProvider.pageChanged()
and AbstractPageProvider.refresh()
.
Fields AbstractPageProvider.errorMessage
and AbstractPageProvider.error
can also be filled to
provide accurate feedback in case an error occurs during the search.
When items are retrieved, a call to AbstractPageProvider.setResultsCount(long)
should be made to ensure proper pagination as implemented in this
abstract class. The implementation in
CoreQueryAndFetchPageProvider
is a good example when the total
results count is known.
If for performance reasons, for instance, the number of results cannot
be known, a fall-back strategy can be applied to provide the "next"
button but not the "last" one, by calling
AbstractPageProvider.getCurrentHigherNonEmptyPageIndex()
and
AbstractPageProvider.setCurrentHigherNonEmptyPageIndex(int)
. In this case,
CoreQueryDocumentPageProvider
is a good example.
getCurrentPage
in interface PageProvider<Map<String,Serializable>>
getCurrentPage
in class AbstractPageProvider<Map<String,Serializable>>
public PageSelections<Map<String,Serializable>> getCurrentSelectPage()
PageProvider
PageSelection
item.
By default, no entry is selected, unless
PageProvider.setSelectedEntries(List)
has been called before.
getCurrentSelectPage
in interface PageProvider<Map<String,Serializable>>
getCurrentSelectPage
in class AbstractPageProvider<Map<String,Serializable>>
public String getCurrentQuery()
public void refresh()
AbstractPageProvider
When overriding it, call super.refresh()
as last statement to
make sure that the PageProviderChangedListener
is called with
the up-to-date @{code PageProvider} state.
refresh
in interface PageProvider<Map<String,Serializable>>
refresh
in class AbstractPageProvider<Map<String,Serializable>>
Copyright © 2014 Nuxeo SA. All rights reserved.