All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.unboundid.ldap.sdk.migrate.ldapjdk.LDAPConstraints Maven / Gradle / Ivy

/*
 * Copyright 2009-2019 Ping Identity Corporation
 * All Rights Reserved.
 */
/*
 * Copyright (C) 2009-2019 Ping Identity Corporation
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License (GPLv2 only)
 * or the terms of the GNU Lesser General Public License (LGPLv2.1 only)
 * as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, see .
 */
package com.unboundid.ldap.sdk.migrate.ldapjdk;



import java.io.Serializable;

import com.unboundid.util.Mutable;
import com.unboundid.util.NotExtensible;
import com.unboundid.util.ThreadSafety;
import com.unboundid.util.ThreadSafetyLevel;



/**
 * This class provides a data structure which may be used to define a set of
 * constraints that may be used when processing operations.
 * 

* This class is primarily intended to be used in the process of updating * applications which use the Netscape Directory SDK for Java to switch to or * coexist with the UnboundID LDAP SDK for Java. For applications not written * using the Netscape Directory SDK for Java, the * {@link com.unboundid.ldap.sdk.LDAPConnectionOptions} class should be used * instead. */ @NotExtensible() @Mutable() @ThreadSafety(level=ThreadSafetyLevel.NOT_THREADSAFE) public class LDAPConstraints implements Serializable { /** * The serial version UID for this serializable class. */ private static final long serialVersionUID = 6843729471197926148L; // Indicates whether to follow referrals. private boolean followReferrals; // The referral hop limit. private int hopLimit; // The response time limit in milliseconds. private int timeLimit; // The mechanism to use to authenticate to the target server when following // referrals. private LDAPBind bindProc; // The client controls. private LDAPControl[] clientControls; // The server controls. private LDAPControl[] serverControls; // The mechanism to use to obtain credentials used when authenticating a // referral connection. private LDAPRebind rebindProc; /** * Creates a new default set of constraints. */ public LDAPConstraints() { bindProc = null; clientControls = new LDAPControl[0]; followReferrals = false; hopLimit = 5; rebindProc = null; serverControls = new LDAPControl[0]; timeLimit = 0; } /** * Creates a set of LDAP constraints with the provided information. * * @param msLimit The maximum length of time in milliseconds to wait for * a response from the server. * @param doReferrals Indicates whether to attempt to follow referrals. * @param bindProc The object to use to authenticate a connection when * following referrals. * @param hopLimit The maximum number of hops to take when following a * referral. */ public LDAPConstraints(final int msLimit, final boolean doReferrals, final LDAPBind bindProc, final int hopLimit) { this(); timeLimit = msLimit; followReferrals = doReferrals; this.bindProc = bindProc; this.hopLimit = hopLimit; } /** * Creates a set of LDAP constraints with the provided information. * * @param msLimit The maximum length of time in milliseconds to wait for * a response from the server. * @param doReferrals Indicates whether to attempt to follow referrals. * @param rebindProc The object to use to provide the information needed to * authenticate a connection created for following a * referral. * @param hopLimit The maximum number of hops to take when following a * referral. */ public LDAPConstraints(final int msLimit, final boolean doReferrals, final LDAPRebind rebindProc, final int hopLimit) { this(); timeLimit = msLimit; followReferrals = doReferrals; this.rebindProc = rebindProc; this.hopLimit = hopLimit; } /** * Retrieves the maximum length of time in milliseconds to wait for a response * from the server. * * @return The maximum length of time in milliseconds to wait for a response * from the server. */ public int getTimeLimit() { return timeLimit; } /** * Specifies the maximum length of time in milliseconds to wait for a response * from the server. * * @param timeLimit The maximum length of time in milliseconds to wait for a * response from the server. */ public void setTimeLimit(final int timeLimit) { if (timeLimit < 0) { this.timeLimit = 0; } else { this.timeLimit = timeLimit; } } /** * Indicates whether the client should automatically attempt to follow * referrals. * * @return {@code true} if the client should attempt to follow referrals, or * {@code false} if not. */ public boolean getReferrals() { return followReferrals; } /** * Specifies whether the client should automatically attempt to follow * referrals. * * @param doReferrals Indicates whether the client should automatically * attempt to follow referrals. */ public void setReferrals(final boolean doReferrals) { followReferrals = doReferrals; } /** * Retrieves the object that should be used to authenticate connections when * following referrals. * * @return The object that should be used to authenticate connections when * following referrals, or {@code null} if none has been defined. */ public LDAPBind getBindProc() { return bindProc; } /** * Specifies the object that should be used to authenticate connections when * following referrals. * * @param bindProc The object that should be used to authenticate * connections when following referrals. */ public void setBindProc(final LDAPBind bindProc) { this.bindProc = bindProc; } /** * Retrieves the object that should be used to obtain authentication * information for use when following referrals. * * @return The object that should be used to obtain authentication * information for use when following referrals, or {@code null} if * none has been defined. */ public LDAPRebind getRebindProc() { return rebindProc; } /** * Specifies the object that should be used to obtain authentication * information for use when following referrals. * * @param rebindProc The object that should be used to obtain authentication * information for use when following referrals. */ public void setRebindProc(final LDAPRebind rebindProc) { this.rebindProc = rebindProc; } /** * Retrieves the maximum number of hops to take when attempting to follow a * referral. * * @return The maximum number of hops to take when attempting to follow a * referral. */ public int getHopLimit() { return hopLimit; } /** * Retrieves the maximum number of hops to take when attempting to follow a * referral. * * @param hopLimit The maximum number of hops to take when attempting to * follow a referral. */ public void setHopLimit(final int hopLimit) { if (hopLimit < 0) { this.hopLimit = 0; } else { this.hopLimit = hopLimit; } } /** * Retrieves the controls that should be applied by the clients. * * @return The controls that should be applied by the client. */ public LDAPControl[] getClientControls() { return clientControls; } /** * Specifies the controls that should be applied by the client. * * @param control The control that should be applied by client. */ public void setClientControls(final LDAPControl control) { clientControls = new LDAPControl[] { control }; } /** * Specifies the controls that should be applied by the client. * * @param controls The controls that should be applied by client. */ public void setClientControls(final LDAPControl[] controls) { if (controls == null) { clientControls = new LDAPControl[0]; } else { clientControls = controls; } } /** * Retrieves the controls that should be applied by the server. * * @return The controls that should be applied by the server. */ public LDAPControl[] getServerControls() { return serverControls; } /** * Specifies the controls that should be applied by the server. * * @param control The control that should be applied by server. */ public void setServerControls(final LDAPControl control) { serverControls = new LDAPControl[] { control }; } /** * Specifies the controls that should be applied by the server. * * @param controls The controls that should be applied by server. */ public void setServerControls(final LDAPControl[] controls) { if (controls == null) { serverControls = new LDAPControl[0]; } else { serverControls = controls; } } /** * Retrieves a duplicate of this LDAP constraints object. * * @return A duplicate of this LDAP constraints object. */ public LDAPConstraints duplicate() { final LDAPConstraints c = new LDAPConstraints(); c.bindProc = bindProc; c.clientControls = clientControls; c.followReferrals = followReferrals; c.hopLimit = hopLimit; c.rebindProc = rebindProc; c.serverControls = serverControls; c.timeLimit = timeLimit; return c; } /** * Retrieves a string representation of this LDAP constraints object. * * @return A string representation of this LDAP constraints object. */ @Override() public String toString() { final StringBuilder buffer = new StringBuilder(); buffer.append("LDAPConstraints(followReferrals="); buffer.append(followReferrals); buffer.append(", bindProc="); buffer.append(String.valueOf(bindProc)); buffer.append(", rebindProc="); buffer.append(String.valueOf(rebindProc)); buffer.append(", hopLimit="); buffer.append(hopLimit); buffer.append(", timeLimit="); buffer.append(timeLimit); buffer.append(", clientControls={"); for (int i=0; i < clientControls.length; i++) { if (i > 0) { buffer.append(", "); } buffer.append(clientControls[i].toString()); } buffer.append("}, serverControls={"); for (int i=0; i < serverControls.length; i++) { if (i > 0) { buffer.append(", "); } buffer.append(serverControls[i].toString()); } buffer.append("})"); return buffer.toString(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy