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 org.forgerock.api.models.ApiDescription;
20 import org.forgerock.http.ApiProducer;
21 import org.forgerock.services.context.Context;
22 import org.forgerock.services.descriptor.Describable;
23
24
25
26
27 public class DescribedSyncRequestHandlerAdapter extends SynchronousRequestHandlerAdapter
28 implements Describable<ApiDescription, Request> {
29
30 private final Describable<ApiDescription, Request> described;
31
32 @SuppressWarnings("unchecked")
33 DescribedSyncRequestHandlerAdapter(SynchronousRequestHandler syncHandler) {
34 super(syncHandler);
35 if (!(syncHandler instanceof Describable)) {
36 throw new IllegalArgumentException("Handler must be Describable");
37 }
38 this.described = (Describable<ApiDescription, Request>) syncHandler;
39 }
40
41 @Override
42 public ApiDescription api(ApiProducer<ApiDescription> producer) {
43 return described.api(producer);
44 }
45
46 @Override
47 public ApiDescription handleApiRequest(Context context, Request request) {
48 return described.handleApiRequest(context, request);
49 }
50
51 @Override
52 public void addDescriptorListener(Describable.Listener listener) {
53 described.addDescriptorListener(listener);
54 }
55
56 @Override
57 public void removeDescriptorListener(Describable.Listener listener) {
58 described.removeDescriptorListener(listener);
59 }
60 }