Interface Resource
- All Known Implementing Classes:
ConditionalResource,FileBackedHTTPResource,HTTPResource,ResourceHelper,RunnableFileSystemResource
This is API-compatible with the
Spring
Resource but allows Resource-consuming code to not require Spring.
Shibboleth components only implement this interface if they also implement the Spring Resource
interface. Refer to the Spring documentation to implement other versions of this in a Spring-free environment.
-
Method Summary
Modifier and TypeMethodDescriptionlongDetermine the content length for this resource.createRelativeResource(String relativePath) Create a resource relative to this resource.booleanexists()Return whether this resource actually exists in physical form.Return a description for this resource, to be used for error output when working with the resource.getFile()Return a File handle for this resource.Determine a filename for this resource, i.e.Return anInputStream.getURI()Return a URI handle for this resource.getURL()Return a URL handle for this resource.default booleanisFile()Determine whether this resource represents a file in a file system.booleanisOpen()Return whether this resource represents a handle with an open stream.booleanReturn whether the contents of this resource can be read, e.g.longDetermine the last-modified timestamp for this resource.
-
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
Resourcehandle only guarantees a valid descriptor handle.- Returns:
- whether this resource actually exists in physical form.
-
isFile
default boolean isFile()Determine whether this resource represents a file in a file system.A value of
truestrongly suggests (but does not guarantee) that agetFile()call will succeed.This is conservatively
falseby default.- Returns:
- true iff this resource represents a file in a file system
- Since:
- 9.0.0
-
isReadable
boolean isReadable()Return whether the contents of this resource can be read, e.g. viagetInputStream()orgetFile().Will be
truefor typical resource descriptors; note that actual content reading may still fail when attempted. However, a value offalseis a definitive indication that the resource content cannot be read.- Returns:
- whether the contents of this resource can be read.
- 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
falsefor typical resource descriptors.- Returns:
- whether this resource represents a handle with an open stream.
-
getURL
Return a URL handle for this resource.- 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
Return a URI handle for this resource.- 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
Return a File handle for this resource.- 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
-
getInputStream
Return anInputStream.It is expected that each call creates a fresh stream.
This requirement is particularly important when you consider an API such as JavaMail, which needs to be able to read the stream multiple times when creating mail attachments. For such a use case, it is required that each
getInputStream()call returns a fresh stream.- Returns:
- the input stream for the underlying resource (must not be
null) - Throws:
IOException- if the stream could not be opened
-
contentLength
Determine the content length for this resource.- 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
Determine the last-modified timestamp for this resource.- 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)
-
createRelativeResource
Create a resource relative to this resource.- 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
Determine a filename for this resource, i.e. typically the last part of the path: for example, "myfile.txt".- Returns:
nullif this type of resource does not have a filename, otherwise the file name.
-
getDescription
Return 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
toStringmethod.- Returns:
- a description for this resource.
- See Also:
-