org.springframework.core.io
Class UrlResource

java.lang.Object
  extended by org.springframework.core.io.AbstractResource
      extended by org.springframework.core.io.AbstractFileResolvingResource
          extended by org.springframework.core.io.UrlResource
All Implemented Interfaces:
InputStreamSource, 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
Author:
Juergen Hoeller
See Also:
URL

Constructor Summary
UrlResource(String path)
          Create a new UrlResource.
UrlResource(URI uri)
          Create a new UrlResource.
UrlResource(URL url)
          Create a new UrlResource.
 
Method Summary
 Resource createRelative(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(Object obj)
          This implementation compares the underlying URL references.
 String getDescription()
          This implementation returns a description that includes the URL.
 File getFile()
          This implementation returns a File reference for the underlying URL/URI, provided that it refers to a file in the file system.
 String getFilename()
          This implementation returns the name of the file that this URL refers to.
 InputStream getInputStream()
          This implementation opens an InputStream for the given URL.
 URI getURI()
          This implementation returns the underlying URI directly, if possible.
 URL getURL()
          This implementation returns the underlying URL reference.
 int hashCode()
          This implementation returns the hash code of the underlying URL reference.
 
Methods inherited from class org.springframework.core.io.AbstractFileResolvingResource
contentLength, exists, getFile, getFileForLastModifiedCheck, isReadable, lastModified
 
Methods inherited from class org.springframework.core.io.AbstractResource
isOpen, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

UrlResource

public UrlResource(URL url)
Create a new UrlResource.

Parameters:
url - a URL

UrlResource

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

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

UrlResource

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

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

getInputStream

public InputStream getInputStream()
                           throws 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 for the underlying resource (must not be null)
Throws:
IOException - if the stream could not be opened
See Also:
URL.openConnection(), URLConnection.setUseCaches(boolean), URLConnection.getInputStream()

getURL

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

Specified by:
getURL in interface Resource
Overrides:
getURL in class AbstractResource
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 returns the underlying URI directly, if possible.

Specified by:
getURI in interface Resource
Overrides:
getURI in class AbstractResource
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 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:
IOException - if the resource cannot be resolved as absolute file path, i.e. if the resource is not available in a file system
See Also:
ResourceUtils.getFile(java.net.URL, String)

createRelative

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

Specified by:
createRelative in interface Resource
Overrides:
createRelative in class AbstractResource
Parameters:
relativePath - the relative path (relative to this resource)
Returns:
the resource handle for the relative resource
Throws:
MalformedURLException
See Also:
URL.URL(java.net.URL, String)

getFilename

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

Specified by:
getFilename in interface Resource
Overrides:
getFilename in class AbstractResource
See Also:
URL.getFile(), File.getName()

getDescription

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

See Also:
Object.toString()

equals

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

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

hashCode

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

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