Spring LDAP

org.springframework.ldap.control
Class PagedResultsDirContextProcessor

java.lang.Object
  extended by org.springframework.ldap.control.AbstractRequestControlDirContextProcessor
      extended by org.springframework.ldap.control.AbstractFallbackRequestAndResponseControlDirContextProcessor
          extended by org.springframework.ldap.control.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).

Author:
Mattias Hellborg Arthursson, Ulrik Sandberg

Field Summary
 
Fields inherited from class org.springframework.ldap.control.AbstractFallbackRequestAndResponseControlDirContextProcessor
critical, defaultRequestControl, defaultResponseControl, fallbackRequestControl, fallbackResponseControl, requestControlClass, responseControlClass
 
Fields inherited from class org.springframework.ldap.control.AbstractRequestControlDirContextProcessor
log
 
Constructor Summary
PagedResultsDirContextProcessor(int pageSize)
          Constructs a new instance.
PagedResultsDirContextProcessor(int pageSize, PagedResultsCookie cookie)
          Constructs a new instance with the supplied page size and cookie.
 
Method Summary
 Control createRequestControl()
          Create an instance of the appropriate RequestControl.
 PagedResultsCookie getCookie()
          Get the cookie.
 int getPageSize()
          Get the page size.
 int getResultSize()
          Get the total estimated number of entries that matches the issued search.
protected  void handleResponse(Object control)
           
 
Methods inherited from class org.springframework.ldap.control.AbstractFallbackRequestAndResponseControlDirContextProcessor
createRequestControl, invokeMethod, loadControlClasses, postProcess, setRequestControlClass, setResponseControlClass
 
Methods inherited from class org.springframework.ldap.control.AbstractRequestControlDirContextProcessor
isReplaceSameControlEnabled, preProcess, setReplaceSameControlEnabled
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

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 Detail

getCookie

public PagedResultsCookie getCookie()
Get the cookie.

Returns:
the cookie.

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.

handleResponse

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

Spring LDAP