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.impl.nio;
29
30 import org.apache.hc.core5.annotation.Contract;
31 import org.apache.hc.core5.annotation.ThreadingBehavior;
32 import org.apache.hc.core5.http.HttpRequest;
33 import org.apache.hc.core5.http.HttpRequestFactory;
34 import org.apache.hc.core5.http.config.Http1Config;
35 import org.apache.hc.core5.http.message.LazyLineParser;
36 import org.apache.hc.core5.http.message.LineParser;
37 import org.apache.hc.core5.http.nio.NHttpMessageParser;
38 import org.apache.hc.core5.http.nio.NHttpMessageParserFactory;
39
40
41
42
43
44
45 @Contract(threading = ThreadingBehavior.IMMUTABLE_CONDITIONAL)
46 public class DefaultHttpRequestParserFactory implements NHttpMessageParserFactory<HttpRequest> {
47
48 public static final DefaultHttpRequestParserFactoryequestParserFactory.html#DefaultHttpRequestParserFactory">DefaultHttpRequestParserFactory INSTANCE = new DefaultHttpRequestParserFactory();
49
50 private final Http1Config http1Config;
51 private final LineParser lineParser;
52 private final HttpRequestFactory<HttpRequest> requestFactory;
53
54 public DefaultHttpRequestParserFactory(
55 final Http1Config http1Config,
56 final HttpRequestFactory<HttpRequest> requestFactory,
57 final LineParser lineParser) {
58 super();
59 this.http1Config = http1Config != null ? http1Config : Http1Config.DEFAULT;
60 this.requestFactory = requestFactory != null ? requestFactory : DefaultHttpRequestFactory.INSTANCE;
61 this.lineParser = lineParser != null ? lineParser : LazyLineParser.INSTANCE;
62 }
63
64 public DefaultHttpRequestParserFactory(final Http1Config http1Config) {
65 this(http1Config, null, null);
66 }
67
68 public DefaultHttpRequestParserFactory() {
69 this(null);
70 }
71
72 @Override
73 public NHttpMessageParser<HttpRequest> create() {
74 return new DefaultHttpRequestParser<>(requestFactory, lineParser, http1Config);
75 }
76
77 }