org.apache.turbine.services.pull.tools

## Class TemplateLink

- java.lang.Object
- - org.apache.turbine.services.pull.tools.TemplateLink

- All Implemented Interfaces:
    ApplicationTool

      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: TemplateLink.java 1773378 2016-12-09 13:19:59Z tv $
  Author:
    Dave Bryson, Jon S. Stevens, Henning P. Schmiedehausen, Quinton McCombs, Peter Courcoux

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected String` | `template` cache of the template name for getPage()
    `static String` | `TEMPLATE_LINK_PREFIX` Prefix for Parameters for this tool
    `static boolean` | `TEMPLATE_LINK_RELATIVE_DEFAULT` Default Value for TEMPLATE_LINK_RELATIVE_KEY
    `static String` | `TEMPLATE_LINK_RELATIVE_KEY` Should this tool return relative URIs or absolute?
    `protected TemplateURI` | `templateURI` TemplateURI used as backend for this object
    `protected boolean` | `wantRelative` Do we want a relative link?

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TemplateLink()` Default constructor The init method must be called before use.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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` | `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` | `addQueryData(org.apache.fulcrum.parser.ParameterParser pp)` Adds a name=value pair for every entry in a ParameterParser object to the query 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.
    `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 nothing
    `TemplateLink` | `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().

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### 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?

    - #### template

          protected String template

      cache of the template name for getPage()

    - #### templateURI

          protected TemplateURI templateURI

      TemplateURI used as backend for this object

  - ### Constructor Detail

    - #### TemplateLink

          public TemplateLink()

      Default constructor

      The 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 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

          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 absoluteLink() 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

    - #### toString

          public String toString()

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

Copyright © 2000–2018 The Apache Software Foundation. All rights reserved.