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

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.
    boolean
    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.
    Return a File handle for this resource.
    Determine a filename for this resource, i.e.
    Return a URI handle for this resource.
    Return a URL handle for this resource.
    default boolean
    Determine whether this resource represents a file in a file system.
    default boolean
    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. 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.

    • 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

      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
    • getURI

      URI getURI() throws IOException
      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

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