Class AbstractInputStreamContent

java.lang.Object
com.google.api.client.http.AbstractInputStreamContent
All Implemented Interfaces:
HttpContent, StreamingContent
Direct Known Subclasses:
ByteArrayContent, FileContent, InputStreamContent

public abstract class AbstractInputStreamContent extends Object implements HttpContent
Serializes HTTP request content from an input stream into an output stream.

The type field is required. Subclasses should implement the HttpContent.getLength(), getInputStream(), and HttpContent.retrySupported() for their specific type of input stream. By default, all content is read from the input stream. If instead you want to limit the maximum amount of content read from the input stream, you may use ByteStreams.limit(InputStream, long).

Implementations don't need to be thread-safe.

Since:
1.4
  • Field Details

    • type

      private String type
      Content type or null for none.
    • closeInputStream

      private boolean closeInputStream
      Whether the input stream should be closed at the end of writeTo(java.io.OutputStream). Default is true.
  • Constructor Details

    • AbstractInputStreamContent

      public AbstractInputStreamContent(String type)
      Parameters:
      type - Content type or null for none
      Since:
      1.5
  • Method Details

    • getInputStream

      public abstract InputStream getInputStream() throws IOException
      Return an input stream for the specific implementation type of AbstractInputStreamContent. If the specific implementation will return true for HttpContent.retrySupported() this should be a factory function which will create a new InputStream from the source data whenever invoked.
      Throws:
      IOException
      Since:
      1.7
    • writeTo

      public void writeTo(OutputStream out) throws IOException
      Description copied from interface: StreamingContent
      Writes the byte content to the given output stream.

      Implementations must not close the output stream, and instead should flush the output stream. Some callers may assume that the the output stream has not been closed, and will fail to work if it has been closed.

      Specified by:
      writeTo in interface HttpContent
      Specified by:
      writeTo in interface StreamingContent
      Parameters:
      out - output stream
      Throws:
      IOException
    • getType

      public String getType()
      Description copied from interface: HttpContent
      Returns the content type or null for none.
      Specified by:
      getType in interface HttpContent
    • getCloseInputStream

      public final boolean getCloseInputStream()
      Returns whether the input stream should be closed at the end of writeTo(java.io.OutputStream). Default is true.
      Since:
      1.7
    • setType

      public AbstractInputStreamContent setType(String type)
      Sets the content type or null for none. Subclasses should override by calling super.
      Since:
      1.5
    • setCloseInputStream

      public AbstractInputStreamContent setCloseInputStream(boolean closeInputStream)
      Sets whether the input stream should be closed at the end of writeTo(java.io.OutputStream). Default is true. Subclasses should override by calling super.
      Since:
      1.7