From 72650d4cc41c64136d064967d7fec3726d850fee Mon Sep 17 00:00:00 2001
From: Ludovic Poitou <ludovic.poitou@forgerock.com>
Date: Thu, 14 Oct 2010 11:52:28 +0000
Subject: [PATCH] Multiple enhancements and bug fixes to the SDK (update from OpenDS by matthew_swift):
---
sdk/src/org/opends/sdk/responses/ExtendedResultDecoder.java | 75 ++++++++++++++++++++++++++++++-------
1 files changed, 60 insertions(+), 15 deletions(-)
diff --git a/sdk/src/org/opends/sdk/responses/ExtendedResultDecoder.java b/sdk/src/org/opends/sdk/responses/ExtendedResultDecoder.java
index db59197..5e4c637 100644
--- a/sdk/src/org/opends/sdk/responses/ExtendedResultDecoder.java
+++ b/sdk/src/org/opends/sdk/responses/ExtendedResultDecoder.java
@@ -32,6 +32,8 @@
import org.opends.sdk.DecodeException;
import org.opends.sdk.DecodeOptions;
import org.opends.sdk.ResultCode;
+import org.opends.sdk.ResultHandler;
+import org.opends.sdk.requests.ExtendedRequest;
@@ -44,25 +46,46 @@
*/
public interface ExtendedResultDecoder<S extends ExtendedResult>
{
+
/**
- * Adapts the provided error result parameters to an extended operation
- * result. This method is called when a generic failure occurs, such as a
- * connection failure, and the error result needs to be converted to a {@code
- * Result} of type {@code S}.
+ * Creates a new extended operation error result using the provided decoding
+ * exception. This method should be used to adapt {@code DecodeException}
+ * encountered while decoding an extended request or result. The returned
+ * error result will have the result code {@link ResultCode#PROTOCOL_ERROR}.
*
- * @param resultCode
- * The result code.
- * @param matchedDN
- * The matched DN, which may be empty if none was provided.
- * @param diagnosticMessage
- * The diagnostic message, which may be empty if none was provided.
- * @return The decoded extended operation error result.
+ * @param exception
+ * The decoding exception to be adapted.
+ * @return An extended operation error result representing the decoding
+ * exception.
* @throws NullPointerException
- * If {@code resultCode}, {@code matchedDN}, or {@code
- * diagnosticMessage} were {@code null}.
+ * If {@code exception} was {@code null}.
*/
- S adaptExtendedErrorResult(ResultCode resultCode, String matchedDN,
- String diagnosticMessage) throws NullPointerException;
+ S adaptDecodeException(DecodeException exception) throws NullPointerException;
+
+
+
+ /**
+ * Adapts the provided extended result handler into a result handler which is
+ * compatible with this extended result decoder. Extended results handled by
+ * the returned handler will be automatically converted and passed to the
+ * provided result handler. Decoding errors encountered while decoding the
+ * extended result will be converted into protocol errors.
+ *
+ * @param <R>
+ * The type of result handler to be adapted.
+ * @param request
+ * The extended request whose result handler is to be adapted.
+ * @param resultHandler
+ * The extended result handler which is to be adapted.
+ * @param options
+ * The set of decode options which should be used when decoding the
+ * extended operation result.
+ * @return A result handler which is compatible with this extended result
+ * decoder.
+ */
+ <R extends ExtendedResult> ResultHandler<S> adaptExtendedResultHandler(
+ final ExtendedRequest<R> request,
+ final ResultHandler<? super R> resultHandler, DecodeOptions options);
@@ -86,4 +109,26 @@
S decodeExtendedResult(ExtendedResult result, DecodeOptions options)
throws DecodeException;
+
+
+ /**
+ * Creates a new extended error result using the provided result code, matched
+ * DN, and diagnostic message. This method is called when a generic failure
+ * occurs, such as a connection failure, and the error result needs to be
+ * converted to a {@code Result} of type {@code S}.
+ *
+ * @param resultCode
+ * The result code.
+ * @param matchedDN
+ * The matched DN, which may be empty if none was provided.
+ * @param diagnosticMessage
+ * The diagnostic message, which may be empty if none was provided.
+ * @return The decoded extended operation error result.
+ * @throws NullPointerException
+ * If {@code resultCode}, {@code matchedDN}, or
+ * {@code diagnosticMessage} were {@code null}.
+ */
+ S newExtendedErrorResult(ResultCode resultCode, String matchedDN,
+ String diagnosticMessage) throws NullPointerException;
+
}
--
Gitblit v1.10.0