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 Object
      implements FileItemIterator

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

- - ### Constructor Summary

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

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `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,
                                      IOException

      Creates a new instance.
      Parameters:
        `fileUploadBase` - Main processor.
        `requestContext` - The request context.
      Throws:
        `FileUploadException` - An error occurred while parsing the request.
        `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,
                              IOException

      Throws:
        `FileUploadException`
        `IOException`

    - #### getMultiPartStream

          public MultipartStream getMultiPartStream()
                                             throws FileUploadException,
                                                    IOException

      Throws:
        `FileUploadException`
        `IOException`

    - #### hasNext

          public boolean hasNext()
                          throws FileUploadException,
                                 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.
        `IOException` - Reading the file item failed.

    - #### next

          public FileItemStream next()
                              throws FileUploadException,
                                     IOException

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

    - #### getFileItems

          public List<FileItem> getFileItems()
                                      throws FileUploadException,
                                             IOException

      Specified by:
        `getFileItems` in interface `FileItemIterator`
      Throws:
        `FileUploadException`
        `IOException`