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.client5.http.impl.io;
29
30 import org.apache.hc.core5.annotation.Contract;
31 import org.apache.hc.core5.annotation.ThreadingBehavior;
32 import org.apache.hc.core5.http.ClassicHttpResponse;
33 import org.apache.hc.core5.http.HttpResponseFactory;
34 import org.apache.hc.core5.http.config.Http1Config;
35 import org.apache.hc.core5.http.impl.io.DefaultClassicHttpResponseFactory;
36 import org.apache.hc.core5.http.io.HttpMessageParser;
37 import org.apache.hc.core5.http.io.HttpMessageParserFactory;
38 import org.apache.hc.core5.http.message.BasicLineParser;
39 import org.apache.hc.core5.http.message.LineParser;
40
41
42
43
44
45
46 @Contract(threading = ThreadingBehavior.STATELESS)
47 public class DefaultHttpResponseParserFactory implements HttpMessageParserFactory<ClassicHttpResponse> {
48
49
50
51
52 public static final DefaultHttpResponseParserFactory INSTANCE = new DefaultHttpResponseParserFactory();
53
54 private final Http1Config h1Config;
55 private final LineParser lineParser;
56 private final HttpResponseFactory<ClassicHttpResponse> responseFactory;
57
58
59
60
61 public DefaultHttpResponseParserFactory(
62 final Http1Config h1Config,
63 final LineParser lineParser,
64 final HttpResponseFactory<ClassicHttpResponse> responseFactory) {
65 super();
66 this.h1Config = h1Config != null ? h1Config : Http1Config.DEFAULT;
67 this.lineParser = lineParser != null ? lineParser : BasicLineParser.INSTANCE;
68 this.responseFactory = responseFactory != null ? responseFactory : DefaultClassicHttpResponseFactory.INSTANCE;
69 }
70
71
72
73
74 public DefaultHttpResponseParserFactory(final Http1Config h1Config) {
75 this(h1Config, null, null);
76 }
77
78 public DefaultHttpResponseParserFactory(
79 final LineParser lineParser,
80 final HttpResponseFactory<ClassicHttpResponse> responseFactory) {
81 this(null, lineParser, responseFactory);
82 }
83
84 public DefaultHttpResponseParserFactory(final HttpResponseFactory<ClassicHttpResponse> responseFactory) {
85 this(null, null, responseFactory);
86 }
87
88 public DefaultHttpResponseParserFactory() {
89 this(null, null, null);
90 }
91
92 @Override
93 public HttpMessageParser<ClassicHttpResponse> create() {
94 return new LenientHttpResponseParser(this.lineParser, this.responseFactory, h1Config);
95 }
96
97
98
99
100 @Deprecated
101 @Override
102 public HttpMessageParser<ClassicHttpResponse> create(final Http1Config h1Config) {
103 return new LenientHttpResponseParser(this.lineParser, this.responseFactory, h1Config);
104 }
105
106 }