Example usage for javax.naming.directory SearchControls getCountLimit

List of usage examples for javax.naming.directory SearchControls getCountLimit

Introduction

In this page you can find the example usage for javax.naming.directory SearchControls getCountLimit.

Prototype

public long getCountLimit() 

Source Link

Document

Retrieves the maximum number of entries that will be returned as a result of the search.

Usage

From source file:org.eurekastreams.server.persistence.mappers.ldap.PagedLdapSearchStrategy.java

/**
 * {@inheritDoc}/*  w ww.j a  va2  s  . c  o m*/
 * 
 * This method provides the implementation for searching ldap with a {@link PagedResultsDirContextProcessor}.
 */
@Override
public void searchLdap(final LdapTemplate inLdapTemplate, final String inEncodedFilter,
        final SearchControls inSearchControls, final CollectingNameClassPairCallbackHandler inHandler) {
    PagedResultsDirContextProcessor pager = new PagedResultsDirContextProcessor(resultsPerPage);

    if (logger.isTraceEnabled()) {
        logger.trace("Beginning paged ldap search with " + resultsPerPage + " results per page.  Filter: "
                + inEncodedFilter);
    }

    do {
        // Although the SearchControls object contains a limit on the max results for the
        // search, the paging processor works over the entire result set so the loop is
        // cut short manually.
        inLdapTemplate.search("", inEncodedFilter, inSearchControls, inHandler, pager);

        pager = new PagedResultsDirContextProcessor(resultsPerPage, pager.getCookie());
    } while (pager.getCookie() != null && pager.getCookie().getCookie() != null
            && inHandler.getList().size() < inSearchControls.getCountLimit());

    if (logger.isTraceEnabled()) {
        logger.trace("Paged ldap search complete with " + inHandler.getList().size() + " results retrieved");
    }
}