Package spark.resource
Interface Resource
- All Superinterfaces:
InputStreamResource
- All Known Implementing Classes:
AbstractFileResolvingResource
,AbstractResource
,ClassPathResource
,ExternalResource
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.
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionlong
createRelative
(String relativePath) boolean
exists()
Return whether this resource actually exists in physical form.getFile()
Determine a filename for this resource, i.e.getURI()
getURL()
boolean
isOpen()
Return whether this resource represents a handle with an open stream.boolean
Return whether the contents of this resource can be read, e.g.long
Methods inherited from interface spark.resource.InputStreamResource
getInputStream
-
Method Details
-
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:
-
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
- Returns:
- a URL handle for this resource.
- Throws:
IOException
- if the resource cannot be resolved as URL, i.e. if the resource is not available as descriptor
-
getURI
- Returns:
- a URI handle for this resource.
- Throws:
IOException
- if the resource cannot be resolved as URI, i.e. if the resource is not available as descriptor
-
getFile
- Returns:
- a File handle for this resource.
- Throws:
IOException
- if the resource cannot be resolved as absolute file path, i.e. if the resource is not available in a file system
-
contentLength
- Returns:
- the content length for this resource.
- Throws:
IOException
- if the resource cannot be resolved (in the file system or as some other known physical resource type)
-
lastModified
- Returns:
- the last-modified timestamp for this resource.
- Throws:
IOException
- if the resource cannot be resolved (in the file system or as some other known physical resource type)
-
createRelative
- Parameters:
relativePath
- the relative path (relative to this resource)- Returns:
- the resource handle for the relative resource
- Throws:
IOException
- if the relative resource cannot be determined
-
getFilename
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
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:
-