org.codehaus.groovy.grails.io.support
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
 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