# Class MultipartInput.Builder

java.lang.Object
org.apache.commons.io.build.AbstractSupplier<MultipartInput, MultipartInput.Builder>
org.apache.commons.io.build.AbstractOriginSupplier<MultipartInput, MultipartInput.Builder>
org.apache.commons.io.build.AbstractStreamBuilder<MultipartInput, MultipartInput.Builder>
org.apache.commons.fileupload2.core.MultipartInput.Builder

All Implemented Interfaces:
  `org.apache.commons.io.function.IOSupplier<MultipartInput>`

Enclosing class:
  `MultipartInput`

public static class MultipartInput.Builder extends org.apache.commons.io.build.AbstractStreamBuilder<MultipartInput, MultipartInput.Builder>
Builds a new `MultipartInput` instance.

For example:

    MultipartInput factory = MultipartInput.builder().setPath(path).setBufferSize(DEFAULT_THRESHOLD).get();

## Constructor Summary

Constructors
Constructor
Description
`Builder()`
Constructs a new instance.

## Method Summary

Modifier and Type
Method
Description
`MultipartInput`
`get()`
Constructs a new instance.
`int`
`getMaxPartHeaderSize()`
Gets the per part size limit for headers.
`MultipartInput.Builder`
`setBoundary(byte[] boundary)`
Sets the boundary.
`MultipartInput.Builder`
`setMaxPartHeaderSize(int partHeaderSizeMax)`
Sets the per part size limit for headers.
`MultipartInput.Builder`
`setProgressNotifier(MultipartInput.ProgressNotifier progressNotifier)`
Sets the progress notifier.

### Methods inherited from class org.apache.commons.io.build.AbstractStreamBuilder

`getBufferSize, getBufferSizeDefault, getByteArray, getChannel, getCharSequence, getCharset, getCharsetDefault, getFile, getInputStream, getOpenOptions, getOutputStream, getPath, getRandomAccessFile, getReader, getWriter, setBufferSize, setBufferSize, setBufferSizeChecker, setBufferSizeDefault, setBufferSizeMax, setCharset, setCharset, setCharsetDefault, setOpenOptions`

### Methods inherited from class org.apache.commons.io.build.AbstractOriginSupplier

`checkOrigin, getOrigin, hasOrigin, newByteArrayOrigin, newChannelOrigin, newCharSequenceOrigin, newFileOrigin, newFileOrigin, newInputStreamOrigin, newOutputStreamOrigin, newPathOrigin, newPathOrigin, newRandomAccessFileOrigin, newRandomAccessFileOrigin, newReaderOrigin, newURIOrigin, newWriterOrigin, setByteArray, setChannel, setCharSequence, setFile, setFile, setInputStream, setOrigin, setOutputStream, setPath, setPath, setRandomAccessFile, setRandomAccessFile, setReader, setURI, setWriter`

### Methods inherited from class org.apache.commons.io.build.AbstractSupplier

`asThis`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.apache.commons.io.function.IOSupplier

`asSupplier, getUnchecked`

## Constructor Details

### Builder

public Builder()
Constructs a new instance.

## Method Details

### get

public MultipartInput get() throws IOException
Constructs a new instance.

This builder uses the InputStream, buffer size, boundary and progress notifier aspects.

You must provide an origin that can be converted to a Reader by this builder, otherwise, this call will throw an `UnsupportedOperationException`.

Returns:
  a new instance.
Throws:
  `IOException` - if an I/O error occurs.
  `UnsupportedOperationException` - if the origin cannot provide a Path.
See Also:
  - `AbstractOrigin.getReader(Charset)`

### getMaxPartHeaderSize

public int getMaxPartHeaderSize()
Gets the per part size limit for headers.

Returns:
  The maximum size of the headers in bytes.
Since:
  2.0.0-M5

### setBoundary

public MultipartInput.Builder setBoundary(byte[] boundary)
Sets the boundary.

Parameters:
  `boundary` - the boundary.
Returns:
  `this` instance.

### setMaxPartHeaderSize

public MultipartInput.Builder setMaxPartHeaderSize(int partHeaderSizeMax)
Sets the per part size limit for headers.

Parameters:
  `partHeaderSizeMax` - The maximum size of the headers in bytes.
Returns:
  This builder.
Since:
  2.0.0-M5

### setProgressNotifier

public MultipartInput.Builder setProgressNotifier(MultipartInput.ProgressNotifier progressNotifier)
Sets the progress notifier.

Parameters:
  `progressNotifier` - progress notifier.
Returns:
  `this` instance.