org.codehaus.groovy.grails.io.support
Class UrlResource

java.lang.Object
  extended by org.codehaus.groovy.grails.io.support.AbstractFileResolvingResource
      extended by org.codehaus.groovy.grails.io.support.UrlResource
All Implemented Interfaces:
Resource

public class UrlResource
extends AbstractFileResolvingResource

Resource implementation for java.net.URL locators. Obviously supports resolution as URL, and also as File in case of the "file:" protocol.

Since:
28.12.2003
See Also:
URL

Constructor Summary
UrlResource(java.lang.String path)
          Create a new UrlResource.
UrlResource(java.net.URI uri)
          Create a new UrlResource.
UrlResource(java.net.URL url)
          Create a new UrlResource.
 
Method Summary
 Resource createRelative(java.lang.String relativePath)
          This implementation creates a UrlResource, applying the given path relative to the path of the underlying URL of this resource descriptor.
 boolean equals(java.lang.Object obj)
          This implementation compares the underlying URL references.
 java.lang.String getDescription()
          This implementation returns a description that includes the URL.
 java.io.File getFile()
          This implementation returns a File reference for the underlying URL/URI, provided that it refers to a file in the file system.
 java.lang.String getFilename()
          This implementation returns the name of the file that this URL refers to.
 java.io.InputStream getInputStream()
          This implementation opens an InputStream for the given URL.
 java.net.URI getURI()
          This implementation returns the underlying URI directly, if possible.
 java.net.URL getURL()
          This implementation returns the underlying URL reference.
 int hashCode()
          This implementation returns the hash code of the underlying URL reference.
 java.lang.String toString()
           
 
Methods inherited from class org.codehaus.groovy.grails.io.support.AbstractFileResolvingResource
contentLength, exists, getFile, getFileForLastModifiedCheck, isReadable, lastModified
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

UrlResource

public UrlResource(java.net.URL url)
Create a new UrlResource.

Parameters:
url - a URL

UrlResource

public UrlResource(java.net.URI uri)
            throws java.net.MalformedURLException
Create a new UrlResource.

Parameters:
uri - a URI
Throws:
java.net.MalformedURLException - if the given URL path is not valid

UrlResource

public UrlResource(java.lang.String path)
            throws java.net.MalformedURLException
Create a new UrlResource.

Parameters:
path - a URL path
Throws:
java.net.MalformedURLException - if the given URL path is not valid
Method Detail

getInputStream

public java.io.InputStream getInputStream()
                                   throws java.io.IOException
This implementation opens an InputStream for the given URL. It sets the "UseCaches" flag to false, mainly to avoid jar file locking on Windows.

Returns:
The input stream
Throws:
java.io.IOException
See Also:
URL.openConnection(), URLConnection.setUseCaches(boolean), URLConnection.getInputStream()

getURL

public java.net.URL getURL()
                    throws java.io.IOException
This implementation returns the underlying URL reference.

Throws:
java.io.IOException - if the resource cannot be resolved as URL, i.e. if the resource is not available as descriptor

getURI

public java.net.URI getURI()
                    throws java.io.IOException
This implementation returns the underlying URI directly, if possible.

Throws:
java.io.IOException - if the resource cannot be resolved as URI, i.e. if the resource is not available as descriptor

getFile

public java.io.File getFile()
                     throws java.io.IOException
This implementation returns a File reference for the underlying URL/URI, provided that it refers to a file in the file system.

Specified by:
getFile in interface Resource
Overrides:
getFile in class AbstractFileResolvingResource
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

createRelative

public Resource createRelative(java.lang.String relativePath)
This implementation creates a UrlResource, applying the given path relative to the path of the underlying URL of this resource descriptor.

Parameters:
relativePath - The relative path
Returns:
The new resource
See Also:
URL.URL(java.net.URL, String)

getFilename

public java.lang.String getFilename()
This implementation returns the name of the file that this URL refers to.

See Also:
URL.getFile(), File.getName()

getDescription

public java.lang.String getDescription()
This implementation returns a description that includes the URL.

See Also:
Object.toString()

equals

public boolean equals(java.lang.Object obj)
This implementation compares the underlying URL references.

Overrides:
equals in class java.lang.Object

hashCode

public int hashCode()
This implementation returns the hash code of the underlying URL reference.

Overrides:
hashCode in class java.lang.Object

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object