org.apache.wicket.request
Class Url

java.lang.Object
  extended by org.apache.wicket.request.Url
All Implemented Interfaces:
java.io.Serializable

public final class Url
extends java.lang.Object
implements java.io.Serializable

Represents the URL part after Wicket Filter. For example if Wicket Filter is mapped to /app/* then with URL /app/my/url the Url object would represent part my/url. If Wicket Filter is mapped to /* then with URL /my/url the Url object would represent my/url (without leading the slash).

URL consists of segments and query parameters.

Example URLs:

 foo/bar/baz?a=1&b=5    - segments: ["foo","bar,"baz], query parameters: ["a"="1", "b"="5"]
 foo/bar//baz?=4&6      - segments: ["foo", "bar", "", "baz"], query parameters: [""="4", "6"=""]
 /foo/bar/              - segments: ["", "foo", "bar", ""]
 foo/bar//              - segments: ["foo", "bar", "", ""]
 ?a=b                   - segments: [ ], query parameters: ["a"="b"]
 /                      - segments: ["", ""]   (note that Url represents part after Wicket Filter 
                                                - so if Wicket filter is mapped to /* this would be
                                                an additional slash, i.e. //
 
The Url class takes care of encoding and decoding of the segments and parameters.

Author:
Matej Knopp, Igor Vaynberg
See Also:
Serialized Form

Nested Class Summary
static class Url.QueryParameter
          Represents a single query parameter
 
Constructor Summary
Url()
          Construct.
Url(java.nio.charset.Charset charset)
           
Url(java.util.List<java.lang.String> segments, java.util.List<Url.QueryParameter> parameters)
          Construct.
Url(java.util.List<java.lang.String> segments, java.util.List<Url.QueryParameter> parameters, java.nio.charset.Charset charset)
          Construct.
Url(Url url)
          Construct.
 
Method Summary
 void addQueryParameter(java.lang.String name, java.lang.Object value)
          Convenience method that removes adds a query parameter with given name
 void concatSegments(java.util.List<java.lang.String> segments)
          Concatenate the specified segments; The segments can be relative - begin with "." or "..".
 boolean equals(java.lang.Object obj)
           
 java.nio.charset.Charset getCharset()
           
 Url.QueryParameter getQueryParameter(java.lang.String name)
          Returns first query parameter with specified name or null if such query parameter doesn't exist.
 java.util.List<Url.QueryParameter> getQueryParameters()
          Returns query parameters of the URL.
 StringValue getQueryParameterValue(java.lang.String name)
          Returns the value of first query parameter with specified name.
 java.util.List<java.lang.String> getSegments()
          Returns segments of the URL.
 int hashCode()
           
 boolean isAbsolute()
          Returns whether the URL is absolute.
static Url parse(java.lang.String url)
          Parses the given URL string.
static Url parse(java.lang.String url, java.nio.charset.Charset charset)
          Parses the given URL string.
 void prependLeadingSegments(java.util.List<java.lang.String> newSegments)
          Convenience method that prepends segments to the segments collection
 void removeLeadingSegments(int count)
          Convenience method that removes count leading segments
 void removeQueryParameters(java.lang.String name)
          Convenience method that removes all query parameters with given name.
 void setQueryParameter(java.lang.String name, java.lang.Object value)
          Convenience method that removes all query parameters with given name and adds new query parameter with specified name and value
 java.lang.String toString()
           
 java.lang.String toString(java.nio.charset.Charset charset)
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Url

public Url()
Construct.


Url

public Url(java.nio.charset.Charset charset)

Url

public Url(Url url)
Construct.

Parameters:
url - url being copied

Url

public Url(java.util.List<java.lang.String> segments,
           java.util.List<Url.QueryParameter> parameters)
Construct.

Parameters:
segments -
parameters -

Url

public Url(java.util.List<java.lang.String> segments,
           java.util.List<Url.QueryParameter> parameters,
           java.nio.charset.Charset charset)
Construct.

Parameters:
segments -
parameters -
Method Detail

parse

public static Url parse(java.lang.String url)
Parses the given URL string.

Parameters:
url -
Returns:
Url object

parse

public static Url parse(java.lang.String url,
                        java.nio.charset.Charset charset)
Parses the given URL string.

Parameters:
url -
Returns:
Url object

getCharset

public java.nio.charset.Charset getCharset()

getSegments

public java.util.List<java.lang.String> getSegments()
Returns segments of the URL. Segments form the part before query string.

Returns:
mutable list of segments

getQueryParameters

public java.util.List<Url.QueryParameter> getQueryParameters()
Returns query parameters of the URL.

Returns:
mutable list of query parameters

isAbsolute

public boolean isAbsolute()
Returns whether the URL is absolute.

Returns:
true if URL is absolute, false otherwise.

removeQueryParameters

public void removeQueryParameters(java.lang.String name)
Convenience method that removes all query parameters with given name.

Parameters:
name - query parameter name

removeLeadingSegments

public void removeLeadingSegments(int count)
Convenience method that removes count leading segments

Parameters:
count -

prependLeadingSegments

public void prependLeadingSegments(java.util.List<java.lang.String> newSegments)
Convenience method that prepends segments to the segments collection

Parameters:
newSegments -

setQueryParameter

public void setQueryParameter(java.lang.String name,
                              java.lang.Object value)
Convenience method that removes all query parameters with given name and adds new query parameter with specified name and value

Parameters:
name -
value -

addQueryParameter

public void addQueryParameter(java.lang.String name,
                              java.lang.Object value)
Convenience method that removes adds a query parameter with given name

Parameters:
name -
value -

getQueryParameter

public Url.QueryParameter getQueryParameter(java.lang.String name)
Returns first query parameter with specified name or null if such query parameter doesn't exist.

Parameters:
name -
Returns:
query parameter or null

getQueryParameterValue

public StringValue getQueryParameterValue(java.lang.String name)
Returns the value of first query parameter with specified name. Note that this method never returns null. Not even if the parameter does not exist.

Parameters:
name -
Returns:
StringValue instance wrapping the parameter value
See Also:
StringValue.isNull()

equals

public boolean equals(java.lang.Object obj)
Overrides:
equals in class java.lang.Object
See Also:
Object.equals(java.lang.Object)

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object
See Also:
Object.hashCode()

toString

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

toString

public java.lang.String toString(java.nio.charset.Charset charset)
See Also:
Object.toString()

concatSegments

public void concatSegments(java.util.List<java.lang.String> segments)
Concatenate the specified segments; The segments can be relative - begin with "." or "..".

Parameters:
segments -


Copyright © 2004-2010 Apache Software Foundation. All Rights Reserved.