Interface Resource

  • All Known Implementing Classes:
    AbstractFileResolvingResource, ClassPathResource, FileSystemResource, UrlResource

    public interface Resource
    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
    See Also:
    getURL(), getURI(), getFile()
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      long contentLength()
      Determine the content length for this resource.
      Resource createRelative​(java.lang.String relativePath)
      Creates a new resource relative to this one
      boolean exists()
      Return whether this resource actually exists in physical form.
      java.lang.String getDescription()
      Return a description for this resource, to be used for error output when working with the resource.
      java.io.File getFile()
      Return a File handle for this resource.
      java.lang.String getFilename()
      Determine a filename for this resource, i.e.
      java.io.InputStream getInputStream()
      An input stream
      java.net.URI getURI()
      Return a URI handle for this resource.
      java.net.URL getURL()
      Return a URL handle for this resource.
      boolean isReadable()
      Return whether the contents of this resource can be read, e.g.
      long lastModified()
      Determine the last-modified timestamp for this resource.
    • Method Detail

      • getInputStream

        java.io.InputStream getInputStream()
                                    throws java.io.IOException
        An input stream
        Returns:
        The input stream
        Throws:
        java.io.IOException
      • 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.

      • isReadable

        boolean isReadable()
        Return whether the contents of this resource can be read, e.g. via getInputStream() or getFile().

        Will be true for typical resource descriptors; note that actual content reading may still fail when attempted. However, a value of false is a definitive indication that the resource content cannot be read.

        See Also:
        getInputStream()
      • getURL

        java.net.URL getURL()
                     throws java.io.IOException
        Return a URL handle for this resource.
        Throws:
        java.io.IOException - if the resource cannot be resolved as URL, i.e. if the resource is not available as descriptor
      • getURI

        java.net.URI getURI()
                     throws java.io.IOException
        Return a URI handle for this resource.
        Throws:
        java.io.IOException - if the resource cannot be resolved as URI, i.e. if the resource is not available as descriptor
      • getFile

        java.io.File getFile()
                      throws java.io.IOException
        Return a File handle for this resource.
        Throws:
        java.io.IOException - if the resource cannot be resolved as absolute file path, i.e. if the resource is not available in a file system
      • contentLength

        long contentLength()
                    throws java.io.IOException
        Determine the content length for this resource.
        Throws:
        java.io.IOException - if the resource cannot be resolved (in the file system or as some other known physical resource type)
      • lastModified

        long lastModified()
                   throws java.io.IOException
        Determine the last-modified timestamp for this resource.
        Throws:
        java.io.IOException - if the resource cannot be resolved (in the file system or as some other known physical resource type)
      • getFilename

        java.lang.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

        java.lang.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 Also:
        Object.toString()
      • createRelative

        Resource createRelative​(java.lang.String relativePath)
        Creates a new resource relative to this one
        Parameters:
        relativePath - The relative path
        Returns:
        The new resource