public void doQuery(String cql, int maxItems) { Session cmisSession = getCmisSession(); OperationContext oc = new OperationContextImpl(); oc.setMaxItemsPerPage(maxItems); ItemIterable<QueryResult> results = cmisSession.query(cql, false, oc); for (QueryResult result : results) { for (PropertyData<?> prop : result.getProperties()) { System.out.println(prop.getQueryName() + ": " + prop.getFirstValue()); } System.out.println("--------------------------------------"); } System.out.println("--------------------------------------"); System.out.println("Total number: " + results.getTotalNumItems()); System.out.println("Has more: " + results.getHasMoreItems()); System.out.println("--------------------------------------"); }
@Override public List<QueryResult> getPage(@NotNull CMISConnector connector) throws Exception { if (session != null && !lastPage) { OperationContext ctx = ChemistryCMISFacade.createOperationContext(filter, orderBy); ctx.setMaxItemsPerPage(pageSize); final ItemIterable<QueryResult> queryResults = session.query(query, allVersions, ctx); final ItemIterable<QueryResult> page = queryResults.skipTo(skipTo).getPage(); final List<QueryResult> results = Lists.newArrayList(page); if (!page.getHasMoreItems()) { lastPage = true; } skipTo += page.getPageNumItems(); return results; } lastPage = false; return Collections.emptyList(); }
@Override public int getTotalResults(@NotNull CMISConnector connector) throws Exception { long size = -1; long skipResultTo = pageSize * 100L; while (session != null && !lastPage) { OperationContext ctx = ChemistryCMISFacade.createOperationContext(filter, orderBy); final ItemIterable<QueryResult> queryResults = session.query(query, allVersions, ctx); final ItemIterable<QueryResult> page = queryResults.skipTo(skipResultTo).getPage(); if (!page.getHasMoreItems()) { lastPage = true; size = skipResultTo + page.getTotalNumItems(); } skipResultTo += skipResultTo; } lastPage = false; return (int) size; }
addResult(assertEquals(true, page1.getHasMoreItems(), null, f)); addResult(assertEquals(true, page2.getHasMoreItems(), null, f)); addResult(assertEquals(false, page3.getHasMoreItems(), null, f)); addResult(assertEquals(false, pageNotExisting.getHasMoreItems(), null, f));