All Superinterfaces:
InputStreamSource
All Known Implementing Classes:
AbstractFileResolvingResource, AbstractResource, ClassPathResource, DefaultResourceLoader.ClassPathContextResource, FileSystemResource, FileUrlResource, UrlResource

public interface Resource extends InputStreamSource
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 Type
    Method
    Description
    long
    Determine the content length for this resource.
    createRelative(String relativePath)
    Create a resource relative to this resource.
    Return a description for this resource, to be used for error output when working with the resource.
    Return a File handle for this resource.
    Determine a filename for this resource, i.e.
    Return a URL handle for this resource.

    Methods inherited from interface nl.basjes.parse.useragent.utils.springframework.core.io.InputStreamSource

    getInputStream
  • Method Details

    • getURL

      URL getURL() throws IOException
      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
    • getFile

      File getFile() throws IOException
      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 system
      IOException - in case of general resolution/reading failures see #getInputStream()
    • contentLength

      long contentLength() throws IOException
      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

      Resource createRelative(String relativePath) throws IOException
      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

      @Nullable 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.

    • 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()