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;
29
30 import java.util.Collections;
31 import java.util.Set;
32
33 import org.apache.hc.core5.annotation.Internal;
34 import org.apache.hc.core5.http.EntityDetails;
35 import org.apache.hc.core5.http.Header;
36 import org.apache.hc.core5.http.HttpHeaders;
37 import org.apache.hc.core5.http.MessageHeaders;
38 import org.apache.hc.core5.http.message.MessageSupport;
39 import org.apache.hc.core5.util.Args;
40
41
42
43
44
45
46 @Internal
47 public class IncomingEntityDetails implements EntityDetails {
48
49 private final MessageHeaders message;
50 private final long contentLength;
51
52 public IncomingEntityDetails(final MessageHeaders message, final long contentLength) {
53 this.message = Args.notNull(message, "Message");
54 this.contentLength = contentLength;
55 }
56
57 public IncomingEntityDetails(final MessageHeaders message) {
58 this(message, -1);
59 }
60
61 @Override
62 public long getContentLength() {
63 return contentLength;
64 }
65
66 @Override
67 public String getContentType() {
68 final Header h = message.getFirstHeader(HttpHeaders.CONTENT_TYPE);
69 return h != null ? h.getValue() : null;
70 }
71
72 @Override
73 public String getContentEncoding() {
74 final Header h = message.getFirstHeader(HttpHeaders.CONTENT_ENCODING);
75 return h != null ? h.getValue() : null;
76 }
77
78 @Override
79 public boolean isChunked() {
80 return contentLength < 0;
81 }
82
83 @Override
84 public Set<String> getTrailerNames() {
85 final Header h = message.getFirstHeader(HttpHeaders.TRAILER);
86 if (h == null) {
87 return Collections.emptySet();
88 }
89 return MessageSupport.parseTokens(h);
90 }
91
92 }