public PagingRequest getPagingRequest() { PagingRequest pr = new PagingRequest(this.pagingRequest.getSkipCount(), this.pagingRequest.getMaxItems(), this.pagingRequest.getQueryExecutionId()); pr.setRequestTotalCountMax(this.pagingRequest.getRequestTotalCountMax()); return pr; }
/** * Construct a page request * * @param skipCount the number of items to skip before the first page * @param maxItems the maximum number of items per page * @param queryExecutionId a query execution ID associated with ealier paged requests */ public PagingRequest(int skipCount, int maxItems, String queryExecutionId) { setSkipCount(skipCount); setMaxItems(maxItems); this.queryExecutionId = queryExecutionId; }
public void setQueryExecutionId(String queryExecutionId) { super.setQueryExecutionId(queryExecutionId); } }
/** * Helper constructor to transform a paging request into the Canned Query form. * * @param pagingRequest the paging details */ public CannedQueryPageDetails(PagingRequest pagingRequest) { this(pagingRequest.getSkipCount(), pagingRequest.getMaxItems()); }
public ScriptPagingDetails(PagingRequest paging) { super(paging.getSkipCount(), paging.getMaxItems(), paging.getQueryExecutionId()); setRequestTotalCountMax(paging.getRequestTotalCountMax()); }
PagingRequest paging = new PagingRequest( startIndex, pageSize, queryId ); paging.setRequestTotalCountMax( Math.max(10*pageSize,startIndex+2*pageSize) );
/** * Construct all the parameters for executing a named query, using values from the * {@link PagingRequest}. * * @param parameterBean the values that the query will be based on or <tt>null</tt> * if not relevant to the query * @param sortDetails the type of sorting to be applied or <tt>null</tt> for none * @param pagingRequest the type of paging to be applied or <tt>null</tt> for none */ public CannedQueryParameters( Object parameterBean, CannedQuerySortDetails sortDetails, PagingRequest pagingRequest) { this ( parameterBean, pagingRequest == null ? null : new CannedQueryPageDetails(pagingRequest), sortDetails, pagingRequest == null ? 0 : pagingRequest.getRequestTotalCountMax(), pagingRequest == null ? null : pagingRequest.getQueryExecutionId()); }
@Override public List<Long> getNodeLinksIds(NodeRef nodeRef) { /* Validate input */ PropertyCheck.mandatory(this, "nodeRef", nodeRef); /* Get all links of the given nodeRef */ PagingRequest pagingRequest = new PagingRequest(0, 100000); List<Long> nodeLinks = new ArrayList<Long>(); Pair<Long, QName> nameQName = qnameDAO.getQName(ContentModel.PROP_LINK_DESTINATION); if (nameQName != null) { // Execute the canned query if there are links in the database GetDoclinkNodesCannedQueryParams parameterBean = new GetDoclinkNodesCannedQueryParams(nodeRef.toString(), nameQName.getFirst(), pagingRequest.getMaxItems()); CannedQueryParameters params = new CannedQueryParameters(parameterBean, null, null, pagingRequest.getRequestTotalCountMax(), pagingRequest.getQueryExecutionId()); CannedQuery<Long> query = new GetDoclinkNodesCannedQuery(cannedQueryDAO, params); CannedQueryResults<Long> results = query.execute(); for (Long nodeId : results.getPage()) { nodeLinks.add(nodeId); } } return nodeLinks; }
private CannedQueryResults<NodeRef> listImpl(NodeRef contextNodeRef, String pattern, Set<QName> assocTypeQNames, Set<QName> searchTypeQNames, Set<QName> ignoreAspectQNames, List<Pair<QName, Boolean>> sortProps, List<FilterProp> filterProps, PagingRequest pagingRequest) { Long start = (logger.isDebugEnabled() ? System.currentTimeMillis() : null); // get canned query GetChildrenCannedQueryFactory getChildrenCannedQueryFactory = (GetChildrenCannedQueryFactory)cannedQueryRegistry.getNamedObject(CANNED_QUERY_FILEFOLDER_LIST); GetChildrenCannedQuery cq = (GetChildrenCannedQuery)getChildrenCannedQueryFactory.getCannedQuery(contextNodeRef, pattern, assocTypeQNames, searchTypeQNames, ignoreAspectQNames, filterProps, sortProps, pagingRequest); // execute canned query CannedQueryResults<NodeRef> results = cq.execute(); if (start != null) { int cnt = results.getPagedResultCount(); int skipCount = pagingRequest.getSkipCount(); int maxItems = pagingRequest.getMaxItems(); boolean hasMoreItems = results.hasMoreItems(); Pair<Integer, Integer> totalCount = (pagingRequest.getRequestTotalCountMax() > 0 ? results.getTotalResultCount() : null); int pageNum = (skipCount / maxItems) + 1; logger.debug("List: "+cnt+" items in "+(System.currentTimeMillis()-start)+" msecs [pageNum="+pageNum+",skip="+skipCount+",max="+maxItems+",hasMorePages="+hasMoreItems+",totalCount="+totalCount+",parentNodeRef="+contextNodeRef+"]"); } return results; }
private CannedQueryResults<NodeRef> listImpl(NodeRef contextNodeRef, Set<QName> searchTypeQNames) { return listImpl(contextNodeRef, null, searchTypeQNames, null, null, new PagingRequest(defaultListMaxResults, null)); }
@Override public boolean hasMoreItems() { return finalLuceneResults.length() > pagingReq.getMaxItems(); } };
@Override public Pair<Integer, Integer> getTotalResultCount() { int skipCount = 0; int itemsRemainingAfterThisPage = 0; try { skipCount = finalLuceneResults.getStart(); } catch(UnsupportedOperationException e) { skipCount = paging.getSkipCount(); } try { itemsRemainingAfterThisPage = finalLuceneResults.length(); } catch(UnsupportedOperationException e) {} final int totalItemsInUnpagedResultSet = skipCount + itemsRemainingAfterThisPage; return new Pair<Integer, Integer>(totalItemsInUnpagedResultSet, totalItemsInUnpagedResultSet); }
/** * Construct a page request * * @param maxItems the maximum number of items per page * @param queryExecutionId a query execution ID associated with ealier paged requests */ public PagingRequest(int maxItems, String queryExecutionId) { setMaxItems(maxItems); this.queryExecutionId = queryExecutionId; }
@Override public String getQueryExecutionId() { return pagingRequest.getQueryExecutionId(); }
public void setSkipCount(int skipCount) { super.setSkipCount(skipCount); }
public ScriptPagingDetails(PagingRequest paging) { super(paging.getSkipCount(), paging.getMaxItems(), paging.getQueryExecutionId()); setRequestTotalCountMax(paging.getRequestTotalCountMax()); }
/** * Helper constructor to transform a paging request into the Canned Query form. * * @param pagingRequest the paging details */ public CannedQueryPageDetails(PagingRequest pagingRequest) { this(pagingRequest.getSkipCount(), pagingRequest.getMaxItems()); }
PagingRequest paging = new PagingRequest( startIndex, pageSize, queryId ); paging.setRequestTotalCountMax( Math.max(10*pageSize,startIndex+2*pageSize) );
/** * Construct all the parameters for executing a named query, using values from the * {@link PagingRequest}. * * @param parameterBean the values that the query will be based on or <tt>null</tt> * if not relevant to the query * @param sortDetails the type of sorting to be applied or <tt>null</tt> for none * @param pageRequest the type of paging to be applied or <tt>null</tt> for none */ public CannedQueryParameters( Object parameterBean, CannedQuerySortDetails sortDetails, PagingRequest pagingRequest) { this ( parameterBean, pagingRequest == null ? null : new CannedQueryPageDetails(pagingRequest), sortDetails, pagingRequest == null ? 0 : pagingRequest.getRequestTotalCountMax(), pagingRequest == null ? null : pagingRequest.getQueryExecutionId()); }
private CannedQueryResults<NodeRef> listImpl(NodeRef contextNodeRef, String pattern, Set<QName> assocTypeQNames, Set<QName> searchTypeQNames, Set<QName> ignoreAspectQNames, List<Pair<QName, Boolean>> sortProps, List<FilterProp> filterProps, PagingRequest pagingRequest) { Long start = (logger.isDebugEnabled() ? System.currentTimeMillis() : null); // get canned query GetChildrenCannedQueryFactory getChildrenCannedQueryFactory = (GetChildrenCannedQueryFactory)cannedQueryRegistry.getNamedObject(CANNED_QUERY_FILEFOLDER_LIST); GetChildrenCannedQuery cq = (GetChildrenCannedQuery)getChildrenCannedQueryFactory.getCannedQuery(contextNodeRef, pattern, assocTypeQNames, searchTypeQNames, ignoreAspectQNames, filterProps, sortProps, pagingRequest); // execute canned query CannedQueryResults<NodeRef> results = cq.execute(); if (start != null) { int cnt = results.getPagedResultCount(); int skipCount = pagingRequest.getSkipCount(); int maxItems = pagingRequest.getMaxItems(); boolean hasMoreItems = results.hasMoreItems(); Pair<Integer, Integer> totalCount = (pagingRequest.getRequestTotalCountMax() > 0 ? results.getTotalResultCount() : null); int pageNum = (skipCount / maxItems) + 1; logger.debug("List: "+cnt+" items in "+(System.currentTimeMillis()-start)+" msecs [pageNum="+pageNum+",skip="+skipCount+",max="+maxItems+",hasMorePages="+hasMoreItems+",totalCount="+totalCount+",parentNodeRef="+contextNodeRef+"]"); } return results; }