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 AsyncServerFilterChainElementncServerFilterChainElement(final AsyncFilterHandler handler, final AsyncServerFilterChainElement next) {
52 this.handler = handler;
53 this.next = next;
54 this.filterChain = new AsyncFilterChain() {
55
56 @Override
57 public AsyncDataConsumer proceed(
58 final HttpRequest request,
59 final EntityDetails entityDetails,
60 final HttpContext context,
61 final ResponseTrigger responseTrigger) throws HttpException, IOException {
62 return next.handle(request, entityDetails, context, responseTrigger);
63 }
64
65 };
66 }
67
68 public AsyncDataConsumer handle(
69 final HttpRequest request,
70 final EntityDetails entityDetails,
71 final HttpContext context,
72 final AsyncFilterChain.ResponseTrigger responseTrigger) throws HttpException, IOException {
73 return handler.handle(request, entityDetails, context, responseTrigger, filterChain);
74 }
75
76 @Override
77 public String toString() {
78 return "{" +
79 "handler=" + handler.getClass() +
80 ", next=" + (next != null ? next.handler.getClass() : "null") +
81 '}';
82 }
83
84 }