From 263d085885df024dca9250cc03c807912b0a7662 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Tue, 24 Apr 2012 22:33:21 +0000
Subject: [PATCH] Reformat to comply with new Checkstyle rules.
---
opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/AbstractConnection.java | 937 +++++++++++++++++++++++----------------------------------
1 files changed, 383 insertions(+), 554 deletions(-)
diff --git a/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/AbstractConnection.java b/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/AbstractConnection.java
index 9d8d19b..00a384c 100644
--- a/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/AbstractConnection.java
+++ b/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/AbstractConnection.java
@@ -6,17 +6,16 @@
* (the "License"). You may not use this file except in compliance
* with the License.
*
- * You can obtain a copy of the license at
- * trunk/opendj3/legal-notices/CDDLv1_0.txt
+ * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
* or http://forgerock.org/license/CDDLv1.0.html.
* 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/opendj3/legal-notices/CDDLv1_0.txt. If applicable,
- * add the following below this CDDL HEADER, with the fields enclosed
- * by brackets "[]" replaced with your own identifying information:
+ * file and include the License file at legal-notices/CDDLv1_0.txt.
+ * 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
@@ -28,8 +27,6 @@
package org.forgerock.opendj.ldap;
-
-
import static org.forgerock.opendj.ldap.CoreMessages.ERR_NO_SEARCH_RESULT_ENTRIES;
import static org.forgerock.opendj.ldap.CoreMessages.ERR_UNEXPECTED_SEARCH_RESULT_ENTRIES;
import static org.forgerock.opendj.ldap.CoreMessages.ERR_UNEXPECTED_SEARCH_RESULT_REFERENCES;
@@ -39,609 +36,441 @@
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
-import org.forgerock.opendj.ldap.requests.*;
-import org.forgerock.opendj.ldap.responses.*;
+import org.forgerock.opendj.ldap.requests.ExtendedRequest;
+import org.forgerock.opendj.ldap.requests.Requests;
+import org.forgerock.opendj.ldap.requests.SearchRequest;
+import org.forgerock.opendj.ldap.responses.BindResult;
+import org.forgerock.opendj.ldap.responses.CompareResult;
+import org.forgerock.opendj.ldap.responses.ExtendedResult;
+import org.forgerock.opendj.ldap.responses.GenericExtendedResult;
+import org.forgerock.opendj.ldap.responses.Result;
+import org.forgerock.opendj.ldap.responses.SearchResultEntry;
+import org.forgerock.opendj.ldap.responses.SearchResultReference;
import org.forgerock.opendj.ldif.ConnectionEntryReader;
import com.forgerock.opendj.util.Validator;
-
-
/**
* This class provides a skeletal implementation of the {@code Connection}
* interface, to minimize the effort required to implement this interface.
*/
-public abstract class AbstractConnection implements Connection
-{
+public abstract class AbstractConnection implements Connection {
- private static final class SingleEntryFuture implements
- FutureResult<SearchResultEntry>, SearchResultHandler
- {
- private final ResultHandler<? super SearchResultEntry> handler;
+ private static final class SingleEntryFuture implements FutureResult<SearchResultEntry>,
+ SearchResultHandler {
+ private final ResultHandler<? super SearchResultEntry> handler;
- private volatile SearchResultEntry firstEntry = null;
+ private volatile SearchResultEntry firstEntry = null;
- private volatile SearchResultReference firstReference = null;
+ private volatile SearchResultReference firstReference = null;
- private volatile int entryCount = 0;
+ private volatile int entryCount = 0;
- private volatile FutureResult<Result> future = null;
+ private volatile FutureResult<Result> future = null;
-
-
- private SingleEntryFuture(
- final ResultHandler<? super SearchResultEntry> handler)
- {
- this.handler = handler;
- }
-
-
-
- @Override
- public boolean cancel(final boolean mayInterruptIfRunning)
- {
- return future.cancel(mayInterruptIfRunning);
- }
-
-
-
- @Override
- public SearchResultEntry get() throws ErrorResultException,
- InterruptedException
- {
- future.get();
- return get0();
- }
-
-
-
- @Override
- public SearchResultEntry get(final long timeout, final TimeUnit unit)
- throws ErrorResultException, TimeoutException, InterruptedException
- {
- future.get(timeout, unit);
- return get0();
- }
-
-
-
- @Override
- public int getRequestID()
- {
- return future.getRequestID();
- }
-
-
-
- @Override
- public boolean handleEntry(final SearchResultEntry entry)
- {
- if (firstEntry == null)
- {
- firstEntry = entry;
- }
- entryCount++;
- return true;
- }
-
-
-
- @Override
- public void handleErrorResult(final ErrorResultException error)
- {
- if (handler != null)
- {
- handler.handleErrorResult(error);
- }
- }
-
-
-
- @Override
- public boolean handleReference(final SearchResultReference reference)
- {
- if (firstReference == null)
- {
- firstReference = reference;
- }
- return true;
- }
-
-
-
- @Override
- public void handleResult(final Result result)
- {
- if (handler != null)
- {
- try
- {
- handler.handleResult(get0());
+ private SingleEntryFuture(final ResultHandler<? super SearchResultEntry> handler) {
+ this.handler = handler;
}
- catch (final ErrorResultException e)
- {
- handler.handleErrorResult(e);
+
+ @Override
+ public boolean cancel(final boolean mayInterruptIfRunning) {
+ return future.cancel(mayInterruptIfRunning);
}
- }
+
+ @Override
+ public SearchResultEntry get() throws ErrorResultException, InterruptedException {
+ future.get();
+ return get0();
+ }
+
+ @Override
+ public SearchResultEntry get(final long timeout, final TimeUnit unit)
+ throws ErrorResultException, TimeoutException, InterruptedException {
+ future.get(timeout, unit);
+ return get0();
+ }
+
+ @Override
+ public int getRequestID() {
+ return future.getRequestID();
+ }
+
+ @Override
+ public boolean handleEntry(final SearchResultEntry entry) {
+ if (firstEntry == null) {
+ firstEntry = entry;
+ }
+ entryCount++;
+ return true;
+ }
+
+ @Override
+ public void handleErrorResult(final ErrorResultException error) {
+ if (handler != null) {
+ handler.handleErrorResult(error);
+ }
+ }
+
+ @Override
+ public boolean handleReference(final SearchResultReference reference) {
+ if (firstReference == null) {
+ firstReference = reference;
+ }
+ return true;
+ }
+
+ @Override
+ public void handleResult(final Result result) {
+ if (handler != null) {
+ try {
+ handler.handleResult(get0());
+ } catch (final ErrorResultException e) {
+ handler.handleErrorResult(e);
+ }
+ }
+ }
+
+ @Override
+ public boolean isCancelled() {
+ return future.isCancelled();
+ }
+
+ @Override
+ public boolean isDone() {
+ return future.isDone();
+ }
+
+ private SearchResultEntry get0() throws ErrorResultException {
+ if (entryCount == 0) {
+ // Did not find any entries.
+ throw newErrorResult(ResultCode.CLIENT_SIDE_NO_RESULTS_RETURNED,
+ ERR_NO_SEARCH_RESULT_ENTRIES.get().toString());
+ } else if (entryCount > 1) {
+ // Got more entries than expected.
+ throw newErrorResult(ResultCode.CLIENT_SIDE_UNEXPECTED_RESULTS_RETURNED,
+ ERR_UNEXPECTED_SEARCH_RESULT_ENTRIES.get(entryCount).toString());
+ } else if (firstReference != null) {
+ // Got an unexpected search result reference.
+ throw newErrorResult(ResultCode.CLIENT_SIDE_UNEXPECTED_RESULTS_RETURNED,
+ ERR_UNEXPECTED_SEARCH_RESULT_REFERENCES.get(
+ firstReference.getURIs().iterator().next()).toString());
+ } else {
+ return firstEntry;
+ }
+ }
+
+ private void setResultFuture(final FutureResult<Result> future) {
+ this.future = future;
+ }
}
+ private static final class SingleEntryHandler implements SearchResultHandler {
+ private volatile SearchResultEntry firstEntry = null;
+ private volatile SearchResultReference firstReference = null;
- @Override
- public boolean isCancelled()
- {
- return future.isCancelled();
+ private volatile int entryCount = 0;
+
+ @Override
+ public boolean handleEntry(final SearchResultEntry entry) {
+ if (firstEntry == null) {
+ firstEntry = entry;
+ }
+ entryCount++;
+ return true;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void handleErrorResult(final ErrorResultException error) {
+ // Ignore.
+ }
+
+ @Override
+ public boolean handleReference(final SearchResultReference reference) {
+ if (firstReference == null) {
+ firstReference = reference;
+ }
+ return true;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void handleResult(final Result result) {
+ // Ignore.
+ }
+
}
-
-
- @Override
- public boolean isDone()
- {
- return future.isDone();
+ /**
+ * Creates a new abstract connection.
+ */
+ protected AbstractConnection() {
+ // No implementation required.
}
-
-
- private SearchResultEntry get0() throws ErrorResultException
- {
- if (entryCount == 0)
- {
- // Did not find any entries.
- throw newErrorResult(ResultCode.CLIENT_SIDE_NO_RESULTS_RETURNED,
- ERR_NO_SEARCH_RESULT_ENTRIES.get().toString());
- }
- else if (entryCount > 1)
- {
- // Got more entries than expected.
- throw newErrorResult(
- ResultCode.CLIENT_SIDE_UNEXPECTED_RESULTS_RETURNED,
- ERR_UNEXPECTED_SEARCH_RESULT_ENTRIES.get(entryCount).toString());
- }
- else if (firstReference != null)
- {
- // Got an unexpected search result reference.
- throw newErrorResult(
- ResultCode.CLIENT_SIDE_UNEXPECTED_RESULTS_RETURNED,
- ERR_UNEXPECTED_SEARCH_RESULT_REFERENCES.get(
- firstReference.getURIs().iterator().next()).toString());
- }
- else
- {
- return firstEntry;
- }
- }
-
-
-
- private void setResultFuture(final FutureResult<Result> future)
- {
- this.future = future;
- }
- }
-
-
-
- private static final class SingleEntryHandler implements SearchResultHandler
- {
- private volatile SearchResultEntry firstEntry = null;
-
- private volatile SearchResultReference firstReference = null;
-
- private volatile int entryCount = 0;
-
-
-
- @Override
- public boolean handleEntry(final SearchResultEntry entry)
- {
- if (firstEntry == null)
- {
- firstEntry = entry;
- }
- entryCount++;
- return true;
- }
-
-
-
/**
* {@inheritDoc}
*/
@Override
- public void handleErrorResult(final ErrorResultException error)
- {
- // Ignore.
+ public Result add(final Entry entry) throws ErrorResultException, InterruptedException {
+ return add(Requests.newAddRequest(entry));
}
-
-
- @Override
- public boolean handleReference(final SearchResultReference reference)
- {
- if (firstReference == null)
- {
- firstReference = reference;
- }
- return true;
- }
-
-
-
/**
* {@inheritDoc}
*/
@Override
- public void handleResult(final Result result)
- {
- // Ignore.
+ public Result add(final String... ldifLines) throws ErrorResultException, InterruptedException {
+ return add(Requests.newAddRequest(ldifLines));
}
- }
-
-
-
- /**
- * Creates a new abstract connection.
- */
- protected AbstractConnection()
- {
- // No implementation required.
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- @Override
- public Result add(final Entry entry) throws ErrorResultException,
- InterruptedException
- {
- return add(Requests.newAddRequest(entry));
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- @Override
- public Result add(final String... ldifLines) throws ErrorResultException,
- InterruptedException
- {
- return add(Requests.newAddRequest(ldifLines));
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- @Override
- public BindResult bind(final String name, final char[] password)
- throws ErrorResultException, InterruptedException
- {
- return bind(Requests.newSimpleBindRequest(name, password));
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void close()
- {
- close(Requests.newUnbindRequest(), null);
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- @Override
- public CompareResult compare(final String name,
- final String attributeDescription, final String assertionValue)
- throws ErrorResultException, InterruptedException
- {
- return compare(Requests.newCompareRequest(name, attributeDescription,
- assertionValue));
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- @Override
- public Result delete(final String name) throws ErrorResultException,
- InterruptedException
- {
- return delete(Requests.newDeleteRequest(name));
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- @Override
- public <R extends ExtendedResult> R extendedRequest(
- final ExtendedRequest<R> request) throws ErrorResultException,
- InterruptedException
- {
- return extendedRequest(request, null);
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- @Override
- public GenericExtendedResult extendedRequest(final String requestName,
- final ByteString requestValue) throws ErrorResultException,
- InterruptedException
- {
- return extendedRequest(Requests.newGenericExtendedRequest(requestName,
- requestValue));
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- @Override
- public Result modify(final String... ldifLines) throws ErrorResultException,
- InterruptedException
- {
- return modify(Requests.newModifyRequest(ldifLines));
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- @Override
- public Result modifyDN(final String name, final String newRDN)
- throws ErrorResultException, InterruptedException
- {
- return modifyDN(Requests.newModifyDNRequest(name, newRDN));
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- @Override
- public SearchResultEntry readEntry(final DN baseObject,
- final String... attributeDescriptions) throws ErrorResultException,
- InterruptedException
- {
- final SearchRequest request = Requests.newSearchRequest(baseObject,
- SearchScope.BASE_OBJECT, Filter.getObjectClassPresentFilter(),
- attributeDescriptions);
- return searchSingleEntry(request);
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- @Override
- public SearchResultEntry readEntry(final String baseObject,
- final String... attributeDescriptions) throws ErrorResultException,
- InterruptedException
- {
- return readEntry(DN.valueOf(baseObject));
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- @Override
- public FutureResult<SearchResultEntry> readEntryAsync(final DN name,
- final Collection<String> attributeDescriptions,
- final ResultHandler<? super SearchResultEntry> handler)
- {
- final SearchRequest request = Requests.newSearchRequest(name,
- SearchScope.BASE_OBJECT, Filter.getObjectClassPresentFilter());
- if (attributeDescriptions != null)
- {
- request.getAttributes().addAll(attributeDescriptions);
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public BindResult bind(final String name, final char[] password) throws ErrorResultException,
+ InterruptedException {
+ return bind(Requests.newSimpleBindRequest(name, password));
}
- return searchSingleEntryAsync(request, handler);
- }
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void close() {
+ close(Requests.newUnbindRequest(), null);
+ }
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public CompareResult compare(final String name, final String attributeDescription,
+ final String assertionValue) throws ErrorResultException, InterruptedException {
+ return compare(Requests.newCompareRequest(name, attributeDescription, assertionValue));
+ }
- /**
- * {@inheritDoc}
- */
- @Override
- public ConnectionEntryReader search(final SearchRequest request)
- {
- return new ConnectionEntryReader(this, request);
- }
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Result delete(final String name) throws ErrorResultException, InterruptedException {
+ return delete(Requests.newDeleteRequest(name));
+ }
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public <R extends ExtendedResult> R extendedRequest(final ExtendedRequest<R> request)
+ throws ErrorResultException, InterruptedException {
+ return extendedRequest(request, null);
+ }
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public GenericExtendedResult extendedRequest(final String requestName,
+ final ByteString requestValue) throws ErrorResultException, InterruptedException {
+ return extendedRequest(Requests.newGenericExtendedRequest(requestName, requestValue));
+ }
- /**
- * {@inheritDoc}
- */
- @Override
- public Result search(final SearchRequest request,
- final Collection<? super SearchResultEntry> entries)
- throws ErrorResultException, InterruptedException
- {
- return search(request, entries, null);
- }
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Result modify(final String... ldifLines) throws ErrorResultException,
+ InterruptedException {
+ return modify(Requests.newModifyRequest(ldifLines));
+ }
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Result modifyDN(final String name, final String newRDN) throws ErrorResultException,
+ InterruptedException {
+ return modifyDN(Requests.newModifyDNRequest(name, newRDN));
+ }
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public SearchResultEntry readEntry(final DN baseObject, final String... attributeDescriptions)
+ throws ErrorResultException, InterruptedException {
+ final SearchRequest request =
+ Requests.newSearchRequest(baseObject, SearchScope.BASE_OBJECT, Filter
+ .getObjectClassPresentFilter(), attributeDescriptions);
+ return searchSingleEntry(request);
+ }
- /**
- * {@inheritDoc}
- */
- @Override
- public Result search(final SearchRequest request,
- final Collection<? super SearchResultEntry> entries,
- final Collection<? super SearchResultReference> references)
- throws ErrorResultException, InterruptedException
- {
- Validator.ensureNotNull(request, entries);
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public SearchResultEntry readEntry(final String baseObject,
+ final String... attributeDescriptions) throws ErrorResultException,
+ InterruptedException {
+ return readEntry(DN.valueOf(baseObject));
+ }
- // FIXME: does this need to be thread safe?
- final SearchResultHandler handler = new SearchResultHandler()
- {
-
- @Override
- public boolean handleEntry(final SearchResultEntry entry)
- {
- entries.add(entry);
- return true;
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void handleErrorResult(final ErrorResultException error)
- {
- // Ignore.
- }
-
-
-
- @Override
- public boolean handleReference(final SearchResultReference reference)
- {
- if (references != null)
- {
- references.add(reference);
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public FutureResult<SearchResultEntry> readEntryAsync(final DN name,
+ final Collection<String> attributeDescriptions,
+ final ResultHandler<? super SearchResultEntry> handler) {
+ final SearchRequest request =
+ Requests.newSearchRequest(name, SearchScope.BASE_OBJECT, Filter
+ .getObjectClassPresentFilter());
+ if (attributeDescriptions != null) {
+ request.getAttributes().addAll(attributeDescriptions);
}
- return true;
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void handleResult(final Result result)
- {
- // Ignore.
- }
- };
-
- return search(request, handler);
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- @Override
- public ConnectionEntryReader search(final String baseObject,
- final SearchScope scope, final String filter,
- final String... attributeDescriptions)
- {
- final SearchRequest request = Requests.newSearchRequest(baseObject, scope,
- filter, attributeDescriptions);
- return search(request);
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- @Override
- public SearchResultEntry searchSingleEntry(final SearchRequest request)
- throws ErrorResultException, InterruptedException
- {
- final SingleEntryHandler handler = new SingleEntryHandler();
- search(request, handler);
-
- if (handler.entryCount == 0)
- {
- // Did not find any entries.
- throw newErrorResult(ResultCode.CLIENT_SIDE_NO_RESULTS_RETURNED,
- ERR_NO_SEARCH_RESULT_ENTRIES.get().toString());
+ return searchSingleEntryAsync(request, handler);
}
- else if (handler.entryCount > 1)
- {
- // Got more entries than expected.
- throw newErrorResult(ResultCode.CLIENT_SIDE_UNEXPECTED_RESULTS_RETURNED,
- ERR_UNEXPECTED_SEARCH_RESULT_ENTRIES.get(handler.entryCount)
- .toString());
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public ConnectionEntryReader search(final SearchRequest request) {
+ return new ConnectionEntryReader(this, request);
}
- else if (handler.firstReference != null)
- {
- // Got an unexpected search result reference.
- throw newErrorResult(
- ResultCode.CLIENT_SIDE_UNEXPECTED_RESULTS_RETURNED,
- ERR_UNEXPECTED_SEARCH_RESULT_REFERENCES.get(
- handler.firstReference.getURIs().iterator().next()).toString());
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Result search(final SearchRequest request,
+ final Collection<? super SearchResultEntry> entries) throws ErrorResultException,
+ InterruptedException {
+ return search(request, entries, null);
}
- else
- {
- return handler.firstEntry;
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Result search(final SearchRequest request,
+ final Collection<? super SearchResultEntry> entries,
+ final Collection<? super SearchResultReference> references)
+ throws ErrorResultException, InterruptedException {
+ Validator.ensureNotNull(request, entries);
+
+ // FIXME: does this need to be thread safe?
+ final SearchResultHandler handler = new SearchResultHandler() {
+
+ @Override
+ public boolean handleEntry(final SearchResultEntry entry) {
+ entries.add(entry);
+ return true;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void handleErrorResult(final ErrorResultException error) {
+ // Ignore.
+ }
+
+ @Override
+ public boolean handleReference(final SearchResultReference reference) {
+ if (references != null) {
+ references.add(reference);
+ }
+ return true;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void handleResult(final Result result) {
+ // Ignore.
+ }
+ };
+
+ return search(request, handler);
}
- }
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public ConnectionEntryReader search(final String baseObject, final SearchScope scope,
+ final String filter, final String... attributeDescriptions) {
+ final SearchRequest request =
+ Requests.newSearchRequest(baseObject, scope, filter, attributeDescriptions);
+ return search(request);
+ }
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public SearchResultEntry searchSingleEntry(final SearchRequest request)
+ throws ErrorResultException, InterruptedException {
+ final SingleEntryHandler handler = new SingleEntryHandler();
+ search(request, handler);
- /**
- * {@inheritDoc}
- */
- @Override
- public SearchResultEntry searchSingleEntry(final String baseObject,
- final SearchScope scope, final String filter,
- final String... attributeDescriptions) throws ErrorResultException,
- InterruptedException
- {
- final SearchRequest request = Requests.newSearchRequest(baseObject, scope,
- filter, attributeDescriptions);
- return searchSingleEntry(request);
- }
+ if (handler.entryCount == 0) {
+ // Did not find any entries.
+ throw newErrorResult(ResultCode.CLIENT_SIDE_NO_RESULTS_RETURNED,
+ ERR_NO_SEARCH_RESULT_ENTRIES.get().toString());
+ } else if (handler.entryCount > 1) {
+ // Got more entries than expected.
+ throw newErrorResult(ResultCode.CLIENT_SIDE_UNEXPECTED_RESULTS_RETURNED,
+ ERR_UNEXPECTED_SEARCH_RESULT_ENTRIES.get(handler.entryCount).toString());
+ } else if (handler.firstReference != null) {
+ // Got an unexpected search result reference.
+ throw newErrorResult(ResultCode.CLIENT_SIDE_UNEXPECTED_RESULTS_RETURNED,
+ ERR_UNEXPECTED_SEARCH_RESULT_REFERENCES.get(
+ handler.firstReference.getURIs().iterator().next()).toString());
+ } else {
+ return handler.firstEntry;
+ }
+ }
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public SearchResultEntry searchSingleEntry(final String baseObject, final SearchScope scope,
+ final String filter, final String... attributeDescriptions)
+ throws ErrorResultException, InterruptedException {
+ final SearchRequest request =
+ Requests.newSearchRequest(baseObject, scope, filter, attributeDescriptions);
+ return searchSingleEntry(request);
+ }
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public FutureResult<SearchResultEntry> searchSingleEntryAsync(final SearchRequest request,
+ final ResultHandler<? super SearchResultEntry> handler) {
+ final SingleEntryFuture innerFuture = new SingleEntryFuture(handler);
+ final FutureResult<Result> future = searchAsync(request, null, innerFuture);
+ innerFuture.setResultFuture(future);
+ return innerFuture;
+ }
- /**
- * {@inheritDoc}
- */
- @Override
- public FutureResult<SearchResultEntry> searchSingleEntryAsync(
- final SearchRequest request,
- final ResultHandler<? super SearchResultEntry> handler)
- {
- final SingleEntryFuture innerFuture = new SingleEntryFuture(handler);
- final FutureResult<Result> future = searchAsync(request, null, innerFuture);
- innerFuture.setResultFuture(future);
- return innerFuture;
- }
-
-
-
- /**
- * {@inheritDoc}
- * <p>
- * Sub-classes should provide an implementation which returns an appropriate
- * description of the connection which may be used for debugging purposes.
- */
- @Override
- public abstract String toString();
+ /**
+ * {@inheritDoc}
+ * <p>
+ * Sub-classes should provide an implementation which returns an appropriate
+ * description of the connection which may be used for debugging purposes.
+ */
+ @Override
+ public abstract String toString();
}
--
Gitblit v1.10.0