Spring for Android

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:
1.0
Author:
Juergen Hoeller
See Also:
URL

Constructor Summary
UrlResource(java.lang.String path)
          Create a new UrlResource based on a URL path.
UrlResource(java.lang.String protocol, java.lang.String location)
          Create a new UrlResource based on a URI specification.
UrlResource(java.lang.String protocol, java.lang.String location, java.lang.String fragment)
          Create a new UrlResource based on a URI specification.
UrlResource(java.net.URI uri)
          Create a new UrlResource based on the given URI object.
UrlResource(java.net.URL url)
          Create a new UrlResource based on the given URL object.
 
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.
 
Methods inherited from class org.springframework.core.io.AbstractFileResolvingResource
contentLength, customizeConnection, customizeConnection, 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(java.net.URI uri)
            throws java.net.MalformedURLException
Create a new UrlResource based on the given URI object.

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

UrlResource

public UrlResource(java.net.URL url)
Create a new UrlResource based on the given URL object.

Parameters:
url - a URL

UrlResource

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

Note: The given path needs to be pre-encoded if necessary.

Parameters:
path - a URL path
Throws:
java.net.MalformedURLException - if the given URL path is not valid
See Also:
URL.URL(String)

UrlResource

public UrlResource(java.lang.String protocol,
                   java.lang.String location)
            throws java.net.MalformedURLException
Create a new UrlResource based on a URI specification.

The given parts will automatically get encoded if necessary.

Parameters:
protocol - the URL protocol to use (e.g. "jar" or "file" - without colon); also known as "scheme"
location - the location (e.g. the file path within that protocol); also known as "scheme-specific part"
Throws:
java.net.MalformedURLException - if the given URL specification is not valid
See Also:
URI.URI(String, String, String)

UrlResource

public UrlResource(java.lang.String protocol,
                   java.lang.String location,
                   java.lang.String fragment)
            throws java.net.MalformedURLException
Create a new UrlResource based on a URI specification.

The given parts will automatically get encoded if necessary.

Parameters:
protocol - the URL protocol to use (e.g. "jar" or "file" - without colon); also known as "scheme"
location - the location (e.g. the file path within that protocol); also known as "scheme-specific part"
fragment - the fragment within that location (e.g. anchor on an HTML page, as following after a "#" separator)
Throws:
java.net.MalformedURLException - if the given URL specification is not valid
See Also:
URI.URI(String, String, String)
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 for the underlying resource (must not be null)
Throws:
java.io.IOException - if the stream could not be opened
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.

Specified by:
getURL in interface Resource
Overrides:
getURL in class AbstractResource
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.

Specified by:
getURI in interface Resource
Overrides:
getURI in class AbstractResource
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
See Also:
ResourceUtils.getFile(java.net.URL, String)

createRelative

public Resource createRelative(java.lang.String relativePath)
                        throws java.net.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:
java.net.MalformedURLException
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.

Specified by:
getFilename in interface Resource
Overrides:
getFilename in class AbstractResource
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 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()

Spring for Android