org.asynchttpclient.shaded.request.body.multipart.PartBase Maven / Gradle / Ivy
/*
* Copyright (c) 2014 AsyncHttpClient Project. All rights reserved.
*
* This program is licensed to you under the Apache License Version 2.0,
* and you may not use this file except in compliance with the Apache License Version 2.0.
* You may obtain a copy of the Apache License Version 2.0 at http://www.apache.org/licenses/LICENSE-2.0.
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the Apache License Version 2.0 is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the Apache License Version 2.0 for the specific language governing permissions and limitations there under.
*/
package org.asynchttpclient.shaded.request.body.multipart;
import org.asynchttpclient.shaded.Param;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
public abstract class PartBase implements Part {
/**
* The name of the form field, part of the Content-Disposition header
*/
private final String name;
/**
* The main part of the Content-Type header
*/
private final String contentType;
/**
* The charset (part of Content-Type header)
*/
private final Charset charset;
/**
* The Content-Transfer-Encoding header value.
*/
private final String transferEncoding;
/**
* The Content-Id
*/
private final String contentId;
/**
* The disposition type (part of Content-Disposition)
*/
private String dispositionType;
/**
* Additional part headers
*/
private List customHeaders;
/**
* Constructor.
*
* @param name The name of the part, or null
* @param contentType The content type, or null
* @param charset The character encoding, or null
* @param contentId The content id, or null
* @param transferEncoding The transfer encoding, or null
*/
public PartBase(String name, String contentType, Charset charset, String contentId, String transferEncoding) {
this.name = name;
this.contentType = contentType;
this.charset = charset;
this.contentId = contentId;
this.transferEncoding = transferEncoding;
}
@Override
public String getName() {
return this.name;
}
@Override
public String getContentType() {
return this.contentType;
}
@Override
public Charset getCharset() {
return this.charset;
}
@Override
public String getTransferEncoding() {
return transferEncoding;
}
@Override
public String getContentId() {
return contentId;
}
@Override
public String getDispositionType() {
return dispositionType;
}
public void setDispositionType(String dispositionType) {
this.dispositionType = dispositionType;
}
@Override
public List getCustomHeaders() {
return customHeaders;
}
public void setCustomHeaders(List customHeaders) {
this.customHeaders = customHeaders;
}
public void addCustomHeader(String name, String value) {
if (customHeaders == null) {
customHeaders = new ArrayList<>(2);
}
customHeaders.add(new Param(name, value));
}
public String toString() {
return getClass().getSimpleName() +
" name=" + getName() +
" contentType=" + getContentType() +
" charset=" + getCharset() +
" transferEncoding=" + getTransferEncoding() +
" contentId=" + getContentId() +
" dispositionType=" + getDispositionType();
}
}