Package org.restlet.representation
Class FileRepresentation
- java.lang.Object
-
- org.restlet.representation.Variant
-
- org.restlet.representation.RepresentationInfo
-
- org.restlet.representation.Representation
-
- 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 toDisposition.setType(String)
with aDisposition.TYPE_ATTACHMENT
value.- Author:
- Jerome Louvel
-
-
Field Summary
-
Fields inherited from class org.restlet.representation.Representation
UNKNOWN_SIZE
-
-
Constructor Summary
Constructors Constructor Description FileRepresentation(java.io.File file, MediaType mediaType)
Constructor that does not set an expiration date forfile
FileRepresentation(java.io.File file, MediaType mediaType, int timeToLive)
Constructor.FileRepresentation(java.lang.String path, MediaType mediaType)
Constructor that does not set an expiration date forpath
FileRepresentation(java.lang.String path, MediaType mediaType, int timeToLive)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.nio.channels.FileChannel
getChannel()
Returns a readable byte channel.java.io.File
getFile()
Returns the file handle.java.io.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.java.io.FileInputStream
getStream()
Returns a stream with the representation's content.java.lang.String
getText()
Note that this method relies ongetStream()
.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(java.io.File file)
Sets the file handle.void
write(java.io.OutputStream outputStream)
Writes the representation to a byte stream.void
write(java.io.Writer writer)
Writes the representation to a characters writer.void
write(java.nio.channels.WritableByteChannel writableChannel)
Writes the representation to a byte channel.-
Methods inherited from class org.restlet.representation.Representation
append, exhaust, getAvailableSize, getDigest, getDisposition, getExpirationDate, getRange, hasKnownSize, isAvailable, isEmpty, isTransient, setAvailable, setDigest, setDisposition, 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, getLanguages, getLocationRef, getMediaType, hashCode, includes, isCompatible, setCharacterSet, setEncodings, setLanguages, setLocationRef, setLocationRef, setMediaType, toString
-
-
-
-
Constructor Detail
-
FileRepresentation
public FileRepresentation(java.io.File file, MediaType mediaType)
Constructor that does not set an expiration date forfile
- Parameters:
file
- The represented file.mediaType
- The representation's media type.- See Also:
FileRepresentation(File, MediaType, int)
-
FileRepresentation
public FileRepresentation(java.io.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(java.lang.String path, MediaType mediaType)
Constructor that does not set an expiration date forpath
- 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(java.lang.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(String)
-
-
Method Detail
-
getChannel
public java.nio.channels.FileChannel getChannel() throws java.io.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 classRepresentation
- Returns:
- A readable byte channel.
- Throws:
java.io.IOException
-
getFile
public java.io.File getFile()
Returns the file handle.- Returns:
- the file handle.
-
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.- Specified by:
getReader
in classRepresentation
- Returns:
- A reader with the representation's content.
- Throws:
java.io.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 theRepresentation.getAvailableSize()
method.
Note that when used with HTTP connectors, this property maps to the "Content-Length" header.- Overrides:
getSize
in classRepresentation
- Returns:
- The size in bytes if known, UNKNOWN_SIZE (-1) otherwise.
- See Also:
Representation.isEmpty()
-
getStream
public java.io.FileInputStream 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.- Specified by:
getStream
in classRepresentation
- Returns:
- A stream with the representation's content.
- Throws:
java.io.IOException
-
getText
public java.lang.String getText() throws java.io.IOException
Note that this method relies ongetStream()
. This stream is closed once fully read.- Overrides:
getText
in classRepresentation
- Returns:
- The representation as a string value.
- Throws:
java.io.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 classRepresentation
-
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(java.io.File file)
Sets the file handle.- Parameters:
file
- The file handle.
-
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 givenOutputStream
after writing to it as this will be handled by the Restlet connectors automatically.- Specified by:
write
in classRepresentation
- Parameters:
outputStream
- The output stream.- Throws:
java.io.IOException
-
write
public void write(java.nio.channels.WritableByteChannel writableChannel) throws java.io.IOException
Writes the representation to a byte channel. Optimizes using the file channel transferTo method.- Specified by:
write
in classRepresentation
- Parameters:
writableChannel
- A writable byte channel.- Throws:
java.io.IOException
-
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 givenWriter
after writing to it as this will be handled by the Restlet connectors automatically.- Specified by:
write
in classRepresentation
- Parameters:
writer
- The characters writer.- Throws:
java.io.IOException
-
-