Package org.apache.tapestry5.internal.services.linktransform

## Class LinkTransformerInterceptor

- java.lang.Object
- - org.apache.tapestry5.internal.services.linktransform.LinkTransformerInterceptor

- All Implemented Interfaces:
    `ComponentEventLinkEncoder`

      public class LinkTransformerInterceptor
      extends java.lang.Object
      implements ComponentEventLinkEncoder

  Intercepts some methods of `ComponentEventLinkEncoder`, passing the returned `Link`s through methods of`LinkTransformer`.
  Since:
    5.2.0

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `LinkTransformerInterceptor​(LinkTransformer linkTransformer, ComponentEventLinkEncoder delegate)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Link` | `createComponentEventLink​(ComponentEventRequestParameters parameters, boolean forForm)` | Creates a link that encapsulates a component event request, including `PersistentLocale` (if set).
    `Link` | `createPageRenderLink​(PageRenderRequestParameters parameters)` | Creates a Link that encapsulates a page render request, including activation context and `PersistentLocale` (if set).
    `ComponentEventRequestParameters` | `decodeComponentEventRequest​(Request request)` | Checks the request, primarily the path, to determine the if the request is a component event request.
    `PageRenderRequestParameters` | `decodePageRenderRequest​(Request request)` | Checks the request, primarily the path, to determine the if the request is a page render request.

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

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

- - ### Constructor Detail

    - #### LinkTransformerInterceptor

          public LinkTransformerInterceptor​(LinkTransformer linkTransformer,
                                            ComponentEventLinkEncoder delegate)

  - ### Method Detail

    - #### createComponentEventLink

          public Link createComponentEventLink​(ComponentEventRequestParameters parameters,
                                               boolean forForm)

      Description copied from interface: `ComponentEventLinkEncoder`
      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.
      Specified by:
        `createComponentEventLink` in interface `ComponentEventLinkEncoder`
      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

    - #### createPageRenderLink

          public Link createPageRenderLink​(PageRenderRequestParameters parameters)

      Description copied from interface: `ComponentEventLinkEncoder`
      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.
      Specified by:
        `createPageRenderLink` in interface `ComponentEventLinkEncoder`
      Parameters:
        `parameters` - defining page to render and context
      Returns:
        link for the page render

    - #### decodeComponentEventRequest

          public ComponentEventRequestParameters decodeComponentEventRequest​(Request request)

      Description copied from interface: `ComponentEventLinkEncoder`
      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.
      Specified by:
        `decodeComponentEventRequest` in interface `ComponentEventLinkEncoder`
      Parameters:
        `request` - incoming request
      Returns:
        component event request details, if a component event request

    - #### decodePageRenderRequest

          public PageRenderRequestParameters decodePageRenderRequest​(Request request)

      Description copied from interface: `ComponentEventLinkEncoder`
      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.
      Specified by:
        `decodePageRenderRequest` in interface `ComponentEventLinkEncoder`
      Parameters:
        `request` - incoming request
      Returns:
        page render request details, if a page render request