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
28 package org.apache.hc.core5.http.nio.support;
29
30 import java.io.IOException;
31
32 import org.apache.hc.core5.http.EntityDetails;
33 import org.apache.hc.core5.http.HttpException;
34 import org.apache.hc.core5.http.HttpRequest;
35 import org.apache.hc.core5.http.nio.AsyncDataConsumer;
36 import org.apache.hc.core5.http.nio.AsyncFilterChain;
37 import org.apache.hc.core5.http.nio.AsyncFilterHandler;
38 import org.apache.hc.core5.http.protocol.HttpContext;
39
40
41
42
43
44
45 public final class AsyncServerFilterChainElement {
46
47 private final AsyncFilterHandler handler;
48 private final AsyncServerFilterChainElement next;
49 private final AsyncFilterChain filterChain;
50
51 public AsyncServerFilterChainElement(final AsyncFilterHandler handler, final AsyncServerFilterChainElement next) {
52 this.handler = handler;
53 this.next = next;
54 this.filterChain = next != null ? next::handle : null;
55 }
56
57 public AsyncDataConsumer handle(
58 final HttpRequest request,
59 final EntityDetails entityDetails,
60 final HttpContext context,
61 final AsyncFilterChain.ResponseTrigger responseTrigger) throws HttpException, IOException {
62 return handler.handle(request, entityDetails, context, responseTrigger, filterChain);
63 }
64
65 @Override
66 public String toString() {
67 return "{" +
68 "handler=" + handler.getClass() +
69 ", next=" + (next != null ? next.handler.getClass() : "null") +
70 '}';
71 }
72
73 }