org.restlet.engine.application

## Class RangeRepresentation

- java.lang.Object
- - org.restlet.representation.Variant
  - - org.restlet.representation.RepresentationInfo
    - - org.restlet.representation.Representation
      - - org.restlet.util.WrapperRepresentation
        - - org.restlet.engine.application.RangeRepresentation

    public class RangeRepresentation
    extends WrapperRepresentation

Representation that exposes only a range of the content of a wrapped representation.

Author:
  Jerome Louvel

### Field Summary

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

`UNKNOWN_SIZE`

### Constructor Summary

Constructors
Constructor and Description
`RangeRepresentation(Representation wrappedRepresentation)` Constructor.
`RangeRepresentation(Representation wrappedRepresentation, Range range)` Constructor.

### Method Summary

Methods
`long` `getAvailableSize()` Returns the size effectively available.
`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.
`Range` `getRange()` Returns the range specific to this wrapper.
`java.io.Reader` `getReader()` Returns a characters reader with the representation's content.
`java.io.InputStream` `getStream()` Returns a stream with the representation's content.
`java.lang.String` `getText()` Converts the representation to a string value.
`void` `setRange(Range range)` Sets the range specific to this wrapper.
`void` `write(java.io.OutputStream outputStream)` Writes the representation to a byte stream.
`void` `write(java.nio.channels.WritableByteChannel writableChannel)` Writes the representation to a byte channel.
`void` `write(java.io.Writer writer)` Writes the representation to a characters writer.

### Methods inherited from class org.restlet.util.WrapperRepresentation

`checkDigest, checkDigest, computeDigest, exhaust, getCharacterSet, getDigest, getDisposition, getDownloadName, getEncodings, getExpirationDate, getIdentifier, getLanguages, getLocationRef, getMediaType, getModificationDate, getSize, getTag, getWrappedRepresentation, isAvailable, isDownloadable, isTransient, release, setAvailable, setCharacterSet, setDigest, setDisposition, setDownloadable, setDownloadName, setEncodings, setExpirationDate, setIdentifier, setIdentifier, setLanguages, setLocationRef, setLocationRef, setMediaType, setModificationDate, setSize, setTag, setTransient`

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

`createEmpty`

### Methods inherited from class org.restlet.representation.Variant

`createClientInfo, equals, includes, isCompatible, toString`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### RangeRepresentation

    public RangeRepresentation(Representation wrappedRepresentation)

Constructor.

Parameters:
  `wrappedRepresentation` - The wrapped representation with a complete content.

#### RangeRepresentation

    public RangeRepresentation(Representation wrappedRepresentation,
                       Range range)

Constructor.

Parameters:
  `wrappedRepresentation` - The wrapped representation with a complete content.
  `range` - The range to expose.

### Method Detail

#### getAvailableSize

    public long getAvailableSize()

Description copied from class: `Representation`
Returns the size effectively available. This returns the same value as `Representation.getSize()` if no range is defined, otherwise it returns the size of the range using `Range.getSize()`.

Overrides:
  `getAvailableSize` in class `WrapperRepresentation`
Returns:
  The available size.

#### 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.

Overrides:
  `getChannel` in class `WrapperRepresentation`
Returns:
  A channel with the representation's content.
Throws:
  `java.io.IOException`

#### getRange

    public Range getRange()

Returns the range specific to this wrapper. The wrapped representation must not have a range set itself.

Overrides:
  `getRange` in class `WrapperRepresentation`
Returns:
  The range specific to this wrapper.

#### getReader

    public java.io.Reader getReader()
                             throws java.io.IOException

Description copied from class: `Representation`
Returns a characters reader with the representation's content. This method is ensured to return a fresh reader for each invocation unless it is a transient representation, in which case null is returned. If the representation has no character set defined, the system's default one will be used.

Overrides:
  `getReader` in class `WrapperRepresentation`
Returns:
  A reader with the representation's content.
Throws:
  `java.io.IOException`

#### getStream

    public java.io.InputStream getStream()
                                  throws java.io.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.

Overrides:
  `getStream` in class `WrapperRepresentation`
Returns:
  A stream with the representation's content.
Throws:
  `java.io.IOException`

#### getText

    public java.lang.String getText()
                             throws java.io.IOException

Description copied from class: `Representation`
Converts the representation to a string value. Be careful when using this method as the conversion of large content to a string fully stored in memory can result in OutOfMemoryErrors being thrown.

Overrides:
  `getText` in class `WrapperRepresentation`
Returns:
  The representation as a string value.
Throws:
  `java.io.IOException`

#### setRange

    public void setRange(Range range)

Sets the range specific to this wrapper. This will not affect the wrapped representation.

Overrides:
  `setRange` in class `WrapperRepresentation`
Parameters:
  `range` - The range specific to this wrapper.

#### write

    public void write(java.io.Writer writer)
               throws java.io.IOException

Description copied from class: `Representation`
Writes the representation to a characters writer. 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 `Writer` after writing to it as this will be handled by the Restlet connectors automatically.

Overrides:
  `write` in class `WrapperRepresentation`
Parameters:
  `writer` - The characters writer.
Throws:
  `java.io.IOException`

#### write

    public void write(java.io.OutputStream outputStream)
               throws java.io.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.

Overrides:
  `write` in class `WrapperRepresentation`
Parameters:
  `outputStream` - The output stream.
Throws:
  `java.io.IOException`

#### 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.

Overrides:
  `write` in class `WrapperRepresentation`
Parameters:
  `writableChannel` - A writable byte channel.
Throws:
  `java.io.IOException`