Package org.apache.tapestry5.internal.services

# Interface LinkSource

All Known Implementing Classes:
  `LinkSourceImpl`

@UsesOrderedConfiguration(LinkCreationListener2.class) public interface LinkSource
A source for `Link` objects.

Since:
  5.1.0.0
See Also:
  - `LinkCreationListener2`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Link`
  `createComponentEventLink(Page page, String nestedId, String eventType, boolean forForm, Object... context)`
  Creates a stateful action link.
  `Link`
  `createPageRenderLink(String pageName, boolean override, Object... pageActivationContext)`
  Creates a render link for the page.
  `LinkCreationHub`
  `getLinkCreationHub()`
  Returns the hub, used to register and de-register `LinkCreationListener2`s.

- ## Method Details

  - ### createComponentEventLink

    Link createComponentEventLink(Page page, String nestedId, String eventType, boolean forForm, Object... context)
    Creates a stateful action link. Action links are built for components. Action links are encoded by the current request (that is, bound to the current request's session, if any).
    Parameters:
      `page` - the page holding the component
      `nestedId` - the component's qualified id (a sequence of simple ids, separated by dots).
      `eventType` - the type of event to trigger
      `forForm` - true if the link is for a form, false otherwise
      `context` - Additional path data, each value will be converted to a string and appended to the URI @return a link
    See Also:
      - `ComponentResourcesCommon.createEventLink(String, Object...)`

  - ### createPageRenderLink

    Link createPageRenderLink(String pageName, boolean override, Object... pageActivationContext)
    Creates a render link for the page. If an activation context is supplied then that context is built into the URI. If no activation context is supplied, then the activation context is obtained from the page itself, by triggering a passivate event on its root component. When the activationContext is an empty array, the targeted page is checked to see if it can provide an activation context. This is accomplished by triggering a "passivate" event on the targeted page. If the override parameter is true, this will not occur (even when the activation context is empty).
    Parameters:
      `pageName` - name of the page to which a link should be created
      `override` - if true, then the provided activation context is always used even if empty
      `pageActivationContext` - the activation context for the page
    Returns:
      a link
    See Also:
      - `PageRenderLinkSource.createPageRenderLink(String)`
      - `PageRenderLinkSource.createPageRenderLinkWithContext(String, Object[])`

  - ### getLinkCreationHub

    LinkCreationHub getLinkCreationHub()
    Returns the hub, used to register and de-register `LinkCreationListener2`s.
    Returns:
      the hub