From cc556edc003e4fb8df13611167fab0d9fd3890f9 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Fri, 28 May 2010 11:47:51 +0000
Subject: [PATCH] Synchronize SDK on java.net with internal repository.

---
 opendj-sdk/sdk/src/org/opends/sdk/requests/BindRequest.java |  115 +++++++++++++++++++++++----------------------------------
 1 files changed, 46 insertions(+), 69 deletions(-)

diff --git a/opendj-sdk/sdk/src/org/opends/sdk/requests/BindRequest.java b/opendj-sdk/sdk/src/org/opends/sdk/requests/BindRequest.java
index 62a466d..5d38914 100644
--- a/opendj-sdk/sdk/src/org/opends/sdk/requests/BindRequest.java
+++ b/opendj-sdk/sdk/src/org/opends/sdk/requests/BindRequest.java
@@ -29,109 +29,86 @@
 
 
 
-import org.opends.sdk.DN;
+import java.util.List;
+
+import org.opends.sdk.DecodeException;
+import org.opends.sdk.DecodeOptions;
+import org.opends.sdk.ErrorResultException;
 import org.opends.sdk.controls.Control;
+import org.opends.sdk.controls.ControlDecoder;
 
 
 
 /**
- * The Bind operation allows authentication information to be exchanged
- * between the client and server. The Bind operation should be thought
- * of as the "authenticate" operation.
+ * The Bind operation allows authentication information to be exchanged between
+ * the client and server. The Bind operation should be thought of as the
+ * "authenticate" operation.
  */
 public interface BindRequest extends Request
 {
   /**
-   * Adds the provided control to this request.
-   * 
-   * @param control
-   *          The control to be added to this request.
-   * @return This request.
-   * @throws UnsupportedOperationException
-   *           If this request does not permit controls to be added.
-   * @throws NullPointerException
-   *           If {@code control} was {@code null}.
+   * {@inheritDoc}
    */
-  BindRequest addControl(Control control)
-      throws UnsupportedOperationException, NullPointerException;
+  BindRequest addControl(Control control) throws UnsupportedOperationException,
+      NullPointerException;
 
 
 
   /**
-   * Removes all the controls included with this request.
-   * 
-   * @return This request.
-   * @throws UnsupportedOperationException
-   *           If this request does not permit controls to be removed.
+   * Creates a new bind client which can be used to perform the authentication
+   * process. This method is called by protocol implementations and is not
+   * intended for use by applications.
+   *
+   * @param serverName
+   *          The non-null fully-qualified host name of the server to
+   *          authenticate to.
+   * @return The new bind client.
+   * @throws ErrorResultException
+   *           If an error occurred while creating the bind client context.
    */
-  BindRequest clearControls() throws UnsupportedOperationException;
+  BindClient createBindClient(String serverName) throws ErrorResultException;
 
 
 
   /**
-   * Returns the first control contained in this request having the
-   * specified OID.
-   * 
-   * @param oid
-   *          The OID of the control to be returned.
-   * @return The control, or {@code null} if the control is not included
-   *         with this request.
-   * @throws NullPointerException
-   *           If {@code oid} was {@code null}.
+   * Returns the authentication mechanism identifier for this generic bind
+   * request as defined by the LDAP protocol. Note that value {@code 0x80} is
+   * reserved for simple authentication and {@code 0xA3} is reserved for SASL
+   * authentication.
+   *
+   * @return The authentication mechanism identifier.
    */
-  Control getControl(String oid) throws NullPointerException;
+  byte getAuthenticationType();
 
 
 
   /**
-   * Returns an {@code Iterable} containing the controls included with
-   * this request. The returned {@code Iterable} may be used to remove
-   * controls if permitted by this request.
-   * 
-   * @return An {@code Iterable} containing the controls.
+   * {@inheritDoc}
    */
-  Iterable<Control> getControls();
+  <C extends Control> C getControl(ControlDecoder<C> decoder,
+      DecodeOptions options) throws NullPointerException, DecodeException;
 
 
 
   /**
-   * Returns the distinguished name of the Directory object that the
-   * client wishes to bind as. The distinguished name may be empty (but
-   * never {@code null}) when used for of anonymous binds, or when using
-   * SASL authentication. The server shall not dereference any aliases
-   * in locating the named object.
-   * 
-   * @return The distinguished name of the Directory object that the
-   *         client wishes to bind as.
+   * {@inheritDoc}
    */
-  DN getName();
+  List<Control> getControls();
 
 
 
   /**
-   * Indicates whether or not this request has any controls.
-   * 
-   * @return {@code true} if this request has any controls, otherwise
-   *         {@code false}.
+   * Returns the name of the Directory object that the client wishes to bind as.
+   * The name may be empty (but never {@code null}) when used for of anonymous
+   * binds, or when using SASL authentication. The server shall not dereference
+   * any aliases in locating the named object.
+   * <p>
+   * The LDAP protocol defines the Bind name to be a distinguished name, however
+   * some LDAP implementations have relaxed this constraint and allow other
+   * identities to be used, such as the user's email address.
+   *
+   * @return The name of the Directory object that the client wishes to bind as.
    */
-  boolean hasControls();
-
-
-
-  /**
-   * Removes the first control contained in this request having the
-   * specified OID.
-   * 
-   * @param oid
-   *          The OID of the control to be removed.
-   * @return The removed control, or {@code null} if the control is not
-   *         included with this request.
-   * @throws UnsupportedOperationException
-   *           If this request does not permit controls to be removed.
-   * @throws NullPointerException
-   *           If {@code oid} was {@code null}.
-   */
-  Control removeControl(String oid)
-      throws UnsupportedOperationException, NullPointerException;
+  String getName();
 
 }

--
Gitblit v1.10.0