Package org.springframework.ldap.control
Class AbstractRequestControlDirContextProcessor
java.lang.Object
org.springframework.ldap.control.AbstractRequestControlDirContextProcessor
- All Implemented Interfaces:
DirContextProcessor
- Direct Known Subclasses:
AbstractFallbackRequestAndResponseControlDirContextProcessor,PagedResultsRequestControl
public abstract class AbstractRequestControlDirContextProcessor
extends Object
implements DirContextProcessor
Abstract superclass with responsibility to apply a single RequestControl on an
LdapContext, preserving any existing controls. Subclasses should implement
DirContextProcessor.postProcess(DirContext) and template method
createRequestControl().-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract ControlCreate an instance of the appropriate RequestControl.booleanIf there already exists a request control of the same class as the one created bycreateRequestControl()in the context, the new control can either replace the existing one (default behavior) or be added.voidpreProcess(DirContext ctx) Get the existing RequestControls from the LdapContext, callcreateRequestControl()to get a new instance, build a new array of Controls and set it on the LdapContext.voidsetReplaceSameControlEnabled(boolean replaceSameControlEnabled) If there already exists a request control of the same class as the one created bycreateRequestControl()in the context, the new control can either replace the existing one (default behavior) or be added.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.ldap.core.DirContextProcessor
postProcess
-
Field Details
-
log
protected org.slf4j.Logger log
-
-
Constructor Details
-
AbstractRequestControlDirContextProcessor
public AbstractRequestControlDirContextProcessor()
-
-
Method Details
-
isReplaceSameControlEnabled
public boolean isReplaceSameControlEnabled()If there already exists a request control of the same class as the one created bycreateRequestControl()in the context, the new control can either replace the existing one (default behavior) or be added.- Returns:
- true if an already existing control will be replaced
-
setReplaceSameControlEnabled
public void setReplaceSameControlEnabled(boolean replaceSameControlEnabled) If there already exists a request control of the same class as the one created bycreateRequestControl()in the context, the new control can either replace the existing one (default behavior) or be added.- Parameters:
replaceSameControlEnabled-trueif an already existing control should be replaced
-
preProcess
Get the existing RequestControls from the LdapContext, callcreateRequestControl()to get a new instance, build a new array of Controls and set it on the LdapContext.The
Controlfeature is specific for LDAP v3 and thus applies only toLdapContext. However, the generic DirContextProcessor mechanism used for callingpreProcessandpostProcessuses DirContext, since it also works for LDAP v2. This is the reason that DirContext has to be cast to a LdapContext.- Specified by:
preProcessin interfaceDirContextProcessor- Parameters:
ctx- an LdapContext instance.- Throws:
NamingExceptionIllegalArgumentException- if the supplied DirContext is not an LdapContext.
-
createRequestControl
Create an instance of the appropriate RequestControl.- Returns:
- the new instance.
-