You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by se...@apache.org on 2010/12/21 23:25:45 UTC
svn commit: r1051681 - in /httpcomponents/httpclient/trunk/httpmime/src:
main/java/org/apache/http/entity/mime/HttpMultipart.java
main/java/org/apache/http/entity/mime/MultipartEntity.java
test/java/org/apache/http/entity/mime/TestMultipartForm.java
Author: sebb
Date: Tue Dec 21 22:25:45 2010
New Revision: 1051681
URL: http://svn.apache.org/viewvc?rev=1051681&view=rev
Log:
Make mode a final field of HttpMultipart
Modified:
httpcomponents/httpclient/trunk/httpmime/src/main/java/org/apache/http/entity/mime/HttpMultipart.java
httpcomponents/httpclient/trunk/httpmime/src/main/java/org/apache/http/entity/mime/MultipartEntity.java
httpcomponents/httpclient/trunk/httpmime/src/test/java/org/apache/http/entity/mime/TestMultipartForm.java
Modified: httpcomponents/httpclient/trunk/httpmime/src/main/java/org/apache/http/entity/mime/HttpMultipart.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpmime/src/main/java/org/apache/http/entity/mime/HttpMultipart.java?rev=1051681&r1=1051680&r2=1051681&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpmime/src/main/java/org/apache/http/entity/mime/HttpMultipart.java (original)
+++ httpcomponents/httpclient/trunk/httpmime/src/main/java/org/apache/http/entity/mime/HttpMultipart.java Tue Dec 21 22:25:45 2010
@@ -99,9 +99,18 @@ public class HttpMultipart {
private final String boundary;
private final List<FormBodyPart> parts;
- private HttpMultipartMode mode;
+ private final HttpMultipartMode mode;
- public HttpMultipart(final String subType, final Charset charset, final String boundary) {
+ /**
+ * Creates an instance with the specified settings.
+ *
+ * @param subType mime subtype - must not be {@code null}
+ * @param charset the character set to use. May be {@code null}, in which case {@link MIME#DEFAULT_CHARSET} - i.e. US-ASCII - is used.
+ * @param boundary to use - must not be {@code null}
+ * @param mode the mode to use
+ * @throws IllegalArgumentException if charset is null or boundary is null
+ */
+ public HttpMultipart(final String subType, final Charset charset, final String boundary, HttpMultipartMode mode) {
super();
if (subType == null) {
throw new IllegalArgumentException("Multipart subtype may not be null");
@@ -113,7 +122,20 @@ public class HttpMultipart {
this.charset = charset != null ? charset : MIME.DEFAULT_CHARSET;
this.boundary = boundary;
this.parts = new ArrayList<FormBodyPart>();
- this.mode = HttpMultipartMode.STRICT;
+ this.mode = mode;
+ }
+
+ /**
+ * Creates an instance with the specified settings.
+ * Mode is set to {@link HttpMultipartMode#STRICT}
+ *
+ * @param subType mime subtype - must not be {@code null}
+ * @param charset the character set to use. May be {@code null}, in which case {@link MIME#DEFAULT_CHARSET} - i.e. US-ASCII - is used.
+ * @param boundary to use - must not be {@code null}
+ * @throws IllegalArgumentException if charset is null or boundary is null
+ */
+ public HttpMultipart(final String subType, final Charset charset, final String boundary) {
+ this(subType, charset, boundary, HttpMultipartMode.STRICT);
}
public HttpMultipart(final String subType, final String boundary) {
@@ -132,10 +154,6 @@ public class HttpMultipart {
return this.mode;
}
- public void setMode(final HttpMultipartMode mode) {
- this.mode = mode;
- }
-
public List<FormBodyPart> getBodyParts() {
return this.parts;
}
Modified: httpcomponents/httpclient/trunk/httpmime/src/main/java/org/apache/http/entity/mime/MultipartEntity.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpmime/src/main/java/org/apache/http/entity/mime/MultipartEntity.java?rev=1051681&r1=1051680&r2=1051681&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpmime/src/main/java/org/apache/http/entity/mime/MultipartEntity.java (original)
+++ httpcomponents/httpclient/trunk/httpmime/src/main/java/org/apache/http/entity/mime/MultipartEntity.java Tue Dec 21 22:25:45 2010
@@ -60,6 +60,12 @@ public class MultipartEntity implements
private long length;
private volatile boolean dirty; // used to decide whether to recalculate length
+ /**
+ * Creates an instance using the specified parameters
+ * @param mode the mode to use, may be {@code null}, in which case {@link HttpMultipartMode#STRICT} is used
+ * @param boundary the boundary string, may be {@code null}, in which case {@link #generateBoundary()} is invoked to create the string
+ * @param charset the character set to use, may be {@code null}, in which case {@link MIME#DEFAULT_CHARSET} - i.e. US-ASCII - is used.
+ */
public MultipartEntity(
HttpMultipartMode mode,
String boundary,
@@ -68,21 +74,28 @@ public class MultipartEntity implements
if (boundary == null) {
boundary = generateBoundary();
}
- this.multipart = new HttpMultipart("form-data", charset, boundary);
+ if (mode == null) {
+ mode = HttpMultipartMode.STRICT;
+ }
+ this.multipart = new HttpMultipart("form-data", charset, boundary, mode);
this.contentType = new BasicHeader(
HTTP.CONTENT_TYPE,
generateContentType(boundary, charset));
this.dirty = true;
- if (mode == null) {
- mode = HttpMultipartMode.STRICT;
- }
- this.multipart.setMode(mode);
}
+ /**
+ * Creates an instance using the specified {@link HttpMultipartMode} mode.
+ * Boundary and charset are set to {@code null}.
+ * @param mode the desired mode
+ */
public MultipartEntity(final HttpMultipartMode mode) {
this(mode, null, null);
}
+ /**
+ * Creates an instance using mode {@link HttpMultipartMode#STRICT}
+ */
public MultipartEntity() {
this(HttpMultipartMode.STRICT, null, null);
}
Modified: httpcomponents/httpclient/trunk/httpmime/src/test/java/org/apache/http/entity/mime/TestMultipartForm.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpmime/src/test/java/org/apache/http/entity/mime/TestMultipartForm.java?rev=1051681&r1=1051680&r2=1051681&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpmime/src/test/java/org/apache/http/entity/mime/TestMultipartForm.java (original)
+++ httpcomponents/httpclient/trunk/httpmime/src/test/java/org/apache/http/entity/mime/TestMultipartForm.java Tue Dec 21 22:25:45 2010
@@ -151,7 +151,7 @@ public class TestMultipartForm {
writer.close();
}
- HttpMultipart multipart = new HttpMultipart("form-data", "foo");
+ HttpMultipart multipart = new HttpMultipart("form-data", null, "foo", HttpMultipartMode.STRICT);
FormBodyPart p1 = new FormBodyPart(
"field1",
new FileBody(tmpfile));
@@ -166,8 +166,6 @@ public class TestMultipartForm {
multipart.addBodyPart(p2);
multipart.addBodyPart(p3);
- multipart.setMode(HttpMultipartMode.STRICT);
-
ByteArrayOutputStream out = new ByteArrayOutputStream();
multipart.writeTo(out);
out.close();
@@ -235,7 +233,7 @@ public class TestMultipartForm {
writer.close();
}
- HttpMultipart multipart = new HttpMultipart("form-data", Charset.forName("UTF-8"), "foo");
+ HttpMultipart multipart = new HttpMultipart("form-data", Charset.forName("UTF-8"), "foo", HttpMultipartMode.BROWSER_COMPATIBLE);
FormBodyPart p1 = new FormBodyPart(
"field1",
new InputStreamBody(new FileInputStream(tmpfile), s1 + ".tmp"));
@@ -246,8 +244,6 @@ public class TestMultipartForm {
multipart.addBodyPart(p1);
multipart.addBodyPart(p2);
- multipart.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
-
ByteArrayOutputStream out = new ByteArrayOutputStream();
multipart.writeTo(out);
out.close();