org.apache.hc.core5.http.io.entity

## Class SerializableEntity

- java.lang.Object
- - org.apache.hc.core5.http.io.entity.AbstractHttpEntity
  - - org.apache.hc.core5.http.io.entity.SerializableEntity

- All Implemented Interfaces:
    Closeable, AutoCloseable, EntityDetails, HttpEntity

      @Contract(threading=IMMUTABLE_CONDITIONAL)
      public class SerializableEntity
      extends AbstractHttpEntity

  A streamed entity that obtains its content from a `Serializable`.
  Since:
    4.0

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `SerializableEntity(Serializable serializable, ContentType contentType)` Creates new instance of this class.
    `SerializableEntity(Serializable serializable, ContentType contentType, String contentEncoding)` Creates new instance of this class.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()`
    `InputStream` | `getContent()` Returns a content stream of the entity.
    `long` | `getContentLength()` Returns length of the entity, if known.
    `boolean` | `isRepeatable()` Tells if the entity is capable of producing its data more than once.
    `boolean` | `isStreaming()` Tells whether this entity depends on an underlying stream.
    `void` | `writeTo(OutputStream outStream)` Writes the entity content out to the output stream.

    - ### Methods inherited from class org.apache.hc.core5.http.io.entity.AbstractHttpEntity

      `getContentEncoding, getContentType, getTrailerNames, getTrailers, isChunked, toString, writeTo`

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

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

- - ### Constructor Detail

    - #### SerializableEntity

          public SerializableEntity(Serializable serializable,
                            ContentType contentType,
                            String contentEncoding)

      Creates new instance of this class.
      Parameters:
        `serializable` - the serializable object.
        `contentType` - the content type.
        `contentEncoding` - the content encoding.

    - #### SerializableEntity

          public SerializableEntity(Serializable serializable,
                            ContentType contentType)

      Creates new instance of this class.
      Parameters:
        `serializable` - the serializable object.
        `contentType` - the content type.

  - ### Method Detail

    - #### getContent

          public final InputStream getContent()
                                       throws IOException,
                                              IllegalStateException

      Description copied from interface: `HttpEntity`
      Returns a content stream of the entity. `Repeatable` entities are expected to create a new instance of `InputStream` for each invocation of this method and therefore can be consumed multiple times. Entities that are not `repeatable` are expected to return the same `InputStream` instance and therefore may not be consumed more than once.

      IMPORTANT: Please note all entity implementations must ensure that all allocated resources are properly deallocated after the `InputStream.close()` method is invoked.

      Returns:
        content stream of the entity.
      Throws:
        `IOException` - if the stream could not be created
        `IllegalStateException`
      See Also:
        `HttpEntity.isRepeatable()`

    - #### getContentLength

          public final long getContentLength()

      Description copied from interface: `EntityDetails`
      Returns length of the entity, if known.

    - #### isRepeatable

          public final boolean isRepeatable()

      Description copied from interface: `HttpEntity`
      Tells if the entity is capable of producing its data more than once. A repeatable entity's getContent() and writeTo(OutputStream) methods can be called more than once whereas a non-repeatable entity's can not.
      Specified by:
        `isRepeatable` in interface `HttpEntity`
      Overrides:
        `isRepeatable` in class `AbstractHttpEntity`
      Returns:
        true if the entity is repeatable, false otherwise.

    - #### isStreaming

          public final boolean isStreaming()

      Description copied from interface: `HttpEntity`
      Tells whether this entity depends on an underlying stream. Streamed entities that read data directly from the socket should return `true`. Self-contained entities should return `false`. Wrapping entities should delegate this call to the wrapped entity.
      Returns:
        `true` if the entity content is streamed, `false` otherwise

    - #### writeTo

          public final void writeTo(OutputStream outStream)
                             throws IOException

      Description copied from interface: `HttpEntity`
      Writes the entity content out to the output stream.

      IMPORTANT: Please note all entity implementations must ensure that all allocated resources are properly deallocated when this method returns.

      Specified by:
        `writeTo` in interface `HttpEntity`
      Overrides:
        `writeTo` in class `AbstractHttpEntity`
      Parameters:
        `outStream` - the output stream to write entity content to
      Throws:
        `IOException` - if an I/O error occurs

    - #### close

          public final void close()
                           throws IOException

      Throws:
        `IOException`

Copyright © 2005–2020 The Apache Software Foundation. All rights reserved.