@Override public <V extends IdentityType> int countQueryResults(IdentityContext context, IdentityQuery<V> identityQuery) { int limit = identityQuery.getLimit(); int offset = identityQuery.getOffset(); identityQuery.setLimit(0); identityQuery.setOffset(0); int resultCount = identityQuery.getResultList().size(); identityQuery.setLimit(limit); identityQuery.setOffset(offset); return resultCount; }
@Override public <V extends IdentityType> int countQueryResults(IdentityContext context, IdentityQuery<V> identityQuery) { int limit = identityQuery.getLimit(); int offset = identityQuery.getOffset(); identityQuery.setLimit(0); identityQuery.setOffset(0); int resultCount = identityQuery.getResultList().size(); identityQuery.setLimit(limit); identityQuery.setOffset(offset); return resultCount; }
@Override public List<SearchResult> execute(LdapContext context) throws NamingException { try { byte[] cookie = (byte[])identityQuery.getPaginationContext(); PagedResultsControl pagedControls = new PagedResultsControl(identityQuery.getLimit(), cookie, Control.CRITICAL); context.setRequestControls(new Control[] { pagedControls }); NamingEnumeration<SearchResult> search = context.search(baseDN, filter, cons); while (search.hasMoreElements()) { result.add(search.nextElement()); } search.close(); Control[] responseControls = context.getResponseControls(); if (responseControls != null) { for (Control respControl : responseControls) { if (respControl instanceof PagedResultsResponseControl) { PagedResultsResponseControl prrc = (PagedResultsResponseControl)respControl; cookie = prrc.getCookie(); identityQuery.setPaginationContext(cookie); } } } return result; } catch (IOException ioe) { LDAP_STORE_LOGGER.errorf(ioe, "Could not query server with paginated query using DN [%s], filter [%s]", baseDN, filter); throw new NamingException(ioe.getMessage()); } } });
@Override public List<SearchResult> execute(LdapContext context) throws NamingException { try { byte[] cookie = (byte[])identityQuery.getPaginationContext(); PagedResultsControl pagedControls = new PagedResultsControl(identityQuery.getLimit(), cookie, Control.CRITICAL); context.setRequestControls(new Control[] { pagedControls }); NamingEnumeration<SearchResult> search = context.search(baseDN, filter, cons); while (search.hasMoreElements()) { result.add(search.nextElement()); } search.close(); Control[] responseControls = context.getResponseControls(); if (responseControls != null) { for (Control respControl : responseControls) { if (respControl instanceof PagedResultsResponseControl) { PagedResultsResponseControl prrc = (PagedResultsResponseControl)respControl; cookie = prrc.getCookie(); identityQuery.setPaginationContext(cookie); } } } return result; } catch (IOException ioe) { LDAP_STORE_LOGGER.errorf(ioe, "Could not query server with paginated query using DN [%s], filter [%s]", baseDN, filter); throw new NamingException(ioe.getMessage()); } } });
List<SearchResult> search; if (getConfig().isPagination() && identityQuery.getLimit() > 0) { search = this.operationManager.searchPaginated(baseDN, filter.toString(), ldapEntryConfig, identityQuery); } else {
List<SearchResult> search; if (getConfig().isPagination() && identityQuery.getLimit() > 0) { search = this.operationManager.searchPaginated(baseDN, filter.toString(), ldapEntryConfig, identityQuery); } else {