org.restlet.representation

## Class ReadableRepresentation

- java.lang.Object
- - org.restlet.representation.Variant
  - - org.restlet.representation.RepresentationInfo
    - - org.restlet.representation.Representation
      - - org.restlet.representation.ChannelRepresentation
        - - org.restlet.representation.ReadableRepresentation

    public class ReadableRepresentation
    extends ChannelRepresentation

Transient representation based on a readable NIO byte channel.

Author:
  Jerome Louvel

### Field Summary

### Fields inherited from class org.restlet.representation.Representation

`UNKNOWN_SIZE`

### Constructor Summary

Constructors
Constructor and Description
`ReadableRepresentation(java.nio.channels.ReadableByteChannel readableChannel, MediaType mediaType)` Constructor.
`ReadableRepresentation(java.nio.channels.ReadableByteChannel channel, MediaType mediaType, long expectedSize)` Constructor.

### Method Summary

Methods
`java.nio.channels.ReadableByteChannel` `getChannel()` 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.
`void` `release()` Closes and releases the readable channel.
`void` `setChannel(java.nio.channels.ReadableByteChannel channel)` Sets the readable channel.
`void` `write(java.nio.channels.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

#### ReadableRepresentation

    public ReadableRepresentation(java.nio.channels.ReadableByteChannel readableChannel,
                          MediaType mediaType)

Constructor.

Parameters:
  `readableChannel` - The representation's channel.
  `mediaType` - The representation's media type.

#### ReadableRepresentation

    public ReadableRepresentation(java.nio.channels.ReadableByteChannel channel,
                          MediaType mediaType,
                          long expectedSize)

Constructor.

Parameters:
  `channel` - The representation's channel.
  `mediaType` - The representation's media type.
  `expectedSize` - The expected stream size.

### Method Detail

#### getChannel

    public java.nio.channels.ReadableByteChannel getChannel()
                                                     throws java.io.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:
  `java.io.IOException`

#### release

    public void release()

Closes and releases the readable channel.

Overrides:
  `release` in class `Representation`

#### setChannel

    public void setChannel(java.nio.channels.ReadableByteChannel channel)

Sets the readable channel.

Parameters:
  `channel` - The readable channel.

#### write

    public void write(java.nio.channels.WritableByteChannel writableChannel)
               throws java.io.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:
  `java.io.IOException`