org.springframework.ldap.pool

## Class MutableDelegatingLdapContext

- java.lang.Object
- - org.springframework.ldap.pool.DelegatingContext
  - - org.springframework.ldap.pool.DelegatingDirContext
    - - org.springframework.ldap.pool.DelegatingLdapContext
      - - org.springframework.ldap.pool.MutableDelegatingLdapContext

- All Implemented Interfaces:
    Context, DirContext, LdapContext, DirContextProxy

      public class MutableDelegatingLdapContext
      extends DelegatingLdapContext

  Used by `MutablePoolingContextSource` to wrap a `LdapContext`, delegating most methods to the underlying context. This class extends `DelegatingLdapContext`, allowing request controls to be set on the wrapped ldap context. This enables the Spring LDAP pooling to be used for scenarios such as paged results.
  Author:
    Ulrik Sandberg

- - ### Field Summary

    - ### Fields inherited from interface javax.naming.ldap.LdapContext

      `CONTROL_FACTORIES`

    - ### Fields inherited from interface javax.naming.directory.DirContext

      `ADD_ATTRIBUTE, REMOVE_ATTRIBUTE, REPLACE_ATTRIBUTE`

    - ### Fields inherited from interface javax.naming.Context

      `APPLET, AUTHORITATIVE, BATCHSIZE, DNS_URL, INITIAL_CONTEXT_FACTORY, LANGUAGE, OBJECT_FACTORIES, PROVIDER_URL, REFERRAL, SECURITY_AUTHENTICATION, SECURITY_CREDENTIALS, SECURITY_PRINCIPAL, SECURITY_PROTOCOL, STATE_FACTORIES, URL_PKG_PREFIXES`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MutableDelegatingLdapContext(org.apache.commons.pool.KeyedObjectPool keyedObjectPool, LdapContext delegateLdapContext, DirContextType dirContextType)` Create a new mutable delegating ldap context for the specified pool, context and context type.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `setRequestControls(Control[] requestControls)`

    - ### Methods inherited from class org.springframework.ldap.pool.DelegatingLdapContext

      `assertOpen, close, equals, extendedOperation, getConnectControls, getDelegateDirContext, getDelegateLdapContext, getInnermostDelegateLdapContext, getRequestControls, getResponseControls, hashCode, newInstance, reconnect, toString`

    - ### Methods inherited from class org.springframework.ldap.pool.DelegatingDirContext

      `bind, bind, createSubcontext, createSubcontext, getAttributes, getAttributes, getAttributes, getAttributes, getDelegateContext, getInnermostDelegateDirContext, getSchema, getSchema, getSchemaClassDefinition, getSchemaClassDefinition, getTargetContext, modifyAttributes, modifyAttributes, modifyAttributes, modifyAttributes, rebind, rebind, search, search, search, search, search, search, search, search`

    - ### Methods inherited from class org.springframework.ldap.pool.DelegatingContext

      `addToEnvironment, bind, bind, composeName, composeName, createSubcontext, createSubcontext, destroySubcontext, destroySubcontext, getEnvironment, getInnermostDelegateContext, getNameInNamespace, getNameParser, getNameParser, list, list, listBindings, listBindings, lookup, lookup, lookupLink, lookupLink, rebind, rebind, removeFromEnvironment, rename, rename, unbind, unbind`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface javax.naming.directory.DirContext

      `bind, bind, createSubcontext, createSubcontext, getAttributes, getAttributes, getAttributes, getAttributes, getSchema, getSchema, getSchemaClassDefinition, getSchemaClassDefinition, modifyAttributes, modifyAttributes, modifyAttributes, modifyAttributes, rebind, rebind, search, search, search, search, search, search, search, search`

    - ### Methods inherited from interface javax.naming.Context

      `addToEnvironment, bind, bind, composeName, composeName, createSubcontext, createSubcontext, destroySubcontext, destroySubcontext, getEnvironment, getNameInNamespace, getNameParser, getNameParser, list, list, listBindings, listBindings, lookup, lookup, lookupLink, lookupLink, rebind, rebind, removeFromEnvironment, rename, rename, unbind, unbind`

- - ### Constructor Detail

    - #### MutableDelegatingLdapContext

          public MutableDelegatingLdapContext(org.apache.commons.pool.KeyedObjectPool keyedObjectPool,
                                              LdapContext delegateLdapContext,
                                              DirContextType dirContextType)

      Create a new mutable delegating ldap context for the specified pool, context and context type.
      Parameters:
        `keyedObjectPool` - The pool the delegate context was checked out from.
        `delegateLdapContext` - The ldap context to delegate operations to.
        `dirContextType` - The type of context, used as a key for the pool.
      Throws:
        `IllegalArgumentException` - if any of the arguments are null

  - ### Method Detail

    - #### setRequestControls

          public void setRequestControls(Control[] requestControls)
                                  throws NamingException

      Specified by:
        `setRequestControls` in interface `LdapContext`
      Overrides:
        `setRequestControls` in class `DelegatingLdapContext`
      Throws:
        `NamingException`
      See Also:
        `LdapContext.setRequestControls(javax.naming.ldap.Control[])`