com.google.api.client.http
Class AbstractInputStreamContent

java.lang.Object
  extended by com.google.api.client.http.AbstractInputStreamContent
All Implemented Interfaces:
HttpContent
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.

Since:
1.4
Author:
moshenko@google.com (Jacob Moshenko)

Field Summary
 String encoding
          Content encoding (for example "gzip") or null for none.
 String type
          Required content type.
 
Constructor Summary
AbstractInputStreamContent()
           
 
Method Summary
static void copy(InputStream inputStream, OutputStream outputStream)
          Writes the content provided by the given source input stream into the given destination output stream.
 String getEncoding()
          Returns the content encoding (for example "gzip") or null for none.
protected abstract  InputStream getInputStream()
          Return an input stream for the specific implementation type of AbstractInputStreamContent.
 String getType()
          Returns the content type or null for none.
 void writeTo(OutputStream out)
          Writes the content to the given output stream.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.google.api.client.http.HttpContent
getLength, retrySupported
 

Field Detail

type

public String type
Required content type.


encoding

public String encoding
Content encoding (for example "gzip") or null for none.

Constructor Detail

AbstractInputStreamContent

public AbstractInputStreamContent()
Method Detail

getInputStream

protected 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

writeTo

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

Specified by:
writeTo in interface HttpContent
Throws:
IOException

getEncoding

public String getEncoding()
Description copied from interface: HttpContent
Returns the content encoding (for example "gzip") or null for none.

Specified by:
getEncoding in interface HttpContent

getType

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

Specified by:
getType in interface HttpContent

copy

public static void copy(InputStream inputStream,
                        OutputStream outputStream)
                 throws IOException
Writes the content provided by the given source input stream into the given destination output stream.

The input stream is guaranteed to be closed at the end of the method.

Sample use:


  static void downloadMedia(HttpResponse response, File file)
      throws IOException {
    FileOutputStream out = new FileOutputStream(file);
    try {
      AbstractInputStreamContent.copy(response.getContent(), out);
    } finally {
      out.close();
    }
  }
 

Parameters:
inputStream - source input stream
outputStream - destination output stream
Throws:
IOException - I/O exception


Copyright © 2010-2011 Google. All Rights Reserved.