1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.forgerock.json.resource;
18
19 import static org.forgerock.util.promise.Promises.*;
20
21 import org.forgerock.services.context.Context;
22 import org.forgerock.util.promise.Promise;
23
24 class InterfaceCollectionHandler implements RequestHandler {
25 private final CollectionResourceProvider provider;
26
27 InterfaceCollectionHandler(final CollectionResourceProvider provider) {
28 this.provider = provider;
29 }
30
31 @Override
32 public Promise<ActionResponse, ResourceException> handleAction(final Context context,
33 final ActionRequest request) {
34 return provider.actionCollection(Resources.parentOf(context), request);
35 }
36
37 @Override
38 public Promise<ResourceResponse, ResourceException> handleCreate(final Context context,
39 final CreateRequest request) {
40 return provider.createInstance(Resources.parentOf(context), request);
41 }
42
43 @Override
44 public final Promise<ResourceResponse, ResourceException> handleDelete(final Context context,
45 final DeleteRequest request) {
46
47 return newExceptionPromise(Resources.newBadRequestException(
48 "The resource collection %s cannot be deleted", request.getResourcePath()));
49 }
50
51 @Override
52 public final Promise<ResourceResponse, ResourceException> handlePatch(final Context context,
53 final PatchRequest request) {
54
55 return newExceptionPromise(Resources.newBadRequestException(
56 "The resource collection %s cannot be patched", request.getResourcePath()));
57 }
58
59 @Override
60 public Promise<QueryResponse, ResourceException> handleQuery(final Context context,
61 final QueryRequest request, final QueryResourceHandler handler) {
62 return provider.queryCollection(Resources.parentOf(context), request, handler);
63 }
64
65 @Override
66 public final Promise<ResourceResponse, ResourceException> handleRead(final Context context,
67 final ReadRequest request) {
68
69 return newExceptionPromise(Resources.newBadRequestException(
70 "The resource collection %s cannot be read", request.getResourcePath()));
71 }
72
73 @Override
74 public final Promise<ResourceResponse, ResourceException> handleUpdate(final Context context,
75 final UpdateRequest request) {
76
77 return newExceptionPromise(Resources.newBadRequestException(
78 "The resource collection %s cannot be updated", request.getResourcePath()));
79 }
80
81 }