From f2160f4bd1c8ac67e5a86a6710d431e8932877f9 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.
---
sdk/src/org/opends/sdk/controls/Control.java | 118 +++++++++++++++++++++++++++++++++-------------------------
1 files changed, 67 insertions(+), 51 deletions(-)
diff --git a/sdk/src/org/opends/sdk/controls/Control.java b/sdk/src/org/opends/sdk/controls/Control.java
index cb034c8..880ab89 100644
--- a/sdk/src/org/opends/sdk/controls/Control.java
+++ b/sdk/src/org/opends/sdk/controls/Control.java
@@ -1,3 +1,29 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+ * add the following below this CDDL HEADER, with the fields enclosed
+ * by brackets "[]" replaced with your own identifying information:
+ * Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ * Copyright 2010 Sun Microsystems, Inc.
+ */
package org.opends.sdk.controls;
@@ -7,74 +33,64 @@
/**
- * Created by IntelliJ IDEA. User: boli Date: Jun 29, 2009 Time:
- * 10:59:19 AM To change this template use File | Settings | File
- * Templates.
+ * Controls provide a mechanism whereby the semantics and arguments of existing
+ * LDAP operations may be extended. One or more controls may be attached to a
+ * single LDAP message. A control only affects the semantics of the message it
+ * is attached to. Controls sent by clients are termed 'request controls', and
+ * those sent by servers are termed 'response controls'.
+ *
+ * @see <a href="http://tools.ietf.org/html/rfc4511">RFC 4511 - Lightweight
+ * Directory Access Protocol (LDAP): The Protocol </a>
*/
-public abstract class Control
+public interface Control
{
- // The criticality for this control.
- protected final boolean isCritical;
- // The OID for this control.
- protected final String oid;
-
-
-
- public Control(String oid, boolean isCritical)
- {
- this.isCritical = isCritical;
- this.oid = oid;
- }
+ /**
+ * Returns the numeric OID associated with this control.
+ *
+ * @return The numeric OID associated with this control.
+ */
+ String getOID();
/**
- * Retrieves the OID for this control.
- *
- * @return The OID for this control.
+ * Returns the value, if any, associated with this control. Its format is
+ * defined by the specification of this control.
+ *
+ * @return The value associated with this control, or {@code null} if there is
+ * no value.
*/
- public String getOID()
- {
- return oid;
- }
-
-
-
- public abstract ByteString getValue();
-
-
-
- public abstract boolean hasValue();
+ ByteString getValue();
/**
- * Indicates whether this control should be considered critical in
- * processing the request.
- *
- * @return <CODE>true</CODE> if this code should be considered
- * critical, or <CODE>false</CODE> if not.
+ * Returns {@code true} if this control has a value. In some circumstances it
+ * may be useful to determine if a control has a value, without actually
+ * calculating the value and incurring any performance costs.
+ *
+ * @return {@code true} if this control has a value, or {@code false} if there
+ * is no value.
*/
- public boolean isCritical()
- {
- return isCritical;
- }
+ boolean hasValue();
/**
- * {@inheritDoc}
+ * Returns {@code true} if it is unacceptable to perform the operation without
+ * applying the semantics of this control.
+ * <p>
+ * The criticality field only has meaning in controls attached to request
+ * messages (except UnbindRequest). For controls attached to response messages
+ * and the UnbindRequest, the criticality field SHOULD be {@code false}, and
+ * MUST be ignored by the receiving protocol peer. A value of {@code true}
+ * indicates that it is unacceptable to perform the operation without applying
+ * the semantics of the control.
+ *
+ * @return {@code true} if this control must be processed by the Directory
+ * Server, or {@code false} if it can be ignored.
*/
- @Override
- public String toString()
- {
- StringBuilder buffer = new StringBuilder();
- toString(buffer);
- return buffer.toString();
- }
+ boolean isCritical();
-
-
- public abstract void toString(StringBuilder buffer);
}
--
Gitblit v1.10.0