Class 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
  • Constructor Details

    • 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

      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

      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:
  • Method Details

    • 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 character 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:
    • 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(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