org.mortbay.util
Class URI

java.lang.Object
  |
  +--org.mortbay.util.URI
All Implemented Interfaces:
java.lang.Cloneable

public class URI
extends java.lang.Object
implements java.lang.Cloneable

URI Holder. This class assists with the decoding and encoding or HTTP URI's. It differs from the java.net.URL class as it does not provide communications ability, but it does assist with query string formatting.

Version:
$Id: URI.java,v 1.3 2001/10/11 01:17:44 gregwilkins Exp $
Author:
Greg Wilkins (gregw)
See Also:
UrlEncoded

Constructor Summary
URI(java.lang.String uri)
          Construct from a String.
URI(URI uri)
          Copy Constructor .
 
Method Summary
static java.lang.String addPaths(java.lang.String p1, java.lang.String p2)
          Add two URI path segments.
static java.lang.String canonicalPath(java.lang.String path)
          Convert a path to a cananonical form.
 void clearParameters()
          Clear the URI _parameters.
 java.lang.Object clone()
          Clone URI.
static java.lang.String decodePath(java.lang.String path)
           
static java.lang.String encodePath(java.lang.String path)
           
static void encodePath(java.lang.StringBuffer buf, java.lang.String path)
           
 java.lang.String get(java.lang.String name)
          Get named value
 java.lang.String getHost()
          Get the uri host.
 java.util.Set getParameterNames()
          Get the uri query _parameters names.
 MultiMap getParameters()
          Get the uri query _parameters.
 java.lang.String getPath()
          Get the uri path.
 int getPort()
          Get the uri port.
 java.lang.String getQuery()
          Get the uri query String.
 java.lang.String getScheme()
          Get the uri scheme.
 java.util.Map getUnmodifiableParameters()
          Get the uri query _parameters.
 java.util.List getValues(java.lang.String name)
          Get named multiple values.
 boolean isAbsolute()
          Is the URI an absolute URL?
static java.lang.String oldCanonicalPath(java.lang.String path)
          Convert a path to a cananonical form.
static java.lang.String parentPath(java.lang.String p)
          Return the parent Path.
 void put(java.util.Map values)
          Add dictionary to the uri query _parameters.
 java.lang.Object put(java.lang.Object name, java.lang.Object value)
          Add name value pair to the uri query _parameters.
 void put(java.lang.String encoded)
          Add encoded _parameters.
 void remove(java.lang.String name)
          Remove named value
 void setEncodeNulls(boolean b)
          Set if this URI should encode nulls as an empty = clause.
 void setHost(java.lang.String host)
          Set the uri host.
 void setPath(java.lang.String path)
          Set the uri path.
 void setPort(int port)
          Set the uri port.
 void setQuery(java.lang.String query)
          Set the uri query String.
 void setScheme(java.lang.String scheme)
          Set the uri scheme.
static java.lang.String stripPath(java.lang.String path)
          Strip parameters from a path.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

URI

public URI(URI uri)
    throws java.lang.IllegalArgumentException
Copy Constructor .
Parameters:
uri -  

URI

public URI(java.lang.String uri)
    throws java.lang.IllegalArgumentException
Construct from a String. The string must contain a URI path, but optionaly may contain a scheme, host, port and query string.
Parameters:
uri - [scheme://host[:port]]/path[?query]
Method Detail

isAbsolute

public boolean isAbsolute()
Is the URI an absolute URL?
Returns:
True if the URI has a scheme or host

getScheme

public java.lang.String getScheme()
Get the uri scheme.
Returns:
the URI scheme

setScheme

public void setScheme(java.lang.String scheme)
Set the uri scheme.
Parameters:
scheme - the uri scheme

getHost

public java.lang.String getHost()
Get the uri host.
Returns:
the URI host

setHost

public void setHost(java.lang.String host)
Set the uri host.
Parameters:
host - the uri host

getPort

public int getPort()
Get the uri port.
Returns:
the URI port

setPort

public void setPort(int port)
Set the uri port. A port of 0 implies use the default port.
Parameters:
port - the uri port

getPath

public java.lang.String getPath()
Get the uri path.
Returns:
the URI path

setPath

public void setPath(java.lang.String path)
Set the uri path.
Parameters:
path - the URI path

getQuery

public java.lang.String getQuery()
Get the uri query String.
Returns:
the URI query string

setQuery

public void setQuery(java.lang.String query)
Set the uri query String.
Parameters:
query - the URI query string

setEncodeNulls

public void setEncodeNulls(boolean b)
Set if this URI should encode nulls as an empty = clause.
Parameters:
b - If true then encode nulls

getParameterNames

public java.util.Set getParameterNames()
Get the uri query _parameters names.
Returns:
Unmodifiable set of URI query _parameters names

getParameters

public MultiMap getParameters()
Get the uri query _parameters.
Returns:
the URI query _parameters

getUnmodifiableParameters

public java.util.Map getUnmodifiableParameters()
Get the uri query _parameters.
Returns:
the URI query _parameters in an unmodifiable map.

clearParameters

public void clearParameters()
Clear the URI _parameters.

put

public void put(java.lang.String encoded)
Add encoded _parameters.
Parameters:
encoded - A HTTP encoded string of _parameters: e.g.. "a=1&b=2"

put

public java.lang.Object put(java.lang.Object name,
                            java.lang.Object value)
Add name value pair to the uri query _parameters.
Parameters:
name - name of value
value - The value, which may be a multi valued list or String array.

put

public void put(java.util.Map values)
Add dictionary to the uri query _parameters.

get

public java.lang.String get(java.lang.String name)
Get named value

getValues

public java.util.List getValues(java.lang.String name)
Get named multiple values.
Parameters:
name - The parameter name
Returns:
Umodifiable list of values or null

remove

public void remove(java.lang.String name)
Remove named value

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object
Returns:
the URI string encoded.

encodePath

public static java.lang.String encodePath(java.lang.String path)

encodePath

public static void encodePath(java.lang.StringBuffer buf,
                              java.lang.String path)

decodePath

public static java.lang.String decodePath(java.lang.String path)

clone

public java.lang.Object clone()
Clone URI.
Returns:
cloned URI

addPaths

public static java.lang.String addPaths(java.lang.String p1,
                                        java.lang.String p2)
Add two URI path segments. Handles null and empty paths, path and query params (eg ?a=b or ;JSESSIONID=xxx) and avoids duplicate '/'
Parameters:
p1 - URI path segment
p2 - URI path segment
Returns:
Legally combined path segments.

parentPath

public static java.lang.String parentPath(java.lang.String p)
Return the parent Path. Treat a URI like a directory path and return the parent directory.
Parameters:
p -  
Returns:
 

stripPath

public static java.lang.String stripPath(java.lang.String path)
Strip parameters from a path. Return path upto any semicolon parameters.
Parameters:
path -  
Returns:
 

oldCanonicalPath

public static java.lang.String oldCanonicalPath(java.lang.String path)
Convert a path to a cananonical form. All instances of "//", "." and ".." are factored out. Null is returned if the path tries to .. above it's root.
Parameters:
path -  
Returns:
path or null.

canonicalPath

public static java.lang.String canonicalPath(java.lang.String path)
Convert a path to a cananonical form. All instances of "//", "." and ".." are factored out. Null is returned if the path tries to .. above it's root.
Parameters:
path -  
Returns:
path or null.


Copyright © 2000 Mortbay Consulting Pty. Ltd. All Rights Reserved.