public PaginablePageProvider(PageProvider<T> pageProvider) { super(pageProvider.getCurrentPage()); this.pageProvider = pageProvider; }
@Override public long getResultsCount() { return pageProvider.getResultsCount(); }
@SuppressWarnings("rawtypes") @Override public void resetPageProviderAggregates() { if (pageProvider != null && pageProvider.hasAggregateSupport()) { Map<String, ? extends Aggregate> aggs = pageProvider.getAggregates(); for (Aggregate agg : aggs.values()) { agg.resetSelection(); } } }
@Override public Long getCurrentPageSize() { // take actual value on page provider first in case it's reached its // max page size if (pageProvider != null) { long pageSize = pageProvider.getPageSize(); long maxPageSize = pageProvider.getMaxPageSize(); if (pageSize > 0 && maxPageSize > 0 && maxPageSize < pageSize) { return Long.valueOf(maxPageSize); } return Long.valueOf(pageSize); } if (currentPageSize != null && currentPageSize.longValue() >= 0) { return currentPageSize; } return null; }
for (DashBoardItem dashBoardItem : pageProvider.getCurrentPage()) { dashBoardItem.setLocale(locale); Map<String, Object> obj = dashBoardItem.asMap(); json.put("totalSize", Long.valueOf(pageProvider.getResultsCount())); json.put("pageIndex", Long.valueOf(pageProvider.getCurrentPageIndex())); json.put("pageSize", Long.valueOf(pageProvider.getPageSize())); json.put("pageCount", Long.valueOf(pageProvider.getNumberOfPages()));
@Override @SuppressWarnings("unchecked") public PartialList<Comment> getComments(CoreSession session, String documentId, Long pageSize, Long currentPageIndex, boolean sortAscending) throws CommentSecurityException { DocumentRef docRef = new IdRef(documentId); PageProviderService ppService = Framework.getService(PageProviderService.class); NuxeoPrincipal principal = session.getPrincipal(); return CoreInstance.doPrivileged(session, s -> { if (s.exists(docRef)) { DocumentRef ancestorRef = getAncestorRef(s, s.getDocument(docRef)); if (s.exists(ancestorRef) && !s.hasPermission(principal, ancestorRef, SecurityConstants.READ)) { throw new CommentSecurityException("The user " + principal.getName() + " does not have access to the comments of document " + documentId); } } Map<String, Serializable> props = Collections.singletonMap(CORE_SESSION_PROPERTY, (Serializable) s); PageProvider<DocumentModel> pageProvider = (PageProvider<DocumentModel>) ppService.getPageProvider( GET_COMMENTS_FOR_DOC_PAGEPROVIDER_NAME, singletonList(new SortInfo(COMMENT_CREATION_DATE, sortAscending)), pageSize, currentPageIndex, props, documentId); List<DocumentModel> commentList = pageProvider.getCurrentPage(); return commentList.stream() .map(Comments::newComment) .collect(collectingAndThen(toList(), list -> new PartialList<>(list, pageProvider.getResultsCount()))); }); }
@SuppressWarnings("unchecked") @Override public List<DocumentModel> searchRouteModels(CoreSession session, String searchString) { List<DocumentModel> allRouteModels = new ArrayList<>(); PageProviderService pageProviderService = Framework.getService(PageProviderService.class); Map<String, Serializable> props = new HashMap<>(); props.put(MAX_RESULTS_PROPERTY, PAGE_SIZE_RESULTS_KEY); props.put(CORE_SESSION_PROPERTY, (Serializable) session); PageProvider<DocumentModel> pageProvider; if (StringUtils.isEmpty(searchString)) { pageProvider = (PageProvider<DocumentModel>) pageProviderService.getPageProvider( DOC_ROUTING_SEARCH_ALL_ROUTE_MODELS_PROVIDER_NAME, null, null, 0L, props); } else { pageProvider = (PageProvider<DocumentModel>) pageProviderService.getPageProvider( DOC_ROUTING_SEARCH_ROUTE_MODELS_WITH_TITLE_PROVIDER_NAME, null, null, 0L, props, searchString + '%'); } allRouteModels.addAll(pageProvider.getCurrentPage()); while (pageProvider.isNextPageAvailable()) { pageProvider.nextPage(); allRouteModels.addAll(pageProvider.getCurrentPage()); } return allRouteModels; }
@Override public ContentViewState saveContentView(ContentView contentView) { if (contentView == null) { return null; } ContentViewState state = new ContentViewStateImpl(); state.setContentViewName(contentView.getName()); state.setPageSize(contentView.getCurrentPageSize()); // provider info PageProvider<?> pp = contentView.getCurrentPageProvider(); if (pp != null) { state.setPageProviderName(pp.getName()); state.setSearchDocumentModel(pp.getSearchDocumentModel()); state.setCurrentPage(new Long(pp.getCurrentPageIndex())); state.setQueryParameters(pp.getParameters()); state.setSortInfos(pp.getSortInfos()); } else { // take at least info available on content view state.setSearchDocumentModel(contentView.getSearchDocumentModel()); state.setQueryParameters(contentView.getQueryParameters()); } // rendering info state.setResultLayout(contentView.getCurrentResultLayout()); state.setResultColumns(contentView.getCurrentResultLayoutColumns()); state.setExecuted(contentView.isExecuted()); return state; }
String aggregatesClause = ""; Properties namedParameters = (Properties) provider.getSearchDocumentModel() .getContextData(NAMED_PARAMETERS); Map<String, Aggregate<? extends Bucket>> aggregates = provider.getAggregates(); for (Aggregate<? extends Bucket> aggregate : aggregates.values()) { if (namedParameters.containsKey(aggregate.getId())) {
@Override public boolean hasAggregateSupport() { return pageProvider.hasAggregateSupport(); }
@Override public Map<String, Aggregate<? extends Bucket>> getAggregates() { return pageProvider.getAggregates(); }
@Override public long getCurrentPageIndex() { return pageProvider.getCurrentPageIndex(); }
@Override public long getPageSize() { return pageProvider.getPageSize(); }
STARTUP_PAGE_PROVIDER_NAME, null, null, null, properties); List<DocumentModel> currentPage = pageProvider.getCurrentPage(); if (currentPage != null && pageProvider.getResultsCount() == 1) {
public static String buildQueryStringWithAggregates(PageProvider provider) { return buildQueryStringWithPageProvider(provider, provider.hasAggregateSupport()); }
@SuppressWarnings("unchecked") protected DocumentModel getExternalCommentModel(CoreSession session, String entityId) { PageProviderService ppService = Framework.getService(PageProviderService.class); Map<String, Serializable> props = singletonMap(CORE_SESSION_PROPERTY, (Serializable) session); List<DocumentModel> results = ((PageProvider<DocumentModel>) ppService.getPageProvider( GET_COMMENT_PAGEPROVIDER_NAME, null, 1L, 0L, props, entityId)).getCurrentPage(); if (results.isEmpty()) { return null; } return results.get(0); }
@Override public long totalSize() { return pageProvider.getResultsCount(); } }
public List<DocumentModel> getDocumentSuggestions(Object input) throws ClientException { PageProviderService pageProviderService = Framework.getLocalService(PageProviderService.class); Map<String, Serializable> props = new HashMap<String, Serializable>(); props.put(MAX_RESULTS_PROPERTY, PAGE_SIZE_RESULTS_KEY); props.put(CORE_SESSION_PROPERTY, (Serializable) documentManager); @SuppressWarnings("unchecked") PageProvider<DocumentModel> pageProvider = (PageProvider<DocumentModel>) pageProviderService.getPageProvider( CURRENT_DOC_ROUTING_SEARCH_ATTACHED_DOC, null, null, 0L, props, String.format("%s%%", input)); return pageProvider.getCurrentPage(); }
@SuppressWarnings("unchecked") protected DocumentModel getAnnotationModel(CoreSession session, String entityId) { PageProviderService ppService = Framework.getService(PageProviderService.class); Map<String, Serializable> props = singletonMap(CORE_SESSION_PROPERTY, (Serializable) session); List<DocumentModel> results = ((PageProvider<DocumentModel>) ppService.getPageProvider( GET_ANNOTATION_PAGEPROVIDER_NAME, null, 1L, 0L, props, entityId)).getCurrentPage(); if (results.isEmpty()) { return null; } return results.get(0); }
@SuppressWarnings("unchecked") public List<DocumentModel> getUserDomains() { if (userDomains == null) { PageProviderService pageProviderService = Framework.getService(PageProviderService.class); Map<String, Serializable> properties = new HashMap<>(); properties.put("coreSession", (Serializable) documentManager); userDomains = ((PageProvider<DocumentModel>) pageProviderService.getPageProvider( BREADCRUMB_USER_DOMAINS_PROVIDER, null, null, null, properties)).getCurrentPage(); } return userDomains; }