org.restlet.representation
Class FileRepresentation

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

public class FileRepresentation
extends Representation

Representation based on a static file. Note that in order for Web clients to display a download box upon reception of a file representation, it needs an additional call to Disposition.setType(String) with a Disposition.TYPE_ATTACHMENT value.

Author:
Jerome Louvel

Field Summary
 
Fields inherited from class org.restlet.representation.Representation
UNKNOWN_SIZE
 
Constructor Summary
FileRepresentation(File file, MediaType mediaType)
          Constructor that does not set an expiration date for file
FileRepresentation(File file, MediaType mediaType, int timeToLive)
          Constructor.
FileRepresentation(String path, MediaType mediaType)
          Constructor that does not set an expiration date for path
FileRepresentation(String path, MediaType mediaType, int timeToLive)
          Constructor.
 
Method Summary
 FileChannel getChannel()
          Returns a readable byte channel.
 File getFile()
          Returns the file handle.
 Reader getReader()
          Returns a characters reader with the representation's content.
 long getSize()
          Returns the total size in bytes if known, UNKNOWN_SIZE (-1) otherwise.
 FileInputStream getStream()
          Returns a stream with the representation's content.
 String getText()
          Note that this method relies on getStream().
 boolean isAutoDeleting()
          Indicates if this file should be automatically deleted on release of the representation.
 void release()
          Releases the file handle.
 void setAutoDeleting(boolean autoDeleting)
          Indicates if this file should be automatically deleted on release of the representation.
 void setFile(File file)
          Sets the file handle.
 void write(OutputStream outputStream)
          Writes the representation to a byte stream.
 void write(WritableByteChannel writableChannel)
          Writes the representation to a byte channel.
 void write(Writer writer)
          Writes the representation to a characters writer.
 
Methods inherited from class org.restlet.representation.Representation
append, exhaust, getAvailableSize, getDigest, getDisposition, getExpirationDate, getRange, getRegistration, 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
 

Constructor Detail

FileRepresentation

public FileRepresentation(File file,
                          MediaType mediaType)
Constructor that does not set an expiration date for file

Parameters:
file - The represented file.
mediaType - The representation's media type.
See Also:
FileRepresentation(File, MediaType, int)

FileRepresentation

public FileRepresentation(File file,
                          MediaType mediaType,
                          int timeToLive)
Constructor. If a positive "timeToLive" parameter is given, then the expiration date is set accordingly. If "timeToLive" is equal to zero, then the expiration date is set to the current date, meaning that it will immediately expire on the client. If -1 is given, then no expiration date is set.

Parameters:
file - The represented file.
mediaType - The representation's media type.
timeToLive - The time to live before it expires (in seconds).

FileRepresentation

public FileRepresentation(String path,
                          MediaType mediaType)
Constructor that does not set an expiration date for path

Parameters:
path - The path name or file URI of the represented file (either in system format or in 'file:///' format).
mediaType - The representation's media type.
See Also:
FileRepresentation(String, MediaType, int)

FileRepresentation

public FileRepresentation(String path,
                          MediaType mediaType,
                          int timeToLive)
Constructor.

Parameters:
path - The path name or file URI of the represented file (either in system format or in 'file:///' format).
mediaType - The representation's media type.
timeToLive - The time to live before it expires (in seconds).
See Also:
File.File(String)
Method Detail

getChannel

public FileChannel getChannel()
                       throws IOException
Returns a readable byte channel. If it is supported by a file a read-only instance of FileChannel is returned.

Specified by:
getChannel in class Representation
Returns:
A readable byte channel.
Throws:
IOException

getFile

public File getFile()
Returns the file handle.

Returns:
the file handle.

getReader

public Reader getReader()
                 throws 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.

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

getSize

public long getSize()
Description copied from class: Representation
Returns the total size in bytes if known, UNKNOWN_SIZE (-1) otherwise. When ranges are used, this might not be the actual size available. For this purpose, you can use the Representation.getAvailableSize() method.

Note that when used with HTTP connectors, this property maps to the "Content-Length" header.

Overrides:
getSize in class Representation
Returns:
The size in bytes if known, UNKNOWN_SIZE (-1) otherwise.
See Also:
Representation.isEmpty()

getStream

public FileInputStream 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

getText

public String getText()
               throws IOException
Note that this method relies on getStream(). This stream is closed once fully read.

Overrides:
getText in class Representation
Returns:
The representation as a string value.
Throws:
IOException

isAutoDeleting

public boolean isAutoDeleting()
Indicates if this file should be automatically deleted on release of the representation.

Returns:
True if this file should be automatically deleted on release of the representation.

release

public void release()
Releases the file handle.

Overrides:
release in class Representation

setAutoDeleting

public void setAutoDeleting(boolean autoDeleting)
Indicates if this file should be automatically deleted on release of the representation.

Parameters:
autoDeleting - True if this file should be automatically deleted on release of the representation.

setFile

public void setFile(File file)
Sets the file handle.

Parameters:
file - The file handle.

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

write

public void write(WritableByteChannel writableChannel)
           throws IOException
Writes the representation to a byte channel. Optimizes using the file channel transferTo method.

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

write

public void write(Writer writer)
           throws 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.

Specified by:
write in class Representation
Parameters:
writer - The characters writer.
Throws:
IOException


Copyright © 2005-2013 Restlet.