Package org.apache.tomcat.util.http.fileupload.impl

## Class FileItemIteratorImpl

- java.lang.Object
- - org.apache.tomcat.util.http.fileupload.impl.FileItemIteratorImpl

All Implemented Interfaces:
  `FileItemIterator`

    public class FileItemIteratorImpl
    extends java.lang.Object
    implements FileItemIterator

The iterator, which is returned by `FileUploadBase.getItemIterator(RequestContext)`.

### Constructor Summary

Constructors
`FileItemIteratorImpl​(FileUploadBase fileUploadBase, RequestContext requestContext)` Creates a new instance.

### Method Summary

All Methods Instance Methods Concrete Methods
`java.util.List<FileItem>` `getFileItems()`
`long` `getFileSizeMax()` Returns the maximum size of a single file.
`MultipartStream` `getMultiPartStream()`
`long` `getSizeMax()` Returns the maximum size of the complete HTTP request.
`boolean` `hasNext()` Returns, whether another instance of `FileItemStream` is available.
`protected void` `init​(FileUploadBase fileUploadBase, RequestContext pRequestContext)`
`FileItemStream` `next()` Returns the next available `FileItemStream`.
`void` `setFileSizeMax​(long fileSizeMax)` Sets the maximum size of a single file.
`void` `setSizeMax​(long sizeMax)` Returns the maximum size of the complete HTTP request.

### Methods inherited from class java.lang.Object

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

### Constructor Detail

#### FileItemIteratorImpl

    public FileItemIteratorImpl​(FileUploadBase fileUploadBase,
                                RequestContext requestContext)
                         throws FileUploadException,
                                java.io.IOException

Creates a new instance.

Parameters:
  `fileUploadBase` - Main processor.
  `requestContext` - The request context.
Throws:
  `FileUploadException` - An error occurred while parsing the request.
  `java.io.IOException` - An I/O error occurred.

### Method Detail

#### getSizeMax

    public long getSizeMax()

Description copied from interface: `FileItemIterator`
Returns the maximum size of the complete HTTP request. A `SizeLimitExceededException` will be thrown, if the HTTP request will exceed this value. By default, this value will be copied from the `FileUploadBase` object, however, the user may replace the default value with a request specific value by invoking `FileItemIterator.setSizeMax(long)` on this object.

Specified by:
  `getSizeMax` in interface `FileItemIterator`
Returns:
  The maximum size of the complete HTTP request. The value -1 indicates "unlimited".

#### setSizeMax

    public void setSizeMax​(long sizeMax)

Description copied from interface: `FileItemIterator`
Returns the maximum size of the complete HTTP request. A `SizeLimitExceededException` will be thrown, if the HTTP request will exceed this value. By default, this value will be copied from the `FileUploadBase` object, however, the user may replace the default value with a request specific value by invoking `FileItemIterator.setSizeMax(long)` on this object. Note: Setting the maximum size on this object will work only, if the iterator is not yet initialized. In other words: If the methods `FileItemIterator.hasNext()`, `FileItemIterator.next()` have not yet been invoked.

Specified by:
  `setSizeMax` in interface `FileItemIterator`
Parameters:
  `sizeMax` - The maximum size of the complete HTTP request. The value -1 indicates "unlimited".

#### getFileSizeMax

    public long getFileSizeMax()

Description copied from interface: `FileItemIterator`
Returns the maximum size of a single file. An `FileSizeLimitExceededException` will be thrown, if there is an uploaded file, which is exceeding this value. By default, this value will be copied from the `FileUploadBase` object, however, the user may replace the default value with a request specific value by invoking `FileItemIterator.setFileSizeMax(long)` on this object.

Specified by:
  `getFileSizeMax` in interface `FileItemIterator`
Returns:
  The maximum size of a single, uploaded file. The value -1 indicates "unlimited".

#### setFileSizeMax

    public void setFileSizeMax​(long fileSizeMax)

Description copied from interface: `FileItemIterator`
Sets the maximum size of a single file. An `FileSizeLimitExceededException` will be thrown, if there is an uploaded file, which is exceeding this value. By default, this value will be copied from the `FileUploadBase` object, however, the user may replace the default value with a request specific value by invoking `FileItemIterator.setFileSizeMax(long)` on this object, so there is no need to configure it here. Note:Changing this value doesn't affect files, that have already been uploaded.

Specified by:
  `setFileSizeMax` in interface `FileItemIterator`
Parameters:
  `fileSizeMax` - The maximum size of a single, uploaded file. The value -1 indicates "unlimited".

#### init

    protected void init​(FileUploadBase fileUploadBase,
                        RequestContext pRequestContext)
                 throws FileUploadException,
                        java.io.IOException

Throws:
  `FileUploadException`
  `java.io.IOException`

#### getMultiPartStream

    public MultipartStream getMultiPartStream()
                                       throws FileUploadException,
                                              java.io.IOException

Throws:
  `FileUploadException`
  `java.io.IOException`

#### hasNext

    public boolean hasNext()
                    throws FileUploadException,
                           java.io.IOException

Returns, whether another instance of `FileItemStream` is available.

Specified by:
  `hasNext` in interface `FileItemIterator`
Returns:
  True, if one or more additional file items are available, otherwise false.
Throws:
  `FileUploadException` - Parsing or processing the file item failed.
  `java.io.IOException` - Reading the file item failed.

#### next

    public FileItemStream next()
                        throws FileUploadException,
                               java.io.IOException

Returns the next available `FileItemStream`.

Specified by:
  `next` in interface `FileItemIterator`
Returns:
  FileItemStream instance, which provides access to the next file item.
Throws:
  `java.util.NoSuchElementException` - No more items are available. Use `hasNext()` to prevent this exception.
  `FileUploadException` - Parsing or processing the file item failed.
  `java.io.IOException` - Reading the file item failed.

#### getFileItems

    public java.util.List<FileItem> getFileItems()
                                          throws FileUploadException,
                                                 java.io.IOException

Specified by:
  `getFileItems` in interface `FileItemIterator`
Throws:
  `FileUploadException`
  `java.io.IOException`