Interface Resource
- All Superinterfaces:
InputStreamSource
- All Known Implementing Classes:
AbstractFileResolvingResource
,AbstractResource
,ClassPathResource
,DefaultResourceLoader.ClassPathContextResource
,FileSystemResource
,FileUrlResource
,UrlResource
,VfsResource
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.
- Since:
- 28.12.2003
- Author:
- Juergen Hoeller see #getInputStream() see #getURL() see #getURI() see #getFile() see WritableResource see ContextResource see UrlResource see FileUrlResource see FileSystemResource see ClassPathResource see ByteArrayResource see InputStreamResource
-
Method Summary
Modifier and TypeMethodDescriptionlong
Determine the content length for this resource.createRelative
(String relativePath) Create a resource relative to this resource.boolean
exists()
Determine 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.getURI()
Return a URI handle for this resource.getURL()
Return a URL handle for this resource.default boolean
isFile()
Determine whether this resource represents a file in a file system.default boolean
isOpen()
Indicate whether this resource represents a handle with an open stream.Methods inherited from interface nl.basjes.parse.useragent.utils.springframework.core.io.InputStreamSource
getInputStream
-
Method Details
-
exists
boolean exists()Determine 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. -
isOpen
default boolean isOpen()Indicate whether this resource represents a handle with an open stream. Iftrue
, the InputStream cannot be read multiple times, and must be read and closed to avoid resource leaks.Will be
false
for typical resource descriptors. -
isFile
default boolean isFile()Determine whether this resource represents a file in a file system.A value of
true
strongly suggests (but does not guarantee) that a {link #getFile()} call will succeed.This is conservatively
false
by default.- Since:
- 5.0 see #getFile()
-
getURL
Return 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 a descriptor
-
getURI
Return 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 a descriptor- Since:
- 2.5
-
getFile
Return a File handle for this resource.- Throws:
FileNotFoundException
- if the resource cannot be resolved as absolute file path, i.e. if the resource is not available in a file systemIOException
- in case of general resolution/reading failures see #getInputStream()
-
contentLength
Determine 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)
-
createRelative
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
null
if this type of resource does not have a filename. -
getDescription
String 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
toString
method. see Object#toString()
-