org.loom.url
Class UrlBuilder

java.lang.Object
  extended by org.loom.url.UrlBuilder
All Implemented Interfaces:
java.lang.Cloneable
Direct Known Subclasses:
BalancedUrlBuilder

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

Creates a URL from a action/event pair, or (alternatively) a URL with the web context prepended.


Field Summary
static java.lang.Integer INSECURE_PORT
          default insecure (http) port
static java.lang.String INSECURE_SCHEME
          insecure (http) scheme
static java.lang.Integer SECURE_PORT
          default secure (https) port
static java.lang.String SECURE_SCHEME
          secure (https) scheme
 
Constructor Summary
UrlBuilder()
           
UrlBuilder(java.lang.Class<? extends Action> actionClass, java.lang.String event)
           
UrlBuilder(LoomServletRequest request)
           
UrlBuilder(LoomServletRequest request, java.lang.Class<? extends Action> actionClass, java.lang.String event)
           
UrlBuilder(LoomServletRequest request, java.lang.String url)
           
UrlBuilder(java.lang.String url)
          Parse a url and extracts any parameters or hash
 
Method Summary
 UrlBuilder add(java.lang.String name, java.lang.Object value)
          Add a GET parameter to the generated URL.
 UrlBuilder addParameter(java.lang.String name, java.lang.Object value)
          Deprecated. use add(String, Object) instead
 java.lang.String calculateTitle()
          Calculates a valid title, if none is provided.
 UrlBuilder clearParams()
          Clears the parameter list, but leaves the action/event/rawUrl untouched
 UrlBuilder clone()
           
 ActionMapping getActionMapping()
           
 Event getEvent()
           
 java.lang.String getHash()
           
 java.lang.String getHostname()
           
 java.lang.String getParameter(java.lang.String paramName)
           
 com.google.common.collect.ListMultimap<java.lang.String,java.lang.String> getParameters()
           
 java.lang.Integer getPort()
           
 java.lang.String getRawUrl()
           
 java.lang.String getScheme()
           
 java.lang.String getURL()
          Calculate the output URL
 java.lang.String getURL(LoomServletRequest request)
          Deprecated. use getURL() instead
 java.util.Set<PropertyValidator> getValidations(java.lang.String normalizedName)
           
 boolean hasEvent()
           
 boolean isEmpty()
           
 boolean isEncodeParameters()
           
 boolean isIncludeContextPath()
           
 boolean isIncludeCurrentRequestParameters()
           
 boolean isRelative()
           
 java.util.List<java.lang.String> remove(java.lang.String name)
          Remove a GET parameter
 java.util.List<java.lang.String> removeParameter(java.lang.String name)
          Deprecated. use remove(String) instead
 java.util.List<java.lang.String> replace(java.lang.String name, java.lang.Object value)
          Replace a parameter value.
 java.util.List<java.lang.String> replaceParameter(java.lang.String name, java.lang.Object value)
          Deprecated. use replace(String, Object) instead
 UrlBuilder setAction(java.lang.Class<? extends Action> actionClass)
           
 UrlBuilder setAction(java.lang.String actionClass)
           
 UrlBuilder setActionMapping(ActionMapping mapping)
           
 void setEncodeParameters(boolean encodeParameters)
           
 UrlBuilder setEvent(Event event)
           
 UrlBuilder setEvent(java.lang.String event)
           
 UrlBuilder setHash(java.lang.String hash)
           
 UrlBuilder setHostname(java.lang.String hostname)
           
 void setIncludeContextPath(boolean includeContextPath)
           
 UrlBuilder setIncludeRequestParameters(boolean addCurrentRequestParameters)
           
 UrlBuilder setMapping(java.lang.String mapping)
          Set the action and event with a single method call.
 UrlBuilder setPort(java.lang.Integer port)
          Set the port to use.
 UrlBuilder setRawUrl(java.lang.String url)
           
 UrlBuilder setRelative(boolean relative)
           
 UrlBuilder setScheme(java.lang.String scheme)
          Set the scheme to use.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

INSECURE_SCHEME

public static java.lang.String INSECURE_SCHEME
insecure (http) scheme


SECURE_SCHEME

public static java.lang.String SECURE_SCHEME
secure (https) scheme


INSECURE_PORT

public static java.lang.Integer INSECURE_PORT
default insecure (http) port


SECURE_PORT

public static java.lang.Integer SECURE_PORT
default secure (https) port

Constructor Detail

UrlBuilder

public UrlBuilder()

UrlBuilder

public UrlBuilder(LoomServletRequest request)

UrlBuilder

public UrlBuilder(java.lang.Class<? extends Action> actionClass,
                  java.lang.String event)

UrlBuilder

public UrlBuilder(LoomServletRequest request,
                  java.lang.Class<? extends Action> actionClass,
                  java.lang.String event)

UrlBuilder

public UrlBuilder(java.lang.String url)
Parse a url and extracts any parameters or hash

Parameters:
url - the url to parse

UrlBuilder

public UrlBuilder(LoomServletRequest request,
                  java.lang.String url)
Method Detail

setMapping

