The Spring Framework

## org.springframework.core.io
Class AbstractResource

    java.lang.Object
      org.springframework.core.io.AbstractResource

All Implemented Interfaces:
  InputStreamSource, Resource

Direct Known Subclasses:
  ByteArrayResource, ClassPathResource, DescriptiveResource, FileSystemResource, InputStreamResource, PortletContextResource, ServletContextResource, UrlResource

    public abstract class AbstractResource

extends Object
implements Resource

Convenience base class for `Resource` implementations, pre-implementing typical behavior.

The "exists" method will check whether a File or InputStream can be opened; "isOpen" will always return false; "getURL" and "getFile" throw an exception; and "toString" will return the description.

Since:
  28.12.2003
Author:
  Juergen Hoeller

Constructor Summary
`AbstractResource()`

Method Summary
`Resource` `createRelative(String relativePath)` This implementation throws a FileNotFoundException, assuming that relative resources cannot be created for this resource.
`boolean` `equals(Object obj)` This implementation compares description strings.
`boolean` `exists()` This implementation checks whether a File can be opened, falling back to whether an InputStream can be opened.
`File` `getFile()` This implementation throws a FileNotFoundException, assuming that the resource cannot be resolved to an absolute file path.
`protected File` `getFileForLastModifiedCheck()` Determine the File to use for timestamp checking.
`String` `getFilename()` This implementation always throws IllegalStateException, assuming that the resource does not carry a filename.
`URI` `getURI()` This implementation builds a URI based on the URL returned by `getURL()`.
`URL` `getURL()` This implementation throws a FileNotFoundException, assuming that the resource cannot be resolved to a URL.
`int` `hashCode()` This implementation returns the description's hash code.
`boolean` `isOpen()` This implementation always returns `false`.
`boolean` `isReadable()` This implementation always returns `true`.
`long` `lastModified()` This implementation checks the timestamp of the underlying File, if available.
`String` `toString()` This implementation returns the description of this resource.

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Methods inherited from interface org.springframework.core.io.Resource
`getDescription`

Methods inherited from interface org.springframework.core.io.InputStreamSource
`getInputStream`

Constructor Detail

### AbstractResource

    public AbstractResource()

Method Detail

### exists

    public boolean exists()

  This implementation checks whether a File can be opened, falling back to whether an InputStream can be opened. This will cover both directories and content resources.

  Specified by:
    `exists` in interface `Resource`

### isReadable

    public boolean isReadable()

  This implementation always returns `true`.

  Specified by:
    `isReadable` in interface `Resource`

### isOpen

    public boolean isOpen()

  This implementation always returns `false`.

  Specified by:
    `isOpen` in interface `Resource`

### getURL

    public URL getURL()
               throws IOException

  This implementation throws a FileNotFoundException, assuming that the resource cannot be resolved to a URL.

  Specified by:
    `getURL` in interface `Resource`
  Throws:
    `IOException` - if the resource cannot be resolved as URL, i.e. if the resource is not available as descriptor

### getURI

    public URI getURI()
               throws IOException

  This implementation builds a URI based on the URL returned by `getURL()`.

  Specified by:
    `getURI` in interface `Resource`
  Throws:
    `IOException` - if the resource cannot be resolved as URI, i.e. if the resource is not available as descriptor

### getFile

    public File getFile()
                 throws IOException

  This implementation throws a FileNotFoundException, assuming that the resource cannot be resolved to an absolute file path.

  Specified by:
    `getFile` in interface `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

### lastModified

    public long lastModified()
                      throws IOException

  This implementation checks the timestamp of the underlying File, if available.

  Specified by:
    `lastModified` in interface `Resource`
  Throws:
    `IOException` - if the resource cannot be resolved (in the file system or as some other known physical resource type)
  See Also:
    `getFileForLastModifiedCheck()`

### getFileForLastModifiedCheck

    protected File getFileForLastModifiedCheck()
                                        throws IOException

  Determine the File to use for timestamp checking.

  The default implementation delegates to `getFile()`.

  Returns:
    the File to use for timestamp checking (never `null`)
  Throws:
    `IOException` - if the resource cannot be resolved as absolute file path, i.e. if the resource is not available in a file system

### createRelative

    public Resource createRelative(String relativePath)
                            throws IOException

  This implementation throws a FileNotFoundException, assuming that relative resources cannot be created for this resource.

  Specified by:
    `createRelative` in interface `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

    public String getFilename()
                       throws IllegalStateException

  This implementation always throws IllegalStateException, assuming that the resource does not carry a filename.

  Specified by:
    `getFilename` in interface `Resource`
  Throws:
    `IllegalStateException`

### toString

    public String toString()

  This implementation returns the description of this resource.

  Overrides:
    `toString` in class `Object`
  See Also:
    `Resource.getDescription()`

### equals

    public boolean equals(Object obj)

  This implementation compares description strings.

  Overrides:
    `equals` in class `Object`
  See Also:
    `Resource.getDescription()`

### hashCode

    public int hashCode()

  This implementation returns the description's hash code.

  Overrides:
    `hashCode` in class `Object`
  See Also:
    `Resource.getDescription()`

The Spring Framework

Copyright © 2002-2008 The Spring Framework.