Package org.apache.http.entity
Class EntityTemplate
java.lang.Object
org.apache.http.entity.AbstractHttpEntity
org.apache.http.entity.EntityTemplate
- All Implemented Interfaces:
HttpEntity
public class EntityTemplate extends AbstractHttpEntity
Entity that delegates the process of content generation to an abstract
content producer.
- Since:
- 4.0
- Version:
- $Revision: 496070 $
- Author:
- Oleg Kalnichevski
-
Field Summary
Fields inherited from class org.apache.http.entity.AbstractHttpEntity
chunked, contentEncoding, contentType -
Constructor Summary
Constructors Constructor Description EntityTemplate(ContentProducer contentproducer) -
Method Summary
Modifier and Type Method Description voidconsumeContent()Does not consume anything.InputStreamgetContent()Creates a new InputStream object of the entity.longgetContentLength()Tells the length of the content, if known.booleanisRepeatable()Tells if the entity is capable to produce its data more than once.booleanisStreaming()Tells whether this entity depends on an underlying stream.voidwriteTo(OutputStream outstream)Writes the entity content to the output stream.Methods inherited from class org.apache.http.entity.AbstractHttpEntity
getContentEncoding, getContentType, isChunked, setChunked, setContentEncoding, setContentEncoding, setContentType, setContentType
-
Constructor Details
-
EntityTemplate
-
-
Method Details
-
getContentLength
public long getContentLength()Description copied from interface:HttpEntityTells the length of the content, if known.- Returns:
- the number of bytes of the content, or
a negative number if unknown. If the content length is known
but exceeds
Long.MAX_VALUE, a negative number is returned.
-
getContent
Description copied from interface:HttpEntityCreates a new InputStream object of the entity. It is a programming error to return the same InputStream object more than once. Entities that are notrepeatablewill throw an exception if this method is called multiple times.- Returns:
- a new input stream that returns the entity data.
-
isRepeatable
public boolean isRepeatable()Description copied from interface:HttpEntityTells if the entity is capable to produce 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.- Returns:
- true if the entity is repeatable, false otherwise.
-
writeTo
Description copied from interface:HttpEntityWrites the entity content to the output stream.- Parameters:
outstream- the output stream to write entity content to- Throws:
IOException- if an I/O error occurs
-
isStreaming
public boolean isStreaming()Description copied from interface:HttpEntityTells whether this entity depends on an underlying stream. Streamed entities should returntrueuntil the content has been consumed,falseafterwards. Self-contained entities should returnfalse. Wrapping entities should delegate this call to the wrapped entity.
The content of a streamed entity is consumed when the stream returned bygetContenthas been read to EOF, or afterconsumeContenthas been called. If a streamed entity can not detect whether the stream has been read to EOF, it should returntrueuntilconsumeContentis called.- Returns:
trueif the entity content is streamed and not yet consumed,falseotherwise
-
consumeContent
Description copied from class:AbstractHttpEntityDoes not consume anything. The default implementation does nothing ifisStreamingreturnsfalse, and throws an exception if it returnstrue. This removes the burden of implementing an empty method for non-streaming entities.- Specified by:
consumeContentin interfaceHttpEntity- Overrides:
consumeContentin classAbstractHttpEntity- Throws:
IOException- in case of an I/O problem
-