Interface ComponentEventLinkEncoder

All Known Implementing Classes:
ComponentEventLinkEncoderImpl, LinkTransformerInterceptor

public interface ComponentEventLinkEncoder
Responsible for creating Links for page render requests and for component event requests, and for parsing incoming paths to identify requests that are component event or page render requests. This centralizes some logic that was scattered about in Tapestry 5.0.
Since:
5.1.0.1
  • Method Details

    • createPageRenderLink

      Creates a Link that encapsulates a page render request, including activation context and PersistentLocale (if set). Passes the resulting Link through the PageRenderLinkTransformer chain of command, returning the result.
      Parameters:
      parameters - defining page to render and context
      Returns:
      link for the page render
    • createComponentEventLink

      Creates a link that encapsulates a component event request, including PersistentLocale (if set). Forms:
      • /context/pagename:eventname -- event on the page, no action context
      • /context/pagename:eventname/foo/bar -- event on the page with action context "foo", "bar"
      • /context/pagename.foo.bar -- event on component foo.bar within the page, default event, no action context
      • /context/pagename.foo.bar/baz.gnu -- event on component foo.bar within the page, default event, with action context "baz", "gnu"
      • /context/pagename.bar.baz:eventname/foo/gnu -- event on component bar.baz within the page with action context "foo" , "gnu"
      The persistent locale may be placed in between the context name and the page name, i.e., "/context/fr/SomePage". In many cases the context name is blank, so the path begins with a "/" and then the locale name or page name. The page name portion may itself consist of a series of folder names, i.e., "admin/user/create". The context portion isn't the concern of this code, since Request.getPath() will already have stripped that off. We can act as if the context is always "/" (the path always starts with a slash). Passes the resulting Link through the ComponentEventLinkTransformer chain of command, returning the result.
      Parameters:
      parameters - defining page, component, activation context and other details
      forForm - true if the event link will trigger a form submission
      Returns:
      link for the component event
    • decodeComponentEventRequest

      Checks the request, primarily the path, to determine the if the request is a component event request. As a side-effect (necessary for historical reasons), responsible for setting the locale for the thread, including the PersistentLocale ... but only if the locale is a component event.
      Parameters:
      request - incoming request
      Returns:
      component event request details, if a component event request
    • decodePageRenderRequest

      Checks the request, primarily the path, to determine the if the request is a page render request. As a side-effect (necessary for historical reasons), responsible for setting the locale for the thread, including the PersistentLocale ... but only if the request is a page render.
      Parameters:
      request - incoming request
      Returns:
      page render request details, if a page render request