From d28b40a9868880bfeb999250eb7ca6fc731e6a87 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Tue, 28 Jun 2016 21:19:00 +0000
Subject: [PATCH] OPENDJ-3186 Improve API version support in admin and rest2ldap endpoints
---
opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/AbstractRequestHandler.java | 39 ++++++++++++++++++++++++++-------------
1 files changed, 26 insertions(+), 13 deletions(-)
diff --git a/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/AbstractRequestHandler.java b/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/AbstractRequestHandler.java
index b0f427b..338a155 100644
--- a/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/AbstractRequestHandler.java
+++ b/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/AbstractRequestHandler.java
@@ -25,6 +25,7 @@
import org.forgerock.json.resource.QueryResourceHandler;
import org.forgerock.json.resource.QueryResponse;
import org.forgerock.json.resource.ReadRequest;
+import org.forgerock.json.resource.Request;
import org.forgerock.json.resource.RequestHandler;
import org.forgerock.json.resource.ResourceException;
import org.forgerock.json.resource.ResourceResponse;
@@ -34,51 +35,63 @@
/**
* An abstract base class from which request handlers may be easily implemented. The default implementation of each
- * method is to return the {@link ResourceException} passed in during construction.
+ * method is to invoke the {@link #handleRequest(Context, Request)} method.
*/
-abstract class AbstractRequestHandler implements RequestHandler {
- private final ResourceException defaultErrorResponse;
-
- AbstractRequestHandler(final ResourceException defaultErrorResponse) {
- this.defaultErrorResponse = defaultErrorResponse;
+public abstract class AbstractRequestHandler implements RequestHandler {
+ /** Creates a new {@code AbstractRequestHandler}. */
+ protected AbstractRequestHandler() {
+ // Nothing to do.
}
@Override
public Promise<ActionResponse, ResourceException> handleAction(final Context context, final ActionRequest request) {
- return defaultErrorResponse.asPromise();
+ return handleRequest(context, request);
}
@Override
public Promise<ResourceResponse, ResourceException> handleCreate(final Context context,
final CreateRequest request) {
- return defaultErrorResponse.asPromise();
+ return handleRequest(context, request);
}
@Override
public Promise<ResourceResponse, ResourceException> handleDelete(final Context context,
final DeleteRequest request) {
- return defaultErrorResponse.asPromise();
+ return handleRequest(context, request);
}
@Override
public Promise<ResourceResponse, ResourceException> handlePatch(final Context context, final PatchRequest request) {
- return defaultErrorResponse.asPromise();
+ return handleRequest(context, request);
}
@Override
public Promise<QueryResponse, ResourceException> handleQuery(final Context context, final QueryRequest request,
final QueryResourceHandler handler) {
- return defaultErrorResponse.asPromise();
+ return handleRequest(context, request);
}
@Override
public Promise<ResourceResponse, ResourceException> handleRead(final Context context, final ReadRequest request) {
- return defaultErrorResponse.asPromise();
+ return handleRequest(context, request);
}
@Override
public Promise<ResourceResponse, ResourceException> handleUpdate(final Context context,
final UpdateRequest request) {
- return defaultErrorResponse.asPromise();
+ return handleRequest(context, request);
}
+
+ /**
+ * Implement this method in order to provide a default behavior when processing requests.
+ *
+ * @param <V>
+ * The type of response.
+ * @param context
+ * The request context.
+ * @param request
+ * The request.
+ * @return A {@code Promise} containing the result of the operation.
+ */
+ protected abstract <V> Promise<V, ResourceException> handleRequest(final Context context, final Request request);
}
--
Gitblit v1.10.0