Package org.apache.axiom.attachments

## Class IncomingAttachmentInputStream

- java.lang.Object
- - java.io.InputStream
  - - org.apache.axiom.attachments.IncomingAttachmentInputStream

- All Implemented Interfaces:
    `Closeable`, `AutoCloseable`

      public class IncomingAttachmentInputStream
      extends InputStream

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static String` | `HEADER_CONTENT_DESCRIPTION` |
    `static String` | `HEADER_CONTENT_ID` |
    `static String` | `HEADER_CONTENT_LENGTH` |
    `static String` | `HEADER_CONTENT_LOCATION` |
    `static String` | `HEADER_CONTENT_TRANSFER_ENCODING` |
    `static String` | `HEADER_CONTENT_TYPE` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `IncomingAttachmentInputStream​(InputStream in, IncomingAttachmentStreams parentContainer)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addHeader​(String name, String value)` | Add a header.
    `String` | `getContentId()` |
    `String` | `getContentLocation()` |
    `String` | `getContentType()` |
    `String` | `getHeader​(String name)` | Get a header value.
    `Map<String,​String>` | `getHeaders()` |
    `void` | `mark​(int readLimit)` |
    `boolean` | `markSupported()` | Don't want to support mark and reset since this may get us into concurrency problem when different pieces of software may have a handle to the underlying InputStream.
    `int` | `read()` |
    `int` | `read​(byte[] b)` |
    `int` | `read​(byte[] b, int off, int len)` |
    `void` | `reset()` |

    - ### Methods inherited from class java.io.InputStream

      `available, close, nullInputStream, readAllBytes, readNBytes, readNBytes, skip, transferTo`

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

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

- - ### Field Detail

    - #### HEADER_CONTENT_DESCRIPTION

          public static final String HEADER_CONTENT_DESCRIPTION

      See Also:
        Constant Field Values

    - #### HEADER_CONTENT_TYPE

          public static final String HEADER_CONTENT_TYPE

      See Also:
        Constant Field Values

    - #### HEADER_CONTENT_TRANSFER_ENCODING

          public static final String HEADER_CONTENT_TRANSFER_ENCODING

      See Also:
        Constant Field Values

    - #### HEADER_CONTENT_LENGTH

          public static final String HEADER_CONTENT_LENGTH

      See Also:
        Constant Field Values

    - #### HEADER_CONTENT_LOCATION

          public static final String HEADER_CONTENT_LOCATION

      See Also:
        Constant Field Values

    - #### HEADER_CONTENT_ID

          public static final String HEADER_CONTENT_ID

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### IncomingAttachmentInputStream

          public IncomingAttachmentInputStream​(InputStream in,
                                               IncomingAttachmentStreams parentContainer)

      Parameters:
        `in` -

  - ### Method Detail

    - #### getHeaders

          public Map<String,​String> getHeaders()

      Returns:
        MIME headers for this attachment. May be null if no headers were set.

    - #### addHeader

          public void addHeader​(String name,
                                String value)

      Add a header.
      Parameters:
        `name` -
        `value` -

    - #### getHeader

          public String getHeader​(String name)

      Get a header value.
      Parameters:
        `name` -
      Returns:
        The header found or null if not found.

    - #### getContentId

          public String getContentId()

      Returns:
        The header with HTTPConstants.HEADER_CONTENT_ID as the key.

    - #### getContentLocation

          public String getContentLocation()

      Returns:
        The header with HTTPConstants.HEADER_CONTENT_LOCATION as the key.

    - #### getContentType

          public String getContentType()

      Returns:
        The header with HTTPConstants.HEADER_CONTENT_TYPE as the key.

    - #### markSupported

          public boolean markSupported()

      Don't want to support mark and reset since this may get us into concurrency problem when different pieces of software may have a handle to the underlying InputStream.
      Overrides:
        `markSupported` in class `InputStream`

    - #### reset

          public void reset()
                     throws IOException

      Overrides:
        `reset` in class `InputStream`
      Throws:
        `IOException`

    - #### mark

          public void mark​(int readLimit)

      Overrides:
        `mark` in class `InputStream`

    - #### read

          public int read()
                   throws IOException

      Specified by:
        `read` in class `InputStream`
      Throws:
        `IOException`

    - #### read

          public int read​(byte[] b)
                   throws IOException

      Overrides:
        `read` in class `InputStream`
      Throws:
        `IOException`

    - #### read

          public int read​(byte[] b,
                          int off,
                          int len)
                   throws IOException

      Overrides:
        `read` in class `InputStream`
      Throws:
        `IOException`