summaryrefslogtreecommitdiffstats
path: root/mobile/android/thirdparty/ch/boye/httpclientandroidlib/entity/mime/MultipartEntityBuilder.java
diff options
context:
space:
mode:
Diffstat (limited to 'mobile/android/thirdparty/ch/boye/httpclientandroidlib/entity/mime/MultipartEntityBuilder.java')
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/entity/mime/MultipartEntityBuilder.java207
1 files changed, 0 insertions, 207 deletions
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/entity/mime/MultipartEntityBuilder.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/entity/mime/MultipartEntityBuilder.java
deleted file mode 100644
index 5074001d7..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/entity/mime/MultipartEntityBuilder.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.entity.mime;
-
-import java.io.File;
-import java.io.InputStream;
-import java.nio.charset.Charset;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Random;
-
-import ch.boye.httpclientandroidlib.HttpEntity;
-import ch.boye.httpclientandroidlib.entity.ContentType;
-import ch.boye.httpclientandroidlib.entity.mime.content.ByteArrayBody;
-import ch.boye.httpclientandroidlib.entity.mime.content.ContentBody;
-import ch.boye.httpclientandroidlib.entity.mime.content.FileBody;
-import ch.boye.httpclientandroidlib.entity.mime.content.InputStreamBody;
-import ch.boye.httpclientandroidlib.entity.mime.content.StringBody;
-import ch.boye.httpclientandroidlib.util.Args;
-
-/**
- * Builder for multipart {@link HttpEntity}s.
- *
- * @since 4.3
- */
-public class MultipartEntityBuilder {
-
- /**
- * The pool of ASCII chars to be used for generating a multipart boundary.
- */
- private final static char[] MULTIPART_CHARS =
- "-_1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
- .toCharArray();
-
- private final static String DEFAULT_SUBTYPE = "form-data";
-
- private String subType = DEFAULT_SUBTYPE;
- private HttpMultipartMode mode = HttpMultipartMode.STRICT;
- private String boundary = null;
- private Charset charset = null;
- private List<FormBodyPart> bodyParts = null;
-
- public static MultipartEntityBuilder create() {
- return new MultipartEntityBuilder();
- }
-
- MultipartEntityBuilder() {
- super();
- }
-
- public MultipartEntityBuilder setMode(final HttpMultipartMode mode) {
- this.mode = mode;
- return this;
- }
-
- public MultipartEntityBuilder setLaxMode() {
- this.mode = HttpMultipartMode.BROWSER_COMPATIBLE;
- return this;
- }
-
- public MultipartEntityBuilder setStrictMode() {
- this.mode = HttpMultipartMode.STRICT;
- return this;
- }
-
- public MultipartEntityBuilder setBoundary(final String boundary) {
- this.boundary = boundary;
- return this;
- }
-
- public MultipartEntityBuilder setCharset(final Charset charset) {
- this.charset = charset;
- return this;
- }
-
- MultipartEntityBuilder addPart(final FormBodyPart bodyPart) {
- if (bodyPart == null) {
- return this;
- }
- if (this.bodyParts == null) {
- this.bodyParts = new ArrayList<FormBodyPart>();
- }
- this.bodyParts.add(bodyPart);
- return this;
- }
-
- public MultipartEntityBuilder addPart(final String name, final ContentBody contentBody) {
- Args.notNull(name, "Name");
- Args.notNull(contentBody, "Content body");
- return addPart(new FormBodyPart(name, contentBody));
- }
-
- public MultipartEntityBuilder addTextBody(
- final String name, final String text, final ContentType contentType) {
- return addPart(name, new StringBody(text, contentType));
- }
-
- public MultipartEntityBuilder addTextBody(
- final String name, final String text) {
- return addTextBody(name, text, ContentType.DEFAULT_TEXT);
- }
-
- public MultipartEntityBuilder addBinaryBody(
- final String name, final byte[] b, final ContentType contentType, final String filename) {
- return addPart(name, new ByteArrayBody(b, contentType, filename));
- }
-
- public MultipartEntityBuilder addBinaryBody(
- final String name, final byte[] b) {
- return addBinaryBody(name, b, ContentType.DEFAULT_BINARY, null);
- }
-
- public MultipartEntityBuilder addBinaryBody(
- final String name, final File file, final ContentType contentType, final String filename) {
- return addPart(name, new FileBody(file, contentType, filename));
- }
-
- public MultipartEntityBuilder addBinaryBody(
- final String name, final File file) {
- return addBinaryBody(name, file, ContentType.DEFAULT_BINARY, file != null ? file.getName() : null);
- }
-
- public MultipartEntityBuilder addBinaryBody(
- final String name, final InputStream stream, final ContentType contentType,
- final String filename) {
- return addPart(name, new InputStreamBody(stream, contentType, filename));
- }
-
- public MultipartEntityBuilder addBinaryBody(final String name, final InputStream stream) {
- return addBinaryBody(name, stream, ContentType.DEFAULT_BINARY, null);
- }
-
- private String generateContentType(
- final String boundary,
- final Charset charset) {
- final StringBuilder buffer = new StringBuilder();
- buffer.append("multipart/form-data; boundary=");
- buffer.append(boundary);
- if (charset != null) {
- buffer.append("; charset=");
- buffer.append(charset.name());
- }
- return buffer.toString();
- }
-
- private String generateBoundary() {
- final StringBuilder buffer = new StringBuilder();
- final Random rand = new Random();
- final int count = rand.nextInt(11) + 30; // a random size from 30 to 40
- for (int i = 0; i < count; i++) {
- buffer.append(MULTIPART_CHARS[rand.nextInt(MULTIPART_CHARS.length)]);
- }
- return buffer.toString();
- }
-
- MultipartFormEntity buildEntity() {
- final String st = subType != null ? subType : DEFAULT_SUBTYPE;
- final Charset cs = charset;
- final String b = boundary != null ? boundary : generateBoundary();
- final List<FormBodyPart> bps = bodyParts != null ? new ArrayList<FormBodyPart>(bodyParts) :
- Collections.<FormBodyPart>emptyList();
- final HttpMultipartMode m = mode != null ? mode : HttpMultipartMode.STRICT;
- final AbstractMultipartForm form;
- switch (m) {
- case BROWSER_COMPATIBLE:
- form = new HttpBrowserCompatibleMultipart(st, cs, b, bps);
- break;
- case RFC6532:
- form = new HttpRFC6532Multipart(st, cs, b, bps);
- break;
- default:
- form = new HttpStrictMultipart(st, cs, b, bps);
- }
- return new MultipartFormEntity(form, generateContentType(b, cs), form.getTotalLength());
- }
-
- public HttpEntity build() {
- return buildEntity();
- }
-
-}