Class TemplateLink
- java.lang.Object
-
- org.apache.turbine.services.pull.tools.TemplateLink
-
- All Implemented Interfaces:
ApplicationTool
- Direct Known Subclasses:
MappedTemplateLink
public class TemplateLink extends Object implements ApplicationTool
This is a pull to to be used in Templates to convert links in Templates into the correct references. The pull service might insert this tool into the Context. in templates. Here's an example of its Velocity use:$link.setPage("index.vm").addPathInfo("hello","world") This would return: http://foo.com/Turbine/template/index.vm/hello/world
This is an application pull tool for the template system. You should not use it in a normal application!
- Version:
- $Id$
- Author:
- Dave Bryson, Jon S. Stevens, Henning P. Schmiedehausen, Quinton McCombs, Peter Courcoux
-
-
Field Summary
Fields Modifier and Type Field Description protected String
template
cache of the template name for getPage()static String
TEMPLATE_LINK_PREFIX
Prefix for Parameters for this toolstatic boolean
TEMPLATE_LINK_RELATIVE_DEFAULT
Default Value for TEMPLATE_LINK_RELATIVE_KEYstatic String
TEMPLATE_LINK_RELATIVE_KEY
Should this tool return relative URIs or absolute?protected TemplateURI
templateURI
TemplateURI used as backend for this objectprotected boolean
wantRelative
Do we want a relative link?
-
Constructor Summary
Constructors Constructor Description TemplateLink()
Default constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description TemplateLink
addPathInfo(String name, double value)
Adds a name=value pair to the path_info string.TemplateLink
addPathInfo(String name, int value)
Adds a name=value pair to the path_info string.TemplateLink
addPathInfo(String name, long value)
Adds a name=value pair to the path_info string.TemplateLink
addPathInfo(String name, Object value)
Adds a name=value pair to the path_info string.TemplateLink
addPathInfo(String name, String value)
Adds a name=value pair to the path_info string.TemplateLink
addPathInfo(org.apache.fulcrum.parser.ParameterParser pp)
Adds a name=value pair for every entry in a ParameterParser object to the path_info string.TemplateLink
addQueryData(String name, double value)
Adds a name=value pair to the query string.TemplateLink
addQueryData(String name, int value)
Adds a name=value pair to the query string.TemplateLink
addQueryData(String name, long value)
Adds a name=value pair to the query string.TemplateLink
addQueryData(String name, Object value)
Adds a name=value pair to the query string.TemplateLink
addQueryData(String name, String value)
Adds a name=value pair to the query string.TemplateLink
addQueryData(org.apache.fulcrum.parser.ParameterParser pp)
Adds a name=value pair for every entry in a ParameterParser object to the query string.String
getAbsoluteLink()
Builds the URL with all of the data URL-encoded as well as encoded using HttpServletResponse.encodeUrl().String
getAbsoluteURI()
Returns the absolute URI leaving the source intact.String
getLink()
Returns the URI.String
getPage()
Gets the template variable used by the Template Service.String
getReference()
Returns the current reference anchor.String
getRelativeLink()
Builds the URL with all of the data URL-encoded as well as encoded using HttpServletResponse.encodeUrl().String
getRelativeURI()
Returns the relative URI leaving the source intact.String
getURI()
Returns the relative URI leaving the source intact.void
init(Object data)
This will initialize a TemplateLink object that was constructed with the default constructor (ApplicationTool method).void
refresh()
Refresh method - does nothingTemplateLink
removePathInfo()
Removes all the path info elements.TemplateLink
removePathInfo(String name)
Removes a name=value pair from the path info.TemplateLink
removeQueryData()
Removes all the query string elements.TemplateLink
removeQueryData(String name)
Removes a name=value pair from the query string.TemplateLink
setAction(String action)
Sets the action= value for this URL.TemplateLink
setActionEvent(String action, String event)
Sets the action= and eventSubmit= values for this URL.TemplateLink
setEncodeURLOff()
This will turn off the execution of res.encodeURL() by making res == null.TemplateLink
setPage(String template)
Sets the template variable used by the Template Service.TemplateLink
setReference(String reference)
Sets a reference anchor (#ref).TemplateLink
setScreen(String screen)
Sets the screen= value for this URL.String
toString()
Same as getLink().
-
-
-
Field Detail
-
TEMPLATE_LINK_PREFIX
public static final String TEMPLATE_LINK_PREFIX
Prefix for Parameters for this tool- See Also:
- Constant Field Values
-
TEMPLATE_LINK_RELATIVE_KEY
public static final String TEMPLATE_LINK_RELATIVE_KEY
Should this tool return relative URIs or absolute? Default: Absolute.- See Also:
- Constant Field Values
-
TEMPLATE_LINK_RELATIVE_DEFAULT
public static final boolean TEMPLATE_LINK_RELATIVE_DEFAULT
Default Value for TEMPLATE_LINK_RELATIVE_KEY- See Also:
- Constant Field Values
-
wantRelative
protected boolean wantRelative
Do we want a relative link?
-
templateURI
protected TemplateURI templateURI
TemplateURI used as backend for this object
-
-
Constructor Detail
-
TemplateLink
public TemplateLink()
Default constructorThe init method must be called before use.
-
-
Method Detail
-
init
public void init(Object data)
This will initialize a TemplateLink object that was constructed with the default constructor (ApplicationTool method).- Specified by:
init
in interfaceApplicationTool
- Parameters:
data
- assumed to be a PipelineData object
-
refresh
public void refresh()
Refresh method - does nothing- Specified by:
refresh
in interfaceApplicationTool
-
setEncodeURLOff
public TemplateLink setEncodeURLOff()
This will turn off the execution of res.encodeURL() by making res == null. This is a hack for cases where you don't want to see the session information- Returns:
- A
TemplateLink
(self).
-
setPage
public TemplateLink setPage(String template)
Sets the template variable used by the Template Service.- Parameters:
template
- A String with the template name.- Returns:
- A TemplateLink.
-
getPage
public String getPage()
Gets the template variable used by the Template Service. It is only available after setPage() has been called.- Returns:
- The template name.
-
setAction
public TemplateLink 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.- Parameters:
action
- A String with the action value.- Returns:
- A
TemplateLink
(self).
-
setActionEvent
public TemplateLink 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.- Parameters:
action
- A String with the action value.event
- A string with the event name.- Returns:
- A
TemplateLink
(self).
-
setScreen
public TemplateLink 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.- Parameters:
screen
- A String with the screen value.- Returns:
- A
TemplateLink
(self).
-
setReference
public TemplateLink setReference(String reference)
Sets a reference anchor (#ref).- Parameters:
reference
- A String containing the reference.- Returns:
- A
TemplateLink
(self).
-
getReference
public String getReference()
Returns the current reference anchor.- Returns:
- A String containing the reference.
-
addPathInfo
public TemplateLink 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.- Returns:
- A
TemplateLink
(self).
-
addPathInfo
public TemplateLink 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.- Returns:
- A
TemplateLink
(self).
-
addPathInfo
public TemplateLink 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.- Returns:
- A
TemplateLink
(self).
-
addPathInfo
public TemplateLink 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.- Returns:
- A
TemplateLink
(self).
-
addPathInfo
public TemplateLink 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.- Returns:
- A
TemplateLink
(self).
-
addPathInfo
public TemplateLink 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.- Returns:
- A
TemplateLink
(self).
-
addQueryData
public TemplateLink 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.- Returns:
- A
TemplateLink
(self).
-
addQueryData
public TemplateLink 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.- Returns:
- A
TemplateLink
(self).
-
addQueryData
public TemplateLink 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.- Returns:
- A
TemplateLink
(self).
-
addQueryData
public TemplateLink 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.- Returns:
- A
TemplateLink
(self).
-
addQueryData
public TemplateLink 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.- Returns:
- A
TemplateLink
(self).
-
addQueryData
public TemplateLink 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.- Returns:
- A
TemplateLink
(self).
-
removePathInfo
public TemplateLink removePathInfo()
Removes all the path info elements.- Returns:
- A
TemplateLink
(self).
-
removePathInfo
public TemplateLink removePathInfo(String name)
Removes a name=value pair from the path info.- Parameters:
name
- A String with the name to be removed.- Returns:
- A
TemplateLink
(self).
-
removeQueryData
public TemplateLink removeQueryData()
Removes all the query string elements.- Returns:
- A
TemplateLink
(self).
-
removeQueryData
public TemplateLink removeQueryData(String name)
Removes a name=value pair from the query string.- Parameters:
name
- A String with the name to be removed.- Returns:
- A
TemplateLink
(self).
-
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...TemplateURI tui = new TemplateURI (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
After rendering the URI, it clears the pathInfo and QueryString portions of the TemplateURI. So you can use the $link reference multiple times on a page and start over with a fresh object every time.
- 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.TemplateURI tui = new TemplateURI (data, "UserScreen"); tui.addPathInfo("user","jon"); tui.getRelativeLink();
The above call to relativeLink() would return the String:/servlets/Turbine/screen/UserScreen/user/jon
After rendering the URI, it clears the pathInfo and QueryString portions of the TemplateURI. So you can use the $link reference multiple times on a page and start over with a fresh object every time.
- Returns:
- A String with the built URL.
-
getLink
public String getLink()
Returns the URI. After rendering the URI, it clears the pathInfo and QueryString portions of the TemplateURI.- Returns:
- A String with the URI in the form http://foo.com/Turbine/template/index.wm/hello/world
-
getURI
public String getURI()
Returns the relative URI leaving the source intact. Use this if you need the path_info and query data multiple times. This is equivalent to $link.Link or just $link, but does not reset the path_info and query data.- Returns:
- A String with the URI in the form http://foo.com/Turbine/template/index.wm/hello/world
-
getAbsoluteURI
public String getAbsoluteURI()
Returns the absolute URI leaving the source intact. Use this if you need the path_info and query data multiple times. This is equivalent to $link.AbsoluteLink but does not reset the path_info and query data.- Returns:
- A String with the URI in the form http://foo.com/Turbine/template/index.wm/hello/world
-
getRelativeURI
public String getRelativeURI()
Returns the relative URI leaving the source intact. Use this if you need the path_info and query data multiple times. This is equivalent to $link.RelativeLink but does not reset the path_info and query data.- Returns:
- A String with the URI in the form http://foo.com/Turbine/template/index.wm/hello/world
-
-