Class 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: TemplateLink.java 1885760 2021-01-21 14:50:59Z gk $
    Author:
    Dave Bryson, Jon S. Stevens, Henning P. Schmiedehausen, Quinton McCombs, Peter Courcoux
    • 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
      • 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​(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​(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
      • toString

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