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 Details

  • Constructor Details

    • TemplateLink

      public TemplateLink()
      Default constructor

      The init method must be called before use.

  • Method Details

    • 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 interface ApplicationTool
      Parameters:
      data - assumed to be a PipelineData object
    • refresh

      public void refresh()
      Refresh method - does nothing
      Specified by:
      refresh in interface ApplicationTool
    • 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

      Removes all the path info elements.
      Returns:
      A TemplateLink (self).
    • removePathInfo

      Removes a name=value pair from the path info.
      Parameters:
      name - A String with the name to be removed.
      Returns:
      A TemplateLink (self).
    • removeQueryData

      Removes all the query string elements.
      Returns:
      A TemplateLink (self).
    • removeQueryData

      Removes a name=value pair from the query string.
      Parameters:
      name - A String with the name to be removed.
      Returns:
      A TemplateLink (self).
    • 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

      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

      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

      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
    • toString

      public String toString()
      Same as getLink().
      Overrides:
      toString in class Object
      Returns:
      A String with the URI represented by this object.