All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jboss.resteasy.plugins.providers.multipart.InputPart Maven / Gradle / Ivy

package org.jboss.resteasy.plugins.providers.multipart;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Type;
import java.nio.charset.StandardCharsets;

import jakarta.ws.rs.core.GenericType;
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.MultivaluedMap;

/**
 * Represents one part of a multipart message.
 *
 * @author Bill Burke
 * @version $Revision: 1 $
 */
public interface InputPart {
    /**
     * If no content-type header is sent in a multipart message part
     * "text/plain; charset=ISO-8859-1" is assumed.
     * 

* This can be overwritten by setting a different String value in * {@link org.jboss.resteasy.spi.HttpRequest#setAttribute(String, Object)} * with this ("resteasy.provider.multipart.inputpart.defaultContentType") * String as key. It should be done in a * {@link jakarta.ws.rs.container.ContainerRequestFilter}. *

*/ String DEFAULT_CONTENT_TYPE_PROPERTY = "resteasy.provider.multipart.inputpart.defaultContentType"; /** * If there is a content-type header without a charset parameter, charset=US-ASCII * is assumed. *

* This can be overwritten by setting a different String value in * {@link org.jboss.resteasy.spi.HttpRequest#setAttribute(String, Object)} * with this ("resteasy.provider.multipart.inputpart.defaultCharset") * String as key. It should be done in a * {@link jakarta.ws.rs.container.ContainerRequestFilter}. *

*/ String DEFAULT_CHARSET_PROPERTY = "resteasy.provider.multipart.inputpart.defaultCharset"; /** * @return headers of this part */ MultivaluedMap getHeaders(); String getBodyAsString() throws IOException; T getBody(Class type, Type genericType) throws IOException; T getBody(GenericType type) throws IOException; /** * Returns the body content as an input stream. * * @return the body content * * @throws IOException if an error occurs reading the content */ default InputStream getBody() throws IOException { final String value = getBodyAsString(); if (value == null) { return InputStream.nullInputStream(); } return new ByteArrayInputStream(value.getBytes(StandardCharsets.UTF_8)); } /** * Returns the filename parameter of the content disposition of this Entity. * * @return the filename or {@code null} if one does not exist */ default String getFileName() { return null; } /** * @return "Content-Type" of this part */ MediaType getMediaType(); /** * @return true if the Content-Type was resolved from the message, false if * it was resolved from the server default */ boolean isContentTypeFromMessage(); /** * Change the media type of the body part before you extract it. Useful for specifying a charset. * * @param mediaType media type */ void setMediaType(MediaType mediaType); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy