public class ESAuditPageProvider extends AbstractPageProvider<LogEntry> implements PageProvider<LogEntry>
Modifier and Type | Field and Description |
---|---|
static String |
CORE_SESSION_PROPERTY |
protected static String |
emptyQuery |
protected Long |
maxResultWindow |
protected org.elasticsearch.action.search.SearchRequest |
searchRequest |
static String |
UICOMMENTS_PROPERTY |
currentEntryIndex, currentHigherNonEmptyPageIndex, currentSelectPage, definition, error, errorMessage, highlights, log, maxPageSize, name, offset, PAGEPROVIDER_TRACK_PROPERTY_NAME, pageProviderChangedListener, pageSize, pageSizeOptions, parameters, properties, quickFilters, resultsCount, searchDocumentModel, selectedEntries, SKIPPED_SCHEMAS_FOR_SEARCHFIELD, sortable, sortInfos, tracking
DEFAULT_MAX_PAGE_SIZE, DEFAULT_MAX_PAGE_SIZE_RUNTIME_PROP, HIGHLIGHT_CTX_DATA, PAGE_LIMIT_UNKNOWN, UNKNOWN_SIZE, UNKNOWN_SIZE_AFTER_QUERY
Constructor and Description |
---|
ESAuditPageProvider() |
Modifier and Type | Method and Description |
---|---|
protected boolean |
allowSimplePattern() |
protected void |
buildAuditQuery(boolean includeSort) |
protected CoreSession |
getCoreSession() |
List<LogEntry> |
getCurrentPage()
Returns the list of current page items.
|
protected ESAuditBackend |
getESBackend() |
protected String |
getFixedPart() |
long |
getMaxResultWindow()
Returns the max result window where the PP can navigate without raising Elasticsearch
QueryPhaseExecutionException.
|
long |
getPageLimit()
Returns the page limit.
|
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. |
List<SortInfo> |
getSortInfos()
Returns the complete list of sorting info for this provider
|
boolean |
isLastPageAvailable()
Returns a boolean expressing if the last page can be displayed.
|
boolean |
isNextPageAvailable()
Returns a boolean expressing if there are further pages.
|
protected boolean |
isNonNullParam(Object[] val) |
protected void |
preprocessCommentsIfNeeded(List<LogEntry> entries) |
void |
refresh()
Refresh hook, to override for custom behavior
|
void |
setMaxResultWindow(long maxResultWindow)
Set the max result window where the PP can navigate, for testing purpose.
|
String |
toString() |
addQuickFilter, addSortInfo, fireSearchEvent, firstPage, getAggregateDefinitions, getAggregates, getAvailableQuickFilters, getBooleanProperty, getCurrentEntry, getCurrentHigherNonEmptyPageIndex, getCurrentPageIndex, getCurrentPageOffset, getCurrentPageSize, getCurrentPageStatus, getCurrentSelectPage, getDefaultMaxPageSize, getDefinition, getError, getErrorMessage, getHighlights, getMaxNumberOfEmptyPages, getMaxPageSize, getMinMaxPageSize, getName, getNumberOfPages, getPageSize, getPageSizeOptions, getParameters, getParametersChanged, getProperties, getQuickFilters, getResultsCountLimit, getSearchDocumentModel, getSortInfo, getSortInfoIndex, hasAggregateSupport, hasChangedParameters, hasError, incorporateAggregates, isNextEntryAvailable, isPreviousEntryAvailable, isPreviousPageAvailable, isSortable, isTrackingEnabled, lastPage, nextEntry, nextPage, notifyPageChanged, notifyRefresh, pageChanged, previousEntry, previousPage, searchDocumentModelChanged, setCurrentEntry, setCurrentEntryIndex, setCurrentHigherNonEmptyPageIndex, setCurrentPage, setCurrentPageIndex, setCurrentPageOffset, setDefinition, setHighlights, setMaxPageSize, setName, setPageProviderChangedListener, setPageSize, setPageSizeOptions, setParameters, setProperties, setQuickFilters, setResultsCount, setSearchDocumentModel, setSelectedEntries, setSortable, setSortInfo, setSortInfo, setSortInfos, sortInfoChanged
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
addQuickFilter, addSortInfo, firstPage, getAggregateDefinitions, getAggregates, getAvailableQuickFilters, getCurrentEntry, getCurrentPageIndex, getCurrentPageOffset, getCurrentPageSize, getCurrentPageStatus, getCurrentSelectPage, getDefinition, getError, getErrorMessage, getHighlights, getMaxPageSize, getName, getNumberOfPages, getPageSize, getPageSizeOptions, getParameters, getProperties, getQuickFilters, getResultsCountLimit, getSearchDocumentModel, getSortInfo, getSortInfoIndex, hasAggregateSupport, hasChangedParameters, hasError, isNextEntryAvailable, isPreviousEntryAvailable, isPreviousPageAvailable, isSortable, lastPage, nextEntry, nextPage, previousEntry, previousPage, setCurrentEntry, setCurrentEntryIndex, setCurrentPage, setCurrentPageIndex, setCurrentPageOffset, setDefinition, setHighlights, setMaxPageSize, setName, setPageProviderChangedListener, setPageSize, setPageSizeOptions, setParameters, setProperties, setQuickFilters, setResultsCount, setSearchDocumentModel, setSelectedEntries, setSortable, setSortInfo, setSortInfo, setSortInfos
protected org.elasticsearch.action.search.SearchRequest searchRequest
public static final String CORE_SESSION_PROPERTY
public static final String UICOMMENTS_PROPERTY
protected static String emptyQuery
protected Long maxResultWindow
public ESAuditPageProvider()
protected CoreSession getCoreSession()
protected void preprocessCommentsIfNeeded(List<LogEntry> entries)
public List<LogEntry> 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<LogEntry>
getCurrentPage
in class AbstractPageProvider<LogEntry>
protected boolean isNonNullParam(Object[] val)
protected String getFixedPart()
protected boolean allowSimplePattern()
protected ESAuditBackend getESBackend()
protected void buildAuditQuery(boolean includeSort)
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<LogEntry>
refresh
in class AbstractPageProvider<LogEntry>
public long getResultsCount()
PageProvider
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.getResultsCount
in interface PageProvider<LogEntry>
getResultsCount
in class AbstractPageProvider<LogEntry>
public List<SortInfo> getSortInfos()
PageProvider
getSortInfos
in interface PageProvider<LogEntry>
getSortInfos
in class AbstractPageProvider<LogEntry>
public boolean isLastPageAvailable()
PageProvider
isLastPageAvailable
in interface PageProvider<LogEntry>
isLastPageAvailable
in class AbstractPageProvider<LogEntry>
public boolean isNextPageAvailable()
PageProvider
isNextPageAvailable
in interface PageProvider<LogEntry>
isNextPageAvailable
in class AbstractPageProvider<LogEntry>
public long getPageLimit()
AbstractPageProvider
getPageLimit
in interface PageProvider<LogEntry>
getPageLimit
in class AbstractPageProvider<LogEntry>
public long getMaxResultWindow()
from + size
must be less than or equal to this value.public void setMaxResultWindow(long maxResultWindow)
Copyright © 2018 Nuxeo. All rights reserved.