com.gargoylesoftware.htmlunit.util
Class UrlUtils

java.lang.Object
  extended by com.gargoylesoftware.htmlunit.util.UrlUtils

public final class UrlUtils
extends java.lang.Object

URL utilities class that makes it easy to create new URLs based off of old URLs without having to assemble or parse them yourself.

Version:
$Revision: 4791 $
Author:
Daniel Gredler, Martin Tamme, Sudhan Moghe

Method Summary
static java.net.URL getUrlWithNewHost(java.net.URL u, java.lang.String newHost)
          Creates and returns a new URL identical to the specified URL, except using the specified host.
static java.net.URL getUrlWithNewPath(java.net.URL u, java.lang.String newPath)
          Creates and returns a new URL identical to the specified URL, except using the specified path.
static java.net.URL getUrlWithNewPort(java.net.URL u, int newPort)
          Creates and returns a new URL identical to the specified URL, except using the specified port.
static java.net.URL getUrlWithNewProtocol(java.net.URL u, java.lang.String newProtocol)
          Creates and returns a new URL identical to the specified URL, except using the specified protocol.
static java.net.URL getUrlWithNewQuery(java.net.URL u, java.lang.String newQuery)
          Creates and returns a new URL identical to the specified URL, except using the specified query string.
static java.net.URL getUrlWithNewRef(java.net.URL u, java.lang.String newRef)
          Creates and returns a new URL identical to the specified URL, except using the specified reference.
static java.lang.String resolveUrl(java.lang.String baseUrl, java.lang.String relativeUrl)
          Resolves a given relative URL against a base URL.
static java.lang.String resolveUrl(java.net.URL baseUrl, java.lang.String relativeUrl)
          Resolves a given relative URL against a base URL.
static java.net.URL toUrlSafe(java.lang.String url)
          Constructs a URL instance based on the specified URL string, taking into account the fact that the specified URL string may represent an "about:..." URL, a "javascript:..." URL, or a data:... URL.
static java.net.URL toUrlUnsafe(java.lang.String url)
          Constructs a URL instance based on the specified URL string, taking into account the fact that the specified URL string may represent an "about:..." URL, a "javascript:..." URL, or a data:... URL.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

toUrlSafe

public static java.net.URL toUrlSafe(java.lang.String url)

Constructs a URL instance based on the specified URL string, taking into account the fact that the specified URL string may represent an "about:..." URL, a "javascript:..." URL, or a data:... URL.

The caller should be sure that URL strings passed to this method will parse correctly as URLs, as this method never expects to have to handle MalformedURLExceptions.

Parameters:
url - the URL string to convert into a URL instance
Returns:
the constructed URL instance

toUrlUnsafe

public static java.net.URL toUrlUnsafe(java.lang.String url)
                                throws java.net.MalformedURLException

Constructs a URL instance based on the specified URL string, taking into account the fact that the specified URL string may represent an "about:..." URL, a "javascript:..." URL, or a data:... URL.

Unlike toUrlSafe(String), the caller need not be sure that URL strings passed to this method will parse correctly as URLs.

Parameters:
url - the URL string to convert into a URL instance
Returns:
the constructed URL instance
Throws:
java.net.MalformedURLException - if the URL string cannot be converted to a URL instance

getUrlWithNewProtocol

public static java.net.URL getUrlWithNewProtocol(java.net.URL u,
                                                 java.lang.String newProtocol)
                                          throws java.net.MalformedURLException
Creates and returns a new URL identical to the specified URL, except using the specified protocol.

Parameters:
u - the URL on which to base the returned URL
newProtocol - the new protocol to use in the returned URL
Returns:
a new URL identical to the specified URL, except using the specified protocol
Throws:
java.net.MalformedURLException - if there is a problem creating the new URL

getUrlWithNewHost

public static java.net.URL getUrlWithNewHost(java.net.URL u,
                                             java.lang.String newHost)
                                      throws java.net.MalformedURLException
Creates and returns a new URL identical to the specified URL, except using the specified host.

Parameters:
u - the URL on which to base the returned URL
newHost - the new host to use in the returned URL
Returns:
a new URL identical to the specified URL, except using the specified host
Throws:
java.net.MalformedURLException - if there is a problem creating the new URL

getUrlWithNewPort

public static java.net.URL getUrlWithNewPort(java.net.URL u,
                                             int newPort)
                                      throws java.net.MalformedURLException
Creates and returns a new URL identical to the specified URL, except using the specified port.

Parameters:
u - the URL on which to base the returned URL
newPort - the new port to use in the returned URL
Returns:
a new URL identical to the specified URL, except using the specified port
Throws:
java.net.MalformedURLException - if there is a problem creating the new URL

getUrlWithNewPath

public static java.net.URL getUrlWithNewPath(java.net.URL u,
                                             java.lang.String newPath)
                                      throws java.net.MalformedURLException
Creates and returns a new URL identical to the specified URL, except using the specified path.

Parameters:
u - the URL on which to base the returned URL
newPath - the new path to use in the returned URL
Returns:
a new URL identical to the specified URL, except using the specified path
Throws:
java.net.MalformedURLException - if there is a problem creating the new URL

getUrlWithNewRef

public static java.net.URL getUrlWithNewRef(java.net.URL u,
                                            java.lang.String newRef)
                                     throws java.net.MalformedURLException
Creates and returns a new URL identical to the specified URL, except using the specified reference.

Parameters:
u - the URL on which to base the returned URL
newRef - the new reference to use in the returned URL
Returns:
a new URL identical to the specified URL, except using the specified reference
Throws:
java.net.MalformedURLException - if there is a problem creating the new URL

getUrlWithNewQuery

public static java.net.URL getUrlWithNewQuery(java.net.URL u,
                                              java.lang.String newQuery)
                                       throws java.net.MalformedURLException
Creates and returns a new URL identical to the specified URL, except using the specified query string.

Parameters:
u - the URL on which to base the returned URL
newQuery - the new query string to use in the returned URL
Returns:
a new URL identical to the specified URL, except using the specified query string
Throws:
java.net.MalformedURLException - if there is a problem creating the new URL

resolveUrl

public static java.lang.String resolveUrl(java.lang.String baseUrl,
                                          java.lang.String relativeUrl)
Resolves a given relative URL against a base URL. See RFC1808 Section 4 for more details.

Parameters:
baseUrl - The base URL in which to resolve the specification.
relativeUrl - The relative URL to resolve against the base URL.
Returns:
the resolved specification.

resolveUrl

public static java.lang.String resolveUrl(java.net.URL baseUrl,
                                          java.lang.String relativeUrl)
Resolves a given relative URL against a base URL. See RFC1808 Section 4 for more details.

Parameters:
baseUrl - The base URL in which to resolve the specification.
relativeUrl - The relative URL to resolve against the base URL.
Returns:
the resolved specification.


Copyright © 2002-2011 Gargoyle Software Inc.. All Rights Reserved.