From ebf96a30d0122d35e271bad15f1f31a0a9100842 Mon Sep 17 00:00:00 2001
From: Ludovic Poitou <ludovic.poitou@forgerock.com>
Date: Sun, 24 Oct 2010 20:47:53 +0000
Subject: [PATCH] Sync commits from OpenDS by matthew_swift
---
sdk/src/org/opends/sdk/responses/Responses.java | 212 +++++++++++++++++++++++++++++-----------------------
1 files changed, 117 insertions(+), 95 deletions(-)
diff --git a/sdk/src/org/opends/sdk/responses/Responses.java b/sdk/src/org/opends/sdk/responses/Responses.java
index bf4a15b..d7b48eb 100644
--- a/sdk/src/org/opends/sdk/responses/Responses.java
+++ b/sdk/src/org/opends/sdk/responses/Responses.java
@@ -38,17 +38,24 @@
/**
* This class contains various methods for creating and manipulating responses.
* <p>
- * TODO: search reference from LDAP URL.
+ * All copy constructors of the form {@code copyOfXXXResult} perform deep copies
+ * of their response parameter. More specifically, any controls, modifications,
+ * and attributes contained within the response will be duplicated.
* <p>
- * TODO: referral from LDAP URL.
- * <p>
- * TODO: synchronized requests?
- * <p>
- * TODO: copy constructors.
+ * Similarly, all unmodifiable views of responses returned by methods of the
+ * form {@code unmodifiableXXXResult} return deep unmodifiable views of their
+ * response parameter. More specifically, any controls, modifications, and
+ * attributes contained within the returned response will be unmodifiable.
*/
public final class Responses
{
+ // TODO: search reference from LDAP URL.
+
+ // TODO: referral from LDAP URL.
+
+ // TODO: synchronized requests?
+
/**
* Creates a new bind result using the provided result code.
*
@@ -300,16 +307,20 @@
/**
* Creates an unmodifiable bind result using the provided response.
*
- * @param bindResult
+ * @param result
* The bind result to be copied.
* @return The unmodifiable bind result.
* @throws NullPointerException
- * If {@code bindResult} was {@code null}.
+ * If {@code result} was {@code null}.
*/
- public static BindResult unmodifiableBindResult(final BindResult bindResult)
+ public static BindResult unmodifiableBindResult(final BindResult result)
throws NullPointerException
{
- return new UnmodifiableBindResultImpl(bindResult);
+ if (result instanceof UnmodifiableBindResultImpl)
+ {
+ return result;
+ }
+ return new UnmodifiableBindResultImpl(result);
}
@@ -317,17 +328,20 @@
/**
* Creates an unmodifiable compare result using the provided response.
*
- * @param compareResult
+ * @param result
* The compare result to be copied.
* @return The unmodifiable compare result.
* @throws NullPointerException
- * If {@code compareResult} was {@code null}.
+ * If {@code result} was {@code null}.
*/
public static CompareResult unmodifiableCompareResult(
- final CompareResult compareResult)
- throws NullPointerException
+ final CompareResult result) throws NullPointerException
{
- return new UnmodifiableCompareResultImpl(compareResult);
+ if (result instanceof UnmodifiableCompareResultImpl)
+ {
+ return result;
+ }
+ return new UnmodifiableCompareResultImpl(result);
}
@@ -336,17 +350,20 @@
* Creates an unmodifiable generic extended result using the provided
* response.
*
- * @param genericExtendedResult
+ * @param result
* The generic extended result to be copied.
* @return The unmodifiable generic extended result.
* @throws NullPointerException
- * If {@code genericExtendedResult} was {@code null}.
+ * If {@code result} was {@code null}.
*/
public static GenericExtendedResult unmodifiableGenericExtendedResult(
- final GenericExtendedResult genericExtendedResult)
- throws NullPointerException
+ final GenericExtendedResult result) throws NullPointerException
{
- return new UnmodifiableGenericExtendedResultImpl(genericExtendedResult);
+ if (result instanceof UnmodifiableGenericExtendedResultImpl)
+ {
+ return result;
+ }
+ return new UnmodifiableGenericExtendedResultImpl(result);
}
@@ -355,19 +372,20 @@
* Creates an unmodifiable generic intermediate response using the provided
* response.
*
- * @param genericIntermediateResponse
+ * @param response
* The generic intermediate response to be copied.
* @return The unmodifiable generic intermediate response.
* @throws NullPointerException
- * If {@code genericIntermediateResponse} was {@code null}.
+ * If {@code response} was {@code null}.
*/
- public static GenericIntermediateResponse
- unmodifiableGenericIntermediateResponse(
- final GenericIntermediateResponse genericIntermediateResponse)
- throws NullPointerException
+ public static GenericIntermediateResponse unmodifiableGenericIntermediateResponse(
+ final GenericIntermediateResponse response) throws NullPointerException
{
- return new UnmodifiableGenericIntermediateResponseImpl(
- genericIntermediateResponse);
+ if (response instanceof UnmodifiableGenericIntermediateResponseImpl)
+ {
+ return response;
+ }
+ return new UnmodifiableGenericIntermediateResponseImpl(response);
}
@@ -376,19 +394,20 @@
* Creates an unmodifiable password modify extended result using the provided
* response.
*
- * @param passwordModifyExtendedResult
+ * @param result
* The password modify extended result to be copied.
* @return The unmodifiable password modify extended result.
* @throws NullPointerException
- * If {@code passwordModifyExtendedResult} was {@code null}.
+ * If {@code result} was {@code null}.
*/
- public static PasswordModifyExtendedResult
- unmodifiablePasswordModifyExtendedResult(
- final PasswordModifyExtendedResult passwordModifyExtendedResult)
- throws NullPointerException
+ public static PasswordModifyExtendedResult unmodifiablePasswordModifyExtendedResult(
+ final PasswordModifyExtendedResult result) throws NullPointerException
{
- return new UnmodifiablePasswordModifyExtendedResultImpl(
- passwordModifyExtendedResult);
+ if (result instanceof UnmodifiablePasswordModifyExtendedResultImpl)
+ {
+ return result;
+ }
+ return new UnmodifiablePasswordModifyExtendedResultImpl(result);
}
@@ -405,6 +424,10 @@
public static Result unmodifiableResult(final Result result)
throws NullPointerException
{
+ if (result instanceof UnmodifiableResultImpl)
+ {
+ return result;
+ }
return new UnmodifiableResultImpl(result);
}
@@ -413,17 +436,20 @@
/**
* Creates an unmodifiable search result entry using the provided response.
*
- * @param searchResultEntry
+ * @param entry
* The search result entry to be copied.
* @return The unmodifiable search result entry.
* @throws NullPointerException
- * If {@code searchResultEntry} was {@code null}.
+ * If {@code entry} was {@code null}.
*/
public static SearchResultEntry unmodifiableSearchResultEntry(
- final SearchResultEntry searchResultEntry)
- throws NullPointerException
+ final SearchResultEntry entry) throws NullPointerException
{
- return new UnmodifiableSearchResultEntryImpl(searchResultEntry);
+ if (entry instanceof UnmodifiableSearchResultEntryImpl)
+ {
+ return entry;
+ }
+ return new UnmodifiableSearchResultEntryImpl(entry);
}
@@ -432,17 +458,20 @@
* Creates an unmodifiable search result reference using the provided
* response.
*
- * @param searchResultReference
+ * @param reference
* The search result reference to be copied.
* @return The unmodifiable search result reference.
* @throws NullPointerException
* If {@code searchResultReference} was {@code null}.
*/
public static SearchResultReference unmodifiableSearchResultReference(
- final SearchResultReference searchResultReference)
- throws NullPointerException
+ final SearchResultReference reference) throws NullPointerException
{
- return new UnmodifiableSearchResultReferenceImpl(searchResultReference);
+ if (reference instanceof UnmodifiableSearchResultReferenceImpl)
+ {
+ return reference;
+ }
+ return new UnmodifiableSearchResultReferenceImpl(reference);
}
@@ -451,53 +480,54 @@
* Creates an unmodifiable who am I extended result using the provided
* response.
*
- * @param whoAmIExtendedResult
+ * @param result
* The who am I result to be copied.
* @return The unmodifiable who am I extended result.
* @throws NullPointerException
- * If {@code whoAmIExtendedResult} was {@code null} .
+ * If {@code result} was {@code null} .
*/
public static WhoAmIExtendedResult unmodifiableWhoAmIExtendedResult(
- final WhoAmIExtendedResult whoAmIExtendedResult)
- throws NullPointerException
+ final WhoAmIExtendedResult result) throws NullPointerException
{
- return new UnmodifiableWhoAmIExtendedResultImpl(whoAmIExtendedResult);
+ if (result instanceof UnmodifiableSearchResultReferenceImpl)
+ {
+ return result;
+ }
+ return new UnmodifiableWhoAmIExtendedResultImpl(result);
}
/**
- * Creates a new bind result that is an exact copy of the provided
- * result.
+ * Creates a new bind result that is an exact copy of the provided result.
*
- * @param bindResult
+ * @param result
* The bind result to be copied.
* @return The new bind result.
* @throws NullPointerException
- * If {@code bindResult} was {@code null}.
+ * If {@code result} was {@code null}.
*/
- public static BindResult copyOfBindResult(final BindResult bindResult)
+ public static BindResult copyOfBindResult(final BindResult result)
throws NullPointerException
{
- return new BindResultImpl(bindResult);
+ return new BindResultImpl(result);
}
+
/**
- * Creates a new compare result that is an exact copy of the provided
- * result.
+ * Creates a new compare result that is an exact copy of the provided result.
*
- * @param compareResult
+ * @param result
* The compare result to be copied.
* @return The new compare result.
* @throws NullPointerException
- * If {@code compareResult} was {@code null}.
+ * If {@code result} was {@code null}.
*/
- public static CompareResult copyOfCompareResult(
- final CompareResult compareResult)
+ public static CompareResult copyOfCompareResult(final CompareResult result)
throws NullPointerException
{
- return new CompareResultImpl(compareResult);
+ return new CompareResultImpl(result);
}
@@ -506,17 +536,16 @@
* Creates a new generic extended result that is an exact copy of the provided
* result.
*
- * @param genericExtendedResult
+ * @param result
* The generic extended result to be copied.
* @return The new generic extended result.
* @throws NullPointerException
- * If {@code genericExtendedResult} was {@code null}.
+ * If {@code result} was {@code null}.
*/
public static GenericExtendedResult copyOfGenericExtendedResult(
- final GenericExtendedResult genericExtendedResult)
- throws NullPointerException
+ final GenericExtendedResult result) throws NullPointerException
{
- return new GenericExtendedResultImpl(genericExtendedResult);
+ return new GenericExtendedResultImpl(result);
}
@@ -525,18 +554,16 @@
* Creates a new generic intermediate response that is an exact copy of the
* provided response.
*
- * @param genericIntermediateResponse
+ * @param result
* The generic intermediate response to be copied.
* @return The new generic intermediate response.
* @throws NullPointerException
- * If {@code genericIntermediateResponse} was {@code null}.
+ * If {@code result} was {@code null}.
*/
public static GenericIntermediateResponse copyOfGenericIntermediateResponse(
- final GenericIntermediateResponse genericIntermediateResponse)
- throws NullPointerException
+ final GenericIntermediateResponse result) throws NullPointerException
{
- return new GenericIntermediateResponseImpl(
- genericIntermediateResponse);
+ return new GenericIntermediateResponseImpl(result);
}
@@ -545,18 +572,16 @@
* Creates a new password modify extended result that is an exact copy of the
* provided result.
*
- * @param passwordModifyExtendedResult
+ * @param result
* The password modify extended result to be copied.
* @return The new password modify extended result.
* @throws NullPointerException
- * If {@code passwordModifyExtendedResult} was {@code null}.
+ * If {@code result} was {@code null}.
*/
public static PasswordModifyExtendedResult copyOfPasswordModifyExtendedResult(
- final PasswordModifyExtendedResult passwordModifyExtendedResult)
- throws NullPointerException
+ final PasswordModifyExtendedResult result) throws NullPointerException
{
- return new PasswordModifyExtendedResultImpl(
- passwordModifyExtendedResult);
+ return new PasswordModifyExtendedResultImpl(result);
}
@@ -582,17 +607,16 @@
* Creates a new search result entry that is an exact copy of the provided
* result.
*
- * @param searchResultEntry
+ * @param entry
* The search result entry to be copied.
* @return The new search result entry.
* @throws NullPointerException
- * If {@code searchResultEntry} was {@code null}.
+ * If {@code entry} was {@code null}.
*/
public static SearchResultEntry copyOfSearchResultEntry(
- final SearchResultEntry searchResultEntry)
- throws NullPointerException
+ final SearchResultEntry entry) throws NullPointerException
{
- return new SearchResultEntryImpl(searchResultEntry);
+ return new SearchResultEntryImpl(entry);
}
@@ -601,17 +625,16 @@
* Creates a new search result reference that is an exact copy of the provided
* result.
*
- * @param searchResultReference
+ * @param reference
* The search result reference to be copied.
* @return The new search result reference.
* @throws NullPointerException
- * If {@code searchResultReference} was {@code null}.
+ * If {@code reference} was {@code null}.
*/
public static SearchResultReference copyOfSearchResultReference(
- final SearchResultReference searchResultReference)
- throws NullPointerException
+ final SearchResultReference reference) throws NullPointerException
{
- return new SearchResultReferenceImpl(searchResultReference);
+ return new SearchResultReferenceImpl(reference);
}
@@ -620,17 +643,16 @@
* Creates a new who am I extended result that is an exact copy of the
* provided result.
*
- * @param whoAmIExtendedResult
+ * @param result
* The who am I result to be copied.
* @return The new who am I extended result.
* @throws NullPointerException
- * If {@code whoAmIExtendedResult} was {@code null} .
+ * If {@code result} was {@code null} .
*/
public static WhoAmIExtendedResult copyOfWhoAmIExtendedResult(
- final WhoAmIExtendedResult whoAmIExtendedResult)
- throws NullPointerException
+ final WhoAmIExtendedResult result) throws NullPointerException
{
- return new WhoAmIExtendedResultImpl(whoAmIExtendedResult);
+ return new WhoAmIExtendedResultImpl(result);
}
--
Gitblit v1.10.0