Class PagedResultsDirContextProcessor

All Implemented Interfaces:
DirContextProcessor

public class PagedResultsDirContextProcessor extends AbstractFallbackRequestAndResponseControlDirContextProcessor
DirContextProcessor implementation for managing the paged results control. Note that due to the internal workings of LdapTemplate, the target connection is closed after each LDAP call. The PagedResults control require the same connection be used for each call, which means we need to make sure the target connection is never actually closed. There's basically two ways of making this happen: use the SingleContextSource implementation or make sure all calls happen within a single LDAP transaction (using ContextSourceTransactionManager).
  • Constructor Details

    • PagedResultsDirContextProcessor

      public PagedResultsDirContextProcessor(int pageSize)
      Constructs a new instance. This constructor should be used when performing the first paged search operation, when no other results have been retrieved.
      Parameters:
      pageSize - the page size.
    • PagedResultsDirContextProcessor

      public PagedResultsDirContextProcessor(int pageSize, PagedResultsCookie cookie)
      Constructs a new instance with the supplied page size and cookie. The cookie must be the exact same instance as received from a previous paged results search, or null if it is the first in an operation sequence.
      Parameters:
      pageSize - the page size.
      cookie - the cookie, as received from a previous search.
  • Method Details

    • getCookie

      public PagedResultsCookie getCookie()
      Get the cookie.
      Returns:
      the cookie. The cookie will always be set after at leas one query, however the actual cookie content can be null, indicating that there are no more results, in which case hasMore() will return false.
      See Also:
    • getPageSize

      public int getPageSize()
      Get the page size.
      Returns:
      the page size.
    • getResultSize

      public int getResultSize()
      Get the total estimated number of entries that matches the issued search. Note that this value is optional for the LDAP server to return, so it does not always contain any valid data.
      Returns:
      the estimated result size, if returned from the server.
    • createRequestControl

      public Control createRequestControl()
      Description copied from class: AbstractRequestControlDirContextProcessor
      Create an instance of the appropriate RequestControl.
      Specified by:
      createRequestControl in class AbstractRequestControlDirContextProcessor
      Returns:
      the new instance.
    • hasMore

      public boolean hasMore()
      Check whether there are more results to retrieved. When there are no more results to retrieve, this is indicated by a null cookie being returned from the server. When this happen, the internal status will set to false.
      Returns:
      true if there are more results to retrieve, false otherwise.
      Since:
      2.0
    • handleResponse

      protected void handleResponse(Object control)
      Specified by:
      handleResponse in class AbstractFallbackRequestAndResponseControlDirContextProcessor