/* See LICENSE for licensing and NOTICE for copyright. */
package org.ldaptive;
import org.ldaptive.control.RequestControl;
import org.ldaptive.handler.IntermediateResponseHandler;
import org.ldaptive.referral.ReferralHandler;
/**
* Contains the data common to all request objects.
*
* @author Middleware Services
*/
public abstract class AbstractRequest implements Request
{
/** Request controls. */
private RequestControl[] controls;
/** Referral handler. */
private ReferralHandler referralHandler;
/** Intermediate response handlers. */
private IntermediateResponseHandler[] intermediateResponseHandlers;
@Override
public RequestControl[] getControls()
{
return controls;
}
/**
* Sets the controls for this request.
*
* @param c controls to set
*/
public void setControls(final RequestControl... c)
{
controls = c;
}
@Override
public ReferralHandler getReferralHandler()
{
return referralHandler;
}
/**
* Sets the referral handler.
*
* @param handler referral handler
*/
@SuppressWarnings("unchecked")
public void setReferralHandler(final ReferralHandler handler)
{
if (handler != null) {
handler.initializeRequest(this);
}
referralHandler = handler;
}
@Override
public IntermediateResponseHandler[] getIntermediateResponseHandlers()
{
return intermediateResponseHandlers;
}
/**
* Sets the intermediate response handlers.
*
* @param handlers intermediate response handlers
*/
public void setIntermediateResponseHandlers(final IntermediateResponseHandler... handlers)
{
intermediateResponseHandlers = handlers;
}
}