Package org.apache.tapestry5.internal.services

## Class ComponentEventLinkEncoderImpl

- java.lang.Object
- - org.apache.tapestry5.internal.services.ComponentEventLinkEncoderImpl

- All Implemented Interfaces:
    `ComponentEventLinkEncoder`

      public class ComponentEventLinkEncoderImpl
      extends java.lang.Object
      implements ComponentEventLinkEncoder

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ComponentEventLinkEncoderImpl​(ComponentClassResolver componentClassResolver, ContextPathEncoder contextPathEncoder, LocalizationSetter localizationSetter, Response response, RequestSecurityManager requestSecurityManager, BaseURLSource baseURLSource, PersistentLocale persistentLocale, boolean encodeLocaleIntoPath, java.lang.String contextPath, java.lang.String applicationFolder, MetaDataLocator metaDataLocator, ClientWhitelist clientWhitelist)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `appendContext​(boolean seperatorRequired, EventContext context, java.lang.StringBuilder builder)` |
    `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

    - #### ComponentEventLinkEncoderImpl

          public ComponentEventLinkEncoderImpl​(ComponentClassResolver componentClassResolver,
                                               ContextPathEncoder contextPathEncoder,
                                               LocalizationSetter localizationSetter,
                                               Response response,
                                               RequestSecurityManager requestSecurityManager,
                                               BaseURLSource baseURLSource,
                                               PersistentLocale persistentLocale,
                                               @Symbol("tapestry.encode-locale-into-path")
                                               boolean encodeLocaleIntoPath,
                                               @Symbol("tapestry.context-path")
                                               java.lang.String contextPath,
                                               @Symbol("tapestry.application-folder")
                                               java.lang.String applicationFolder,
                                               MetaDataLocator metaDataLocator,
                                               ClientWhitelist clientWhitelist)

  - ### Method Detail

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

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

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

    - #### appendContext

          public void appendContext​(boolean seperatorRequired,
                                    EventContext context,
                                    java.lang.StringBuilder builder)