org.restlet.engine.local
Class ZipEntryRepresentation

java.lang.Object
  extended by org.restlet.representation.Variant
      extended by org.restlet.representation.RepresentationInfo
          extended by org.restlet.representation.Representation
              extended by org.restlet.representation.StreamRepresentation
                  extended by org.restlet.engine.local.ZipEntryRepresentation

public class ZipEntryRepresentation
extends StreamRepresentation

An entry in a Zip/JAR file. It is very important release() is called to close the underlying Zip file.

Author:
Remi Dewitte

Field Summary
protected  ZipEntry entry
          The Zip entry.
protected  ZipFile zipFile
          The Zip file.
 
Fields inherited from class org.restlet.representation.Representation
UNKNOWN_SIZE
 
Constructor Summary
ZipEntryRepresentation(MediaType mediaType, ZipFile zipFile, ZipEntry entry)
          Constructor.
 
Method Summary
 InputStream getStream()
          Returns a stream with the representation's content.
 void release()
          Releases the representation and all associated objects like streams, channels or files which are used to produce its content, transient or not.
 void write(OutputStream outputStream)
          Writes the representation to a byte stream.
 
Methods inherited from class org.restlet.representation.StreamRepresentation
getChannel, getReader, write, write
 
Methods inherited from class org.restlet.representation.Representation
append, exhaust, getAvailableSize, getDigest, getDisposition, getExpirationDate, getRange, getRegistration, getSize, getText, hasKnownSize, isAvailable, isEmpty, isSelectable, isTransient, setAvailable, setDigest, setDisposition, setExpirationDate, setListener, setRange, setSize, setTransient
 
Methods inherited from class org.restlet.representation.RepresentationInfo
getModificationDate, getTag, setModificationDate, setTag
 
Methods inherited from class org.restlet.representation.Variant
createClientInfo, equals, getCharacterSet, getEncodings, getLanguages, getLocationRef, getMediaType, includes, isCompatible, setCharacterSet, setEncodings, setLanguages, setLocationRef, setLocationRef, setMediaType, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

zipFile

protected final ZipFile zipFile
The Zip file.


entry

protected final ZipEntry entry
The Zip entry.

Constructor Detail

ZipEntryRepresentation

public ZipEntryRepresentation(MediaType mediaType,
                              ZipFile zipFile,
                              ZipEntry entry)
Constructor.

Parameters:
mediaType - The entry media type.
zipFile - The parent Zip archive file.
entry - The Zip entry.
Method Detail

release

public void release()
Description copied from class: Representation
Releases the representation and all associated objects like streams, channels or files which are used to produce its content, transient or not. This method must be systematically called when the representation is no longer intended to be used. The framework automatically calls back this method via its connectors on the server-side when sending responses with an entity and on the client-side when sending a request with an entity. By default, it calls the Representation.setAvailable(boolean) method with "false" as a value.

Note that for transient socket-bound representations, calling this method after consuming the whole content shouldn't prevent the reuse of underlying socket via persistent connections for example. However, if the content hasn't been read, or has been partially read, the impact should be to discard the remaining content and to close the underlying connections.

Therefore, if you are not interested in the content, or in the remaining content, you should first call the Representation.exhaust() method or if this could be too costly, you should instead explicitly abort the parent request and the underlying connections using the Request.abort() method or a shortcut one like ServerResource.abort() or Response.abort().

Overrides:
release in class Representation

getStream

public InputStream getStream()
                      throws IOException
Description copied from class: Representation
Returns a stream with the representation's content. This method is ensured to return a fresh stream for each invocation unless it is a transient representation, in which case null is returned.

Specified by:
getStream in class Representation
Returns:
A stream with the representation's content.
Throws:
IOException

write

public void write(OutputStream outputStream)
           throws IOException
Description copied from class: Representation
Writes the representation to a byte stream. This method is ensured to write the full content for each invocation unless it is a transient representation, in which case an exception is thrown.

Note that the class implementing this method shouldn't flush or close the given OutputStream after writing to it as this will be handled by the Restlet connectors automatically.

Specified by:
write in class Representation
Parameters:
outputStream - The output stream.
Throws:
IOException


Copyright © 2005-2014 Restlet.