From 47e492a9ccde3af37512cdde9cd13d3c388f4ebe Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Tue, 15 Dec 2009 21:58:47 +0000
Subject: [PATCH] Various changes:
---
opendj-sdk/sdk/src/org/opends/sdk/AuthenticatedConnectionFactory.java | 168 +++++++++++++++++++++++++++++++-------------------------
1 files changed, 93 insertions(+), 75 deletions(-)
diff --git a/opendj-sdk/sdk/src/org/opends/sdk/AuthenticatedConnectionFactory.java b/opendj-sdk/sdk/src/org/opends/sdk/AuthenticatedConnectionFactory.java
index 3dbf42d..67f43d5 100644
--- a/opendj-sdk/sdk/src/org/opends/sdk/AuthenticatedConnectionFactory.java
+++ b/opendj-sdk/sdk/src/org/opends/sdk/AuthenticatedConnectionFactory.java
@@ -105,15 +105,15 @@
/**
* {@inheritDoc}
*/
- public ConnectionFuture<AuthenticatedAsynchronousConnection> getAsynchronousConnection(
- ConnectionResultHandler<? super AuthenticatedAsynchronousConnection> handler)
+ public FutureResult<AuthenticatedAsynchronousConnection> getAsynchronousConnection(
+ ResultHandler<? super AuthenticatedAsynchronousConnection> handler)
{
// TODO: bug here? if allowRebind= false then bind will never
// happen
- ConnectionFutureImpl future = new ConnectionFutureImpl(
+ ResultFutureImpl future = new ResultFutureImpl(
allowRebinds ? request : null, handler);
future.connectFuture = parentFactory
- .getAsynchronousConnection(future);
+ .getAsynchronousConnection(future.connectionHandler);
return future;
}
@@ -279,7 +279,7 @@
- public ResultFuture<Result> add(AddRequest request,
+ public FutureResult<Result> add(AddRequest request,
ResultHandler<Result> handler)
throws UnsupportedOperationException, IllegalStateException,
NullPointerException
@@ -303,7 +303,7 @@
* connections. This method will always throw {@code
* UnsupportedOperationException}.
*/
- public ResultFuture<BindResult> bind(BindRequest request,
+ public FutureResult<BindResult> bind(BindRequest request,
ResultHandler<? super BindResult> handler)
throws UnsupportedOperationException, IllegalStateException,
NullPointerException
@@ -328,7 +328,7 @@
- public ResultFuture<CompareResult> compare(CompareRequest request,
+ public FutureResult<CompareResult> compare(CompareRequest request,
ResultHandler<? super CompareResult> handler)
throws UnsupportedOperationException, IllegalStateException,
NullPointerException
@@ -338,7 +338,7 @@
- public ResultFuture<Result> delete(DeleteRequest request,
+ public FutureResult<Result> delete(DeleteRequest request,
ResultHandler<Result> handler)
throws UnsupportedOperationException, IllegalStateException,
NullPointerException
@@ -348,7 +348,7 @@
- public <R extends Result> ResultFuture<R> extendedRequest(
+ public <R extends Result> FutureResult<R> extendedRequest(
ExtendedRequest<R> request, ResultHandler<? super R> handler)
throws UnsupportedOperationException, IllegalStateException,
NullPointerException
@@ -358,7 +358,7 @@
- public ResultFuture<Result> modify(ModifyRequest request,
+ public FutureResult<Result> modify(ModifyRequest request,
ResultHandler<Result> handler)
throws UnsupportedOperationException, IllegalStateException,
NullPointerException
@@ -368,7 +368,7 @@
- public ResultFuture<Result> modifyDN(ModifyDNRequest request,
+ public FutureResult<Result> modifyDN(ModifyDNRequest request,
ResultHandler<Result> handler)
throws UnsupportedOperationException, IllegalStateException,
NullPointerException
@@ -394,7 +394,7 @@
* If this connection has already been closed, i.e. if
* {@code isClosed() == true}.
*/
- public ResultFuture<BindResult> rebind(
+ public FutureResult<BindResult> rebind(
ResultHandler<? super BindResult> handler)
throws UnsupportedOperationException, IllegalStateException
{
@@ -450,7 +450,7 @@
- public ResultFuture<Result> search(SearchRequest request,
+ public FutureResult<Result> search(SearchRequest request,
ResultHandler<Result> resultHandler,
SearchResultHandler searchResulthandler)
throws UnsupportedOperationException, IllegalStateException,
@@ -475,7 +475,7 @@
/**
* {@inheritDoc}
*/
- public ResultFuture<RootDSE> readRootDSE(
+ public FutureResult<RootDSE> readRootDSE(
ResultHandler<RootDSE> handler)
throws UnsupportedOperationException, IllegalStateException
{
@@ -487,7 +487,7 @@
/**
* {@inheritDoc}
*/
- public ResultFuture<SearchResultEntry> readEntry(DN name,
+ public FutureResult<SearchResultEntry> readEntry(DN name,
Collection<String> attributeDescriptions,
ResultHandler<? super SearchResultEntry> resultHandler)
throws UnsupportedOperationException, IllegalStateException,
@@ -502,7 +502,7 @@
/**
* {@inheritDoc}
*/
- public ResultFuture<SearchResultEntry> searchSingleEntry(
+ public FutureResult<SearchResultEntry> searchSingleEntry(
SearchRequest request,
ResultHandler<? super SearchResultEntry> resultHandler)
throws UnsupportedOperationException, IllegalStateException,
@@ -516,7 +516,7 @@
/**
* {@inheritDoc}
*/
- public ResultFuture<Schema> readSchemaForEntry(DN name,
+ public FutureResult<Schema> readSchemaForEntry(DN name,
ResultHandler<Schema> handler)
throws UnsupportedOperationException, IllegalStateException
{
@@ -528,7 +528,7 @@
/**
* {@inheritDoc}
*/
- public ResultFuture<Schema> readSchema(DN name,
+ public FutureResult<Schema> readSchema(DN name,
ResultHandler<Schema> handler)
throws UnsupportedOperationException, IllegalStateException
{
@@ -560,24 +560,86 @@
- private static final class ConnectionFutureImpl implements
- ConnectionFuture<AuthenticatedAsynchronousConnection>,
- ConnectionResultHandler<AsynchronousConnection>,
- ResultHandler<BindResult>
+ private static final class ResultFutureImpl implements
+ FutureResult<AuthenticatedAsynchronousConnection>
{
+ private final class ConnectionResultHandler implements
+ ResultHandler<AsynchronousConnection>
+ {
+ public void handleResult(AsynchronousConnection conn)
+ {
+ connection = conn;
+ bindFuture = connection.bind(request, bindHandler);
+ }
+
+
+
+ public void handleErrorResult(ErrorResultException error)
+ {
+ exception = error;
+ latch.countDown();
+ }
+ }
+
+
+
+ private final class BindRequestResultHandler implements
+ ResultHandler<BindResult>
+ {
+ public void handleResult(BindResult result)
+ {
+ // FIXME: should make the result unmodifiable.
+ authenticatedConnection = new AuthenticatedAsynchronousConnection(
+ connection, request, result);
+ latch.countDown();
+ if (handler != null)
+ {
+ handler.handleResult(authenticatedConnection);
+ }
+ }
+
+
+
+ public void handleErrorResult(ErrorResultException error)
+ {
+ // Ensure that the connection is closed.
+ try
+ {
+ connection.close();
+ }
+ catch (Exception e)
+ {
+ // Ignore.
+ }
+
+ exception = error;
+ latch.countDown();
+ if (handler != null)
+ {
+ handler.handleErrorResult(exception);
+ }
+ }
+ }
+
+
+
+ private final ResultHandler<BindResult> bindHandler = new BindRequestResultHandler();
+
+ private final ResultHandler<AsynchronousConnection> connectionHandler = new ConnectionResultHandler();
+
private volatile AuthenticatedAsynchronousConnection authenticatedConnection;
private volatile AsynchronousConnection connection;
private volatile ErrorResultException exception;
- private volatile ConnectionFuture<?> connectFuture;
+ private volatile FutureResult<?> connectFuture;
- private volatile ResultFuture<BindResult> bindFuture;
+ private volatile FutureResult<BindResult> bindFuture;
private final CountDownLatch latch = new CountDownLatch(1);
- private final ConnectionResultHandler<? super AuthenticatedAsynchronousConnection> handler;
+ private final ResultHandler<? super AuthenticatedAsynchronousConnection> handler;
private boolean cancelled;
@@ -585,9 +647,9 @@
- private ConnectionFutureImpl(
+ private ResultFutureImpl(
BindRequest request,
- ConnectionResultHandler<? super AuthenticatedAsynchronousConnection> handler)
+ ResultHandler<? super AuthenticatedAsynchronousConnection> handler)
{
this.request = request;
this.handler = handler;
@@ -658,55 +720,11 @@
- public void handleConnection(AsynchronousConnection connection)
+ public int getRequestID()
{
- this.connection = connection;
- this.bindFuture = this.connection.bind(request, this);
+ return -1;
}
-
-
- public void handleConnectionError(ErrorResultException error)
- {
- exception = error;
- latch.countDown();
- }
-
-
-
- public void handleResult(BindResult result)
- {
- // FIXME: should make the result unmodifiable.
- authenticatedConnection = new AuthenticatedAsynchronousConnection(
- connection, request, result);
- latch.countDown();
- if (handler != null)
- {
- handler.handleConnection(authenticatedConnection);
- }
- }
-
-
-
- public void handleErrorResult(ErrorResultException error)
- {
- // Ensure that the connection is closed.
- try
- {
- connection.close();
- }
- catch (Exception e)
- {
- // Ignore.
- }
-
- exception = error;
- latch.countDown();
- if (handler != null)
- {
- handler.handleConnectionError(exception);
- }
- }
}
@@ -751,8 +769,8 @@
- public ConnectionFuture<AuthenticatedAsynchronousConnection> getAsynchronousConnection(
- ConnectionResultHandler<? super AuthenticatedAsynchronousConnection> handler)
+ public FutureResult<AuthenticatedAsynchronousConnection> getAsynchronousConnection(
+ ResultHandler<? super AuthenticatedAsynchronousConnection> handler)
{
return impl.getAsynchronousConnection(handler);
}
--
Gitblit v1.10.0