
org.ldaptive.referral.AddReferralHandler Maven / Gradle / Ivy
/* See LICENSE for licensing and NOTICE for copyright. */
package org.ldaptive.referral;
import org.ldaptive.AddOperation;
import org.ldaptive.AddRequest;
import org.ldaptive.Connection;
import org.ldaptive.LdapURL;
import org.ldaptive.Operation;
/**
* Provides handling of an ldap referral for add operations.
*
* @author Middleware Services
*/
public class AddReferralHandler extends AbstractReferralHandler
{
/** Creates a new add referral handler. */
public AddReferralHandler()
{
this(DEFAULT_REFERRAL_LIMIT, 0, DEFAULT_CONNECTION_FACTORY);
}
/**
* Creates a new add referral handler.
*
* @param factory referral connection factory
*/
public AddReferralHandler(final ReferralConnectionFactory factory)
{
this(DEFAULT_REFERRAL_LIMIT, 0, factory);
}
/**
* Creates a new add referral handler.
*
* @param limit number of referrals to follow
*/
public AddReferralHandler(final int limit)
{
this(limit, 0, DEFAULT_CONNECTION_FACTORY);
}
/**
* Creates a new add referral handler.
*
* @param limit number of referrals to follow
* @param factory referral connection factory
*/
public AddReferralHandler(final int limit, final ReferralConnectionFactory factory)
{
this(limit, 0, factory);
}
/**
* Creates a new add referral handler.
*
* @param limit number of referrals to follow
* @param depth number of referrals followed
* @param factory referral connection factory
*/
private AddReferralHandler(final int limit, final int depth, final ReferralConnectionFactory factory)
{
super(limit, depth, factory);
}
@Override
protected AddRequest createReferralRequest(final AddRequest request, final LdapURL url)
{
final AddRequest referralRequest = new AddRequest();
referralRequest.setControls(request.getControls());
referralRequest.setIntermediateResponseHandlers(request.getIntermediateResponseHandlers());
referralRequest.setReferralHandler(
new AddReferralHandler(getReferralLimit(), getReferralDepth() + 1, getReferralConnectionFactory()));
if (!url.getEntry().isDefaultBaseDn()) {
referralRequest.setDn(url.getEntry().getBaseDn());
} else {
referralRequest.setDn(request.getDn());
}
referralRequest.setLdapAttributes(request.getLdapAttributes());
return referralRequest;
}
@Override
protected Operation createReferralOperation(final Connection conn)
{
return new AddOperation(conn);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy