Package spark.resource
Interface Resource
-
- All Superinterfaces:
InputStreamResource
- All Known Implementing Classes:
AbstractFileResolvingResource
,AbstractResource
,ClassPathResource
,ExternalResource
public interface Resource extends InputStreamResource
Interface for a resource descriptor that abstracts from the actual type of underlying resource, such as a file or class path resource.An InputStream can be opened for every resource if it exists in physical form, but a URL or File handle can just be returned for certain resources. The actual behavior is implementation-specific.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description long
contentLength()
Resource
createRelative(java.lang.String relativePath)
boolean
exists()
Return whether this resource actually exists in physical form.java.lang.String
getDescription()
java.io.File
getFile()
java.lang.String
getFilename()
Determine a filename for this resource, i.e.java.net.URI
getURI()
java.net.URL
getURL()
boolean
isOpen()
Return whether this resource represents a handle with an open stream.boolean
isReadable()
Return whether the contents of this resource can be read, e.g.long
lastModified()
-
Methods inherited from interface spark.resource.InputStreamResource
getInputStream
-
-
-
-
Method Detail
-
exists
boolean exists()
Return whether this resource actually exists in physical form.This method performs a definitive existence check, whereas the existence of a
Resource
handle only guarantees a valid descriptor handle.- Returns:
- if exists
-
isReadable
boolean isReadable()
Return whether the contents of this resource can be read, e.g. viaInputStreamResource.getInputStream()
orgetFile()
.Will be
true
for typical resource descriptors; note that actual content reading may still fail when attempted. However, a value offalse
is a definitive indication that the resource content cannot be read.- Returns:
- if readable
- See Also:
InputStreamResource.getInputStream()
-
isOpen
boolean isOpen()
Return whether this resource represents a handle with an open stream. If true, the InputStream cannot be read multiple times, and must be read and closed to avoid resource leaks.Will be
false
for typical resource descriptors.- Returns:
- if open
-
getURL
java.net.URL getURL() throws java.io.IOException
- Returns:
- a URL handle for this resource.
- Throws:
java.io.IOException
- if the resource cannot be resolved as URL, i.e. if the resource is not available as descriptor
-
getURI
java.net.URI getURI() throws java.io.IOException
- Returns:
- a URI handle for this resource.
- Throws:
java.io.IOException
- if the resource cannot be resolved as URI, i.e. if the resource is not available as descriptor
-
getFile
java.io.File getFile() throws java.io.IOException
- Returns:
- a File handle for this resource.
- Throws:
java.io.IOException
- if the resource cannot be resolved as absolute file path, i.e. if the resource is not available in a file system
-
contentLength
long contentLength() throws java.io.IOException
- Returns:
- the content length for this resource.
- Throws:
java.io.IOException
- if the resource cannot be resolved (in the file system or as some other known physical resource type)
-
lastModified
long lastModified() throws java.io.IOException
- Returns:
- the last-modified timestamp for this resource.
- Throws:
java.io.IOException
- if the resource cannot be resolved (in the file system or as some other known physical resource type)
-
createRelative
Resource createRelative(java.lang.String relativePath) throws java.io.IOException
- Parameters:
relativePath
- the relative path (relative to this resource)- Returns:
- the resource handle for the relative resource
- Throws:
java.io.IOException
- if the relative resource cannot be determined
-
getFilename
java.lang.String getFilename()
Determine a filename for this resource, i.e. typically the last part of the path: for example, "myfile.txt".Returns
null
if this type of resource does not have a filename.- Returns:
- the file name.
-
getDescription
java.lang.String getDescription()
- Returns:
- a description for this resource,
to be used for error output when working with the resource.
Implementations are also encouraged to return this value from their
toString
method. - See Also:
Object.toString()
-
-