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.

Implementations don't need to be thread-safe.

Since:
1.4
Author:
[email protected] (Jacob Moshenko)

Field Summary
 String encoding
          Deprecated. (scheduled to be made private in 1.6) Use getEncoding() or setEncoding(java.lang.String)
 String type
          Deprecated. (scheduled to be made private in 1.6) Use getType() or setType(java.lang.String)
 
Constructor Summary
AbstractInputStreamContent()
          Deprecated. (scheduled to be removed in 1.6) Use AbstractInputStreamContent(String)
AbstractInputStreamContent(String type)
           
 
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.
 AbstractInputStreamContent setEncoding(String encoding)
          Sets the content encoding (for example "gzip") or null for none.
 AbstractInputStreamContent setType(String type)
          Sets 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

@Deprecated
public String type
Deprecated. (scheduled to be made private in 1.6) Use getType() or setType(java.lang.String)
Content type or null for none.


encoding

@Deprecated
public String encoding
Deprecated. (scheduled to be made private in 1.6) Use getEncoding() or setEncoding(java.lang.String)
Content encoding (for example "gzip") or null for none.

Constructor Detail

AbstractInputStreamContent

@Deprecated
public AbstractInputStreamContent()
Deprecated. (scheduled to be removed in 1.6) Use AbstractInputStreamContent(String)


AbstractInputStreamContent

public AbstractInputStreamContent(String type)
Parameters:
type - Content type or null for none
Since:
1.5
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

setEncoding

public AbstractInputStreamContent setEncoding(String encoding)
Sets the content encoding (for example "gzip") or null for none.

Since:
1.5

setType

public AbstractInputStreamContent setType(String type)
Sets the content type or null for none.

Since:
1.5

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


Copyright © 2011 Google. All Rights Reserved.