org.restlet.representation
Class WritableRepresentation

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.ChannelRepresentation
                  extended by org.restlet.representation.WritableRepresentation

public abstract class WritableRepresentation
extends ChannelRepresentation

Representation based on a writable NIO byte channel. This class is a good basis to write your own representations, especially for the dynamic and large ones.

For this you just need to create a subclass and override the abstract Representation.write(WritableByteChannel) method. This method will later be called back by the connectors when the actual representation's content is needed.

Author:
Jerome Louvel

Field Summary
 
Fields inherited from class org.restlet.representation.Representation
UNKNOWN_SIZE
 
Constructor Summary
WritableRepresentation(MediaType mediaType)
          Constructor.
 
Method Summary
 ReadableByteChannel getChannel()
          Returns a channel with the representation's content.
 void release()
          Calls parent's implementation.
abstract  void write(WritableByteChannel writableChannel)
          Writes the representation to a byte channel.
 
Methods inherited from class org.restlet.representation.ChannelRepresentation
getReader, getStream, write, write
 
Methods inherited from class org.restlet.representation.Representation
checkDigest, checkDigest, computeDigest, createEmpty, exhaust, getAvailableSize, getDigest, getDisposition, getDownloadName, getExpirationDate, getRange, getSize, getText, isAvailable, isDownloadable, isTransient, setAvailable, setDigest, setDisposition, setDownloadable, setDownloadName, setExpirationDate, 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, getIdentifier, getLanguages, getLocationRef, getMediaType, includes, isCompatible, setCharacterSet, setEncodings, setIdentifier, setIdentifier, setLanguages, setLocationRef, setLocationRef, setMediaType, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

WritableRepresentation

public WritableRepresentation(MediaType mediaType)
Constructor.

Parameters:
mediaType - The representation's media type.
Method Detail

getChannel

public ReadableByteChannel getChannel()
                               throws IOException
Description copied from class: Representation
Returns a channel with the representation's content.
If it is supported by a file, a read-only instance of FileChannel is returned.
This method is ensured to return a fresh channel for each invocation unless it is a transient representation, in which case null is returned.

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

release

public void release()
Calls parent's implementation.

Overrides:
release in class Representation

write

public abstract void write(WritableByteChannel writableChannel)
                    throws IOException
Description copied from class: Representation
Writes the representation to a byte channel. 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.

Specified by:
write in class Representation
Parameters:
writableChannel - A writable byte channel.
Throws:
IOException


Copyright © 2005-2013 Restlet S.A.S..