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.entity.mime;
29
30 import java.util.ArrayList;
31 import java.util.Collections;
32 import java.util.List;
33
34 import org.apache.hc.core5.http.NameValuePair;
35
36
37
38
39
40
41 public class MimeField {
42
43 private final String name;
44 private final String value;
45 private final List<NameValuePair> parameters;
46
47 public MimeField(final String name, final String value) {
48 super();
49 this.name = name;
50 this.value = value;
51 this.parameters = Collections.emptyList();
52 }
53
54
55
56
57 public MimeField(final String name, final String value, final List<NameValuePair> parameters) {
58 this.name = name;
59 this.value = value;
60 this.parameters = parameters != null ?
61 Collections.unmodifiableList(new ArrayList<>(parameters)) : Collections.<NameValuePair>emptyList();
62 }
63
64 public MimeFieldlient5/http/entity/mime/MimeField.html#MimeField">MimeField(final MimeField from) {
65 this(from.name, from.value, from.parameters);
66 }
67
68 public String getName() {
69 return this.name;
70 }
71
72
73
74
75 public String getValue() {
76 return this.value;
77 }
78
79 public String getBody() {
80 final StringBuilder sb = new StringBuilder();
81 sb.append(this.value);
82 for (int i = 0; i < this.parameters.size(); i++) {
83 final NameValuePair parameter = this.parameters.get(i);
84 sb.append("; ");
85 sb.append(parameter.getName());
86 sb.append("=\"");
87 final String v = parameter.getValue();
88 for (int n = 0; n < v.length(); n++) {
89 final char ch = v.charAt(n);
90 if (ch == '"' || ch == '\\' ) {
91 sb.append("\\");
92 }
93 sb.append(ch);
94 }
95 sb.append("\"");
96 }
97 return sb.toString();
98 }
99
100 public List<NameValuePair> getParameters() {
101 return this.parameters;
102 }
103
104 @Override
105 public String toString() {
106 final StringBuilder buffer = new StringBuilder();
107 buffer.append(this.name);
108 buffer.append(": ");
109 buffer.append(this.getBody());
110 return buffer.toString();
111 }
112
113 }