1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 package org.apache.hc.core5.testing.nio;
28
29 import org.apache.hc.core5.function.Supplier;
30 import org.apache.hc.core5.http.EntityDetails;
31 import org.apache.hc.core5.http.HttpException;
32 import org.apache.hc.core5.http.HttpRequest;
33 import org.apache.hc.core5.http.Message;
34 import org.apache.hc.core5.http.nio.AsyncEntityConsumer;
35 import org.apache.hc.core5.http.nio.AsyncRequestConsumer;
36 import org.apache.hc.core5.http.nio.support.BasicRequestConsumer;
37 import org.apache.hc.core5.http.nio.support.AbstractServerExchangeHandler;
38 import org.apache.hc.core5.http.protocol.HttpContext;
39
40
41
42
43 public abstract class MessageExchangeHandler<T> extends AbstractServerExchangeHandler<Message<HttpRequest, T>> {
44
45 private final AsyncRequestConsumer<Message<HttpRequest, T>> requestConsumer;
46
47 public MessageExchangeHandler(final AsyncRequestConsumer<Message<HttpRequest, T>> requestConsumer) {
48 super();
49 this.requestConsumer = requestConsumer;
50 }
51
52 public MessageExchangeHandler(final Supplier<AsyncEntityConsumer<T>> dataConsumerSupplier) {
53 this(new BasicRequestConsumer<>(dataConsumerSupplier));
54 }
55
56 public MessageExchangeHandler(final AsyncEntityConsumer<T> entityConsumer) {
57 this(new BasicRequestConsumer<>(entityConsumer));
58 }
59
60 @Override
61 protected AsyncRequestConsumer<Message<HttpRequest, T>> supplyConsumer(
62 final HttpRequest request,
63 final EntityDetails entityDetails,
64 final HttpContext context) throws HttpException {
65 return requestConsumer;
66 }
67
68 }