public UrlBuilder setMapping(java.lang.String mapping)
Set the action and event with a single method call.

Parameters:
mapping - the mapping to use in the form "action.event"

clone

public UrlBuilder clone()
Overrides:
clone in class java.lang.Object

getValidations

public java.util.Set<PropertyValidator> getValidations(java.lang.String normalizedName)
Parameters:
normalizedName - the (not-normalized) property name for which the validations are going to be retrieved
Returns:
the list of validations applicable to the supplied propertyName, null if none

calculateTitle

public java.lang.String calculateTitle()
Calculates a valid title, if none is provided. Concatenates the action and event, if any, to provide a valid candidate.


getURL

public java.lang.String getURL(LoomServletRequest request)
Deprecated. use getURL() instead


getURL

public java.lang.String getURL()
Calculate the output URL


toString

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

add

public UrlBuilder add(java.lang.String name,
                      java.lang.Object value)
Add a GET parameter to the generated URL.

Parameters:
name - the name of the parameter
value - the value to add. If null, the parameter will not be added.

addParameter

public UrlBuilder addParameter(java.lang.String name,
                               java.lang.Object value)
Deprecated. use add(String, Object) instead

Add a GET parameter to the generated URL.

Parameters:
name - the name of the parameter
value - the value to add. If null, the parameter will not be added.

replace

public java.util.List<java.lang.String> replace(java.lang.String name,
                                                java.lang.Object value)
Replace a parameter value. If the parameter is multiple, all of them will be removed and a single value will be inserted instead.

Parameters:
name - the name of the parameter to be replaced.
value - the new value of the parameter. If null, the parameter will just be removed.
Returns:
the list of removed parameters

replaceParameter

public java.util.List<java.lang.String> replaceParameter(java.lang.String name,
                                                         java.lang.Object value)
Deprecated. use replace(String, Object) instead

Replace a parameter with a different value. If the parameter is multiple, all of them will be removed and replaced with the new value.

Parameters:
name - the name of the parameter to be replaced.
value - the new value of the parameter. If null, the parameter will just be removed.
Returns:
the list of removed parameter values

remove

public java.util.List<java.lang.String> remove(java.lang.String name)
Remove a GET parameter

Parameters:
name - the name of the parameter to remove
Returns:
the list of removed parameter values

removeParameter

public java.util.List<java.lang.String> removeParameter(java.lang.String name)
Deprecated. use remove(String) instead

Remove a GET parameter

Parameters:
name - the name of the parameter to remove
Returns:
the list of removed parameter values

setAction

public UrlBuilder setAction(java.lang.String actionClass)

setActionMapping

public UrlBuilder setActionMapping(ActionMapping mapping)

setAction

public UrlBuilder setAction(java.lang.Class<? extends Action> actionClass)

setEvent

public UrlBuilder setEvent(java.lang.String event)

setEvent

public UrlBuilder setEvent(Event event)

getParameter

public java.lang.String getParameter(java.lang.String paramName)
Returns:
the value of the requested param, or null if not found.

getParameters

public com.google.common.collect.ListMultimap<java.lang.String,java.lang.String> getParameters()

clearParams

public UrlBuilder clearParams()
Clears the parameter list, but leaves the action/event/rawUrl untouched


isEmpty

public boolean isEmpty()
Returns:
true if this url does not point to anywhere

setRawUrl

public UrlBuilder setRawUrl(java.lang.String url)

getRawUrl

public java.lang.String getRawUrl()

getEvent

public Event getEvent()

hasEvent

public boolean hasEvent()
Returns:
true if this UrlBuilder has been set using a action/event pair, false if it has been set using rawUrl

getActionMapping

public ActionMapping getActionMapping()

getHash

public java.lang.String getHash()

setHash

public UrlBuilder setHash(java.lang.String hash)

getScheme

public java.lang.String getScheme()

setScheme

public UrlBuilder setScheme(java.lang.String scheme)
Set the scheme to use. If not specified, the current request scheme will be used.

Parameters:
scheme - the scheme to use. Examples are: "http", "https"
Returns:
this instance.
See Also:
INSECURE_SCHEME, SECURE_SCHEME

getHostname

public java.lang.String getHostname()

setHostname

public UrlBuilder setHostname(java.lang.String hostname)

getPort

public java.lang.Integer getPort()

setPort

public UrlBuilder setPort(java.lang.Integer port)
Set the port to use. If not specified, the current request port will be used.

Parameters:
port - the port to use. Examples are: 80, 443, etc
Returns:
this instance.
See Also:
INSECURE_PORT, SECURE_PORT

isEncodeParameters

public boolean isEncodeParameters()

setEncodeParameters

public void setEncodeParameters(boolean encodeParameters)

isIncludeCurrentRequestParameters

public boolean isIncludeCurrentRequestParameters()

setIncludeRequestParameters

public UrlBuilder setIncludeRequestParameters(boolean addCurrentRequestParameters)

isIncludeContextPath

public boolean isIncludeContextPath()

setIncludeContextPath

public void setIncludeContextPath(boolean includeContextPath)

isRelative

public boolean isRelative()

setRelative

public UrlBuilder setRelative(boolean relative)