Package org.apache.turbine.util.uri
Class TurbineURI
- java.lang.Object
-
- org.apache.turbine.util.uri.BaseURI
-
- org.apache.turbine.util.uri.TurbineURI
-
- All Implemented Interfaces:
URI
,URIConstants
- Direct Known Subclasses:
TemplateURI
public class TurbineURI extends BaseURI
This class allows you to keep all the information needed for a single link at one place. It keeps your query data, path info, the server scheme, name, port and the script path. If you must generate a Turbine Link, use this class.- Version:
- $Id$
- Author:
- Jon S. Stevens, Jason van Zyl, Henning P. Schmiedehausen
-
-
Field Summary
-
Fields inherited from interface org.apache.turbine.util.uri.URIConstants
CGI_ACTION_PARAM, CGI_SCREEN_PARAM, CGI_TEMPLATE_PARAM, EVENT_PREFIX, FTP_PORT, HTTP, HTTP_PORT, HTTPS, HTTPS_PORT, PATH_INFO, QUERY_DATA, URI_SCHEME_SEPARATOR
-
-
Constructor Summary
Constructors Constructor Description TurbineURI()
Empty C'tor.TurbineURI(String screen, String action)
Constructor, user Turbine.getDefaultServerData(), set Screen and Action.TurbineURI(RunData runData)
Constructor with a RunData object.TurbineURI(RunData runData, boolean redirect)
Constructor, set explicit redirection.TurbineURI(RunData runData, String screen)
Constructor, set Screen.TurbineURI(RunData runData, String screen, boolean redirect)
Constructor, set Screen, set explicit redirection.TurbineURI(RunData runData, String screen, String action)
Constructor, set Screen and Action.TurbineURI(RunData runData, String screen, String action, boolean redirect)
Constructor, set Screen and Action, set explicit redirection.TurbineURI(ServerData serverData)
Constructor with a ServerData object.TurbineURI(ServerData serverData, boolean redirect)
Constructor, set explicit redirection.TurbineURI(ServerData serverData, String screen)
Constructor, set Screen.TurbineURI(ServerData serverData, String screen, boolean redirect)
Constructor, set Screen, set explicit redirection.TurbineURI(ServerData serverData, String screen, String action)
Constructor, set Screen and Action.TurbineURI(ServerData serverData, String screen, String action, boolean redirect)
Constructor, set Screen and Action, set explicit redirection.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
add(int type, String name, String value)
If the type is PATH_INFO, then add name/value to the pathInfo hashtable.protected void
add(int type, List<URIParam> list)
Method for a quick way to add all the parameters in a List with URIParam objects.protected void
add(int type, org.apache.fulcrum.parser.ParameterParser pp)
Method for a quick way to add all the parameters in a ParameterParser.void
addPathInfo(String name, double value)
Adds a name=value pair to the path_info string.void
addPathInfo(String name, int value)
Adds a name=value pair to the path_info string.void
addPathInfo(String name, long value)
Adds a name=value pair to the path_info string.void
addPathInfo(String name, Object value)
Adds a name=value pair to the path_info string.void
addPathInfo(String name, String value)
Adds a name=value pair to the path_info string.void
addPathInfo(List<URIParam> list)
Adds an existing List of URIParam objects to the path_info string.void
addPathInfo(org.apache.fulcrum.parser.ParameterParser pp)
Adds a name=value pair for every entry in a ParameterParser object to the path_info string.void
addQueryData(String name, double value)
Adds a name=value pair to the query string.void
addQueryData(String name, int value)
Adds a name=value pair to the query string.void
addQueryData(String name, long value)
Adds a name=value pair to the query string.void
addQueryData(String name, Object value)
Adds a name=value pair to the query string.void
addQueryData(String name, String value)
Adds a name=value pair to the query string.void
addQueryData(List<URIParam> list)
Adds an existing List of URIParam objects to the query data.void
addQueryData(org.apache.fulcrum.parser.ParameterParser pp)
Adds a name=value pair for every entry in a ParameterParser object to the query string.void
clearAction()
Clears the action= value for this URL.void
clearResponse()
Template Link and friends want to be able to turn the encoding of the servlet container off.void
clearScreen()
Clears the screen= value for this URL.String
getAbsoluteLink()
Builds the URL with all of the data URL-encoded as well as encoded using HttpServletResponse.encodeUrl().List<URIParam>
getPathInfo()
Gets the current Path Info List.List<URIParam>
getQueryData()
Gets the current Query Data List.String
getRelativeLink()
Builds the URL with all of the data URL-encoded as well as encoded using HttpServletResponse.encodeUrl().boolean
hasPathInfo()
Is Path Info data set in this URI?boolean
hasQueryData()
Is Query data set in this URI?protected void
remove(int type, String name)
If the type is P (0), then remove name/value from the pathInfo hashtable.void
removePathInfo()
Removes all the path info elements.void
removePathInfo(String name)
Removes a name=value pair from the path info.void
removeQueryData()
Removes all the query string elements.void
removeQueryData(String name)
Removes a name=value pair from the query string.void
setAction(String action)
Sets the action= value for this URL.void
setActionEvent(String action, String event)
Sets the action= and eventSubmit= values for this URL.void
setEvent(String event)
Sets the fired eventSubmit= value for this URL.void
setPathInfo(List<URIParam> pathInfo)
Sets the Query Data List.void
setQueryData(List<URIParam> queryData)
Sets the Query Data List.void
setScreen(String screen)
Sets the screen= value for this URL.String
toString()
Simply calls getAbsoluteLink().-
Methods inherited from class org.apache.turbine.util.uri.BaseURI
encodeResponse, getContextAndScript, getContextPath, getReference, getResponse, getSchemeAndPort, getScriptName, getServerName, getServerPort, getServerScheme, hasReference, isRedirect, setContextPath, setRedirect, setReference, setResponse, setScriptName, setSecure, setSecure, setServerName, setServerPort, setServerScheme
-
-
-
-
Constructor Detail
-
TurbineURI
public TurbineURI()
Empty C'tor. Uses Turbine.getDefaultServerData().
-
TurbineURI
public TurbineURI(RunData runData)
Constructor with a RunData object.- Parameters:
runData
- A RunData object
-
TurbineURI
public TurbineURI(RunData runData, boolean redirect)
Constructor, set explicit redirection.- Parameters:
runData
- A RunData objectredirect
- True if redirection allowed.
-
TurbineURI
public TurbineURI(RunData runData, String screen)
Constructor, set Screen.- Parameters:
runData
- A RunData objectscreen
- A Screen Name
-
TurbineURI
public TurbineURI(RunData runData, String screen, boolean redirect)
Constructor, set Screen, set explicit redirection.- Parameters:
runData
- A RunData objectscreen
- A Screen Nameredirect
- True if redirection allowed.
-
TurbineURI
public TurbineURI(RunData runData, String screen, String action)
Constructor, set Screen and Action.- Parameters:
runData
- A RunData objectscreen
- A Screen Nameaction
- An Action Name
-
TurbineURI
public TurbineURI(RunData runData, String screen, String action, boolean redirect)
Constructor, set Screen and Action, set explicit redirection.- Parameters:
runData
- A RunData objectscreen
- A Screen Nameaction
- An Action Nameredirect
- True if redirection allowed.
-
TurbineURI
public TurbineURI(ServerData serverData)
Constructor with a ServerData object.- Parameters:
serverData
- A ServerData object
-
TurbineURI
public TurbineURI(ServerData serverData, boolean redirect)
Constructor, set explicit redirection.- Parameters:
serverData
- A ServerData objectredirect
- True if redirection allowed.
-
TurbineURI
public TurbineURI(ServerData serverData, String screen)
Constructor, set Screen.- Parameters:
serverData
- A ServerData objectscreen
- A Screen Name
-
TurbineURI
public TurbineURI(ServerData serverData, String screen, boolean redirect)
Constructor, set Screen, set explicit redirection.- Parameters:
serverData
- A ServerData objectscreen
- A Screen Nameredirect
- True if redirection allowed.
-
TurbineURI
public TurbineURI(ServerData serverData, String screen, String action)
Constructor, set Screen and Action.- Parameters:
serverData
- A ServerData objectscreen
- A Screen Nameaction
- An Action Name
-
TurbineURI
public TurbineURI(ServerData serverData, String screen, String action, boolean redirect)
Constructor, set Screen and Action, set explicit redirection.- Parameters:
serverData
- A ServerData objectscreen
- A Screen Nameaction
- An Action Nameredirect
- True if redirection allowed.
-
TurbineURI
public TurbineURI(String screen, String action)
Constructor, user Turbine.getDefaultServerData(), set Screen and Action.- Parameters:
screen
- A Screen Nameaction
- An Action Name
-
-
Method Detail
-
setAction
public void setAction(String action)
Sets the action= value for this URL. By default it adds the information to the path_info instead of the query data. An empty value (null or "") cleans out an existing value.- Parameters:
action
- A String with the action value.
-
setEvent
public void setEvent(String event)
Sets the fired eventSubmit= value for this URL.- Parameters:
event
- The event to fire.
-
setActionEvent
public void setActionEvent(String action, String event)
Sets the action= and eventSubmit= values for this URL. By default it adds the information to the path_info instead of the query data. An empty value (null or "") for the action cleans out an existing value. An empty value (null or "") for the event has no effect.- Parameters:
action
- A String with the action value.event
- A string with the event name.
-
clearAction
public void clearAction()
Clears the action= value for this URL.
-
setScreen
public void setScreen(String screen)
Sets the screen= value for this URL. By default it adds the information to the path_info instead of the query data. An empty value (null or "") cleans out an existing value.- Parameters:
screen
- A String with the screen value.
-
clearScreen
public void clearScreen()
Clears the screen= value for this URL.
-
addPathInfo
public void addPathInfo(org.apache.fulcrum.parser.ParameterParser pp)
Adds a name=value pair for every entry in a ParameterParser object to the path_info string.- Parameters:
pp
- A ParameterParser.
-
addPathInfo
public void addPathInfo(List<URIParam> list)
Adds an existing List of URIParam objects to the path_info string.- Parameters:
list
- A list with URIParam objects.
-
addPathInfo
public void addPathInfo(String name, Object value)
Adds a name=value pair to the path_info string.- Parameters:
name
- A String with the name to add.value
- An Object with the value to add.
-
addPathInfo
public void addPathInfo(String name, String value)
Adds a name=value pair to the path_info string.- Parameters:
name
- A String with the name to add.value
- A String with the value to add.
-
addPathInfo
public void addPathInfo(String name, double value)
Adds a name=value pair to the path_info string.- Parameters:
name
- A String with the name to add.value
- A double with the value to add.
-
addPathInfo
public void addPathInfo(String name, int value)
Adds a name=value pair to the path_info string.- Parameters:
name
- A String with the name to add.value
- An int with the value to add.
-
addPathInfo
public void addPathInfo(String name, long value)
Adds a name=value pair to the path_info string.- Parameters:
name
- A String with the name to add.value
- A long with the value to add.
-
addQueryData
public void addQueryData(String name, Object value)
Adds a name=value pair to the query string.- Parameters:
name
- A String with the name to add.value
- An Object with the value to add.
-
addQueryData
public void addQueryData(String name, String value)
Adds a name=value pair to the query string.- Parameters:
name
- A String with the name to add.value
- A String with the value to add.
-
addQueryData
public void addQueryData(String name, double value)
Adds a name=value pair to the query string.- Parameters:
name
- A String with the name to add.value
- A double with the value to add.
-
addQueryData
public void addQueryData(String name, int value)
Adds a name=value pair to the query string.- Parameters:
name
- A String with the name to add.value
- An int with the value to add.
-
addQueryData
public void addQueryData(String name, long value)
Adds a name=value pair to the query string.- Parameters:
name
- A String with the name to add.value
- A long with the value to add.
-
addQueryData
public void addQueryData(org.apache.fulcrum.parser.ParameterParser pp)
Adds a name=value pair for every entry in a ParameterParser object to the query string.- Parameters:
pp
- A ParameterParser.
-
addQueryData
public void addQueryData(List<URIParam> list)
Adds an existing List of URIParam objects to the query data.- Parameters:
list
- A list with URIParam objects.
-
hasPathInfo
public boolean hasPathInfo()
Is Path Info data set in this URI?- Returns:
- true if Path Info has values
-
removePathInfo
public void removePathInfo()
Removes all the path info elements.
-
removePathInfo
public void removePathInfo(String name)
Removes a name=value pair from the path info.- Parameters:
name
- A String with the name to be removed.
-
hasQueryData
public boolean hasQueryData()
Is Query data set in this URI?- Returns:
- true if Query data has values
-
removeQueryData
public void removeQueryData()
Removes all the query string elements.
-
removeQueryData
public void removeQueryData(String name)
Removes a name=value pair from the query string.- Parameters:
name
- A String with the name to be removed.
-
clearResponse
public void clearResponse()
Template Link and friends want to be able to turn the encoding of the servlet container off. After calling this method, the no encoding will happen any longer. If you think, that you need this outside a template context, think again.
-
getAbsoluteLink
public String getAbsoluteLink()
Builds the URL with all of the data URL-encoded as well as encoded using HttpServletResponse.encodeUrl(). The resulting URL is absolute; it starts with http/https...TurbineURI tui = new TurbineURI (data, "UserScreen"); tui.addPathInfo("user","jon"); tui.getAbsoluteLink();
The above call to absoluteLink() would return the String:http://www.server.com/servlets/Turbine/screen/UserScreen/user/jon
- Returns:
- A String with the built URL.
-
getRelativeLink
public String getRelativeLink()
Builds the URL with all of the data URL-encoded as well as encoded using HttpServletResponse.encodeUrl(). The resulting URL is relative to the webserver root.TurbineURI tui = new TurbineURI (data, "UserScreen"); tui.addPathInfo("user","jon"); tui.getRelativeLink();
The above call to relativeLink() would return the String:/servlets/Turbine/screen/UserScreen/user/jon
- Returns:
- A String with the built URL.
-
getPathInfo
public List<URIParam> getPathInfo()
Gets the current Path Info List.- Returns:
- A List which contains all query data keys. The keys are URIParam objects.
-
setPathInfo
public void setPathInfo(List<URIParam> pathInfo)
Sets the Query Data List. Replaces the current query data list with the one supplied. The list must contain only URIParam objects!- Parameters:
pathInfo
- A List with new param objects.
-
getQueryData
public List<URIParam> getQueryData()
Gets the current Query Data List.- Returns:
- A List which contains all query data keys. The keys are URIParam objects.
-
setQueryData
public void setQueryData(List<URIParam> queryData)
Sets the Query Data List. Replaces the current query data list with the one supplied. The list must contain only URIParam objects!- Parameters:
queryData
- A List with new param objects.
-
toString
public String toString()
Simply calls getAbsoluteLink(). You should not use this in your code unless you have to. Use getAbsoluteLink.
-
add
protected void add(int type, String name, String value)
If the type is PATH_INFO, then add name/value to the pathInfo hashtable.If the type is QUERY_DATA, then add name/value to the queryData hashtable.
- Parameters:
type
- Type (PATH_INFO or QUERY_DATA) of insertion.name
- A String with the name to add.value
- A String with the value to add.
-
add
protected void add(int type, org.apache.fulcrum.parser.ParameterParser pp)
Method for a quick way to add all the parameters in a ParameterParser.If the type is P (0), then add name/value to the pathInfo hashtable.
If the type is Q (1), then add name/value to the queryData hashtable.
- Parameters:
type
- Type of insertion (@see #add(char type, String name, String value))pp
- A ParameterParser.
-
add
protected void add(int type, List<URIParam> list)
Method for a quick way to add all the parameters in a List with URIParam objects.If the type is P (0), then add name/value to the pathInfo hashtable.
If the type is Q (1), then add name/value to the queryData hashtable.
- Parameters:
type
- Type of insertion (@see #add(char type, String name, String value))list
- A List of URIParam objects
-
-