org.apache.tapestry5

## Interface ComponentResourcesCommon

- All Superinterfaces:
    Locatable
  All Known Subinterfaces:
    ComponentPageElement, ComponentResources, InternalComponentResources
  All Known Implementing Classes:
    ComponentPageElementImpl, InternalComponentResourcesImpl

      public interface ComponentResourcesCommon
      extends Locatable

  Operations shared by the public `ComponentResources` interface and `ComponentPageElement` interface (on the internal side).

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `Link` | `createEventLink(String eventType, Object... context)` Creates a component event request link as a callback for this component.
    `Link` | `createFormEventLink(String eventType, Object... context)` Creates a component event request link as a callback for this component.
    `Block` | `findBlock(String blockId)` As with `getBlock(String)`, but returns null if the block is not found.
    `Block` | `getBlock(String blockId)` Returns a block from the component's template, referenced by its id.
    `Block` | `getBody()` Returns the body of this component as a (possibly empty) block.
    `String` | `getCompleteId()` Returns a string consisting of the logical name of the containing page, and the `nested id` of this component, separated by a colon.
    `String` | `getElementName(String defaultElementName)` Returns the name of element that represents the component in its template, or the provided default element name if the element was a component type (in the Tapestry namespace).
    `String` | `getId()` Returns the simple (or local) id of the component.
    `Locale` | `getLocale()` Returns the locale for the page containing this component.
    `org.slf4j.Logger` | `getLogger()` Returns the log instance associated with the component (which is based on the component or mixin's class name).
    `String` | `getNestedId()` Return a string consisting the concatenated ids of all containing components, separated by periods.
    `String` | `getPageName()` Returns the logical name of the page containing this component.
    `ComponentResourceSelector` | `getResourceSelector()` Returns the selector used when constructing the component and its containing page.
    `boolean` | `hasBody()` Returns true if the element has a body and false otherwise.
    `boolean` | `isRendering()` Returns true if the component is currently rendering, false otherwise.
    `boolean` | `triggerContextEvent(String eventType, EventContext context, ComponentEventCallback callback)` Triggers a component event.
    `boolean` | `triggerEvent(String eventType, Object[] contextValues, ComponentEventCallback callback)` A convenience method for invoking `triggerContextEvent(String, EventContext , ComponentEventCallback)`.

    - ### Methods inherited from interface org.apache.tapestry5.ioc.Locatable

      `getLocation`

- - ### Method Detail

    - #### getId

          String getId()

      Returns the simple (or local) id of the component. The id will be unique within the component's immediate container. For a page's root component, the value null is returned.

    - #### getNestedId

          String getNestedId()

      Return a string consisting the concatenated ids of all containing components, separated by periods. In addition, nested ids are always all lower case. I.e., "foo.bar.baz". Returns null for the root component of a page.

    - #### getCompleteId

          String getCompleteId()

      Returns a string consisting of the logical name of the containing page, and the `nested id` of this component, separated by a colon. I.e., "MyPage:foo.bar.baz". For a page, returns just the page's name. This value is often used to obtain an equivalent component instance in a later request.
      See Also:
        `ComponentSource.getComponent(String)`

    - #### triggerEvent

          boolean triggerEvent(String eventType,
                               Object[] contextValues,
                               ComponentEventCallback callback)

      A convenience method for invoking `triggerContextEvent(String, EventContext , ComponentEventCallback)`. Wraps the context values into an `EventContext`.
      Parameters:
        `eventType` - event type (as determined from the request, or otherwise by design)
        `contextValues` - Values that may be provided to the event handler method as method parameters, or null if no context values are available
        `callback` - the handler to be informed of the result, or null if the event is a notification that does not support return values from event handler methods (the value true is allowed even if the handler is null).
      Returns:
        true if any event handler was invoked (even if no event handler method returns a non-null value)
      Throws:
        `ComponentEventException` - if an event handler method throws a checked or unchecked exception
      See Also:
        `OnEventWorker`, `OnEvent`

    - #### triggerContextEvent

          boolean triggerContextEvent(String eventType,
                                      EventContext context,
                                      ComponentEventCallback callback)

      Triggers a component event. A search for an event handling method will occur, first in the component, then its container, and so on. When a matching event handler method is located, it is invoked. If the method returns a value, the value is passed to the callback (if callback is null, then it is an error for a method to return a non-null value). Resolution of event type to event handler methods is case insensitive.
      Parameters:
        `eventType` - event type (as determined from the request, or otherwise by design)
        `context` - the context (as extracted from the request, or provided by the triggering component); these values may be provided to event handler methods via their parameters (may not be null)
        `callback` - the handler to be informed of the result, or null if the event is a notification that does not support return values from event handler methods (the value true is allowed even if the handler is null).
      Returns:
        true if any event handler was invoked (even if no event handler method returns a non-null value)
      Throws:
        `ComponentEventException` - if an event handler method throws a checked or unchecked exception
      See Also:
        `OnEventWorker`, `OnEvent`

    - #### isRendering

          boolean isRendering()

      Returns true if the component is currently rendering, false otherwise. This is most often used to determine if parameter values should be cached.

    - #### getLogger

          org.slf4j.Logger getLogger()

      Returns the log instance associated with the component (which is based on the component or mixin's class name).
      See Also:
        `ComponentModel.getLogger()`

    - #### getLocale

          Locale getLocale()

      Returns the locale for the page containing this component.
      See Also:
        `getResourceSelector()`

    - #### getResourceSelector

          ComponentResourceSelector getResourceSelector()

      Returns the selector used when constructing the component and its containing page.
      Since:
        5.3

    - #### getElementName

          String getElementName(String defaultElementName)

      Returns the name of element that represents the component in its template, or the provided default element name if the element was a component type (in the Tapestry namespace).
      Parameters:
        `defaultElementName` - element name to return if the element name is not known (may be null)
      Returns:
        the element name

    - #### getBlock

          Block getBlock(String blockId)

      Returns a block from the component's template, referenced by its id.
      Parameters:
        `blockId` - the id of the block (case insensitive)
      Returns:
        the identified Block
      Throws:
        `BlockNotFoundException` - if no block with the given id exists
      See Also:
        `findBlock(String)`

    - #### findBlock

          Block findBlock(String blockId)

      As with `getBlock(String)`, but returns null if the block is not found.
      Parameters:
        `blockId` - the id of the block (case insensitive)
      Returns:
        the block, or null

    - #### getPageName

          String getPageName()

      Returns the logical name of the page containing this component. This is the short name (it often appears in URLs)
      Returns:
        the logical name of the page which contains this component

    - #### hasBody

          boolean hasBody()

      Returns true if the element has a body and false otherwise. Only components may have a body; pages and mixins will return false.

    - #### getBody

          Block getBody()

      Returns the body of this component as a (possibly empty) block. When invoked on a mixin, returns the containing component's body.

    - #### createEventLink

          Link createEventLink(String eventType,
                               Object... context)

      Creates a component event request link as a callback for this component. The event type and context (as well as the page name and nested component id) will be encoded into a URL. A request for the URL will triggerEvent(String, Object[], org.apache.tapestry5.ComponentEventCallback) trigger} the named event on the component.
      Parameters:
        `eventType` - the type of event to be triggered. Event types should be Java identifiers (contain only letters, numbers and the underscore).
        `context` - additional objects to be encoded into the path portion of the link; each is converted to a string and URI encoded
      Returns:
        link object for the callback

    - #### createFormEventLink

          Link createFormEventLink(String eventType,
                                   Object... context)

      Creates a component event request link as a callback for this component. The event type and context (as well as the page name and nested component id) will be encoded into a URL. A request for the URL will triggerEvent(String, Object[], org.apache.tapestry5.ComponentEventCallback) trigger} the named event on the component. This is only used for form submission events, as extra data may be encoded in the form as hidden fields.
      Parameters:
        `eventType` - the type of event to be triggered. Event types should be Java identifiers (contain only letters, numbers and the underscore).
        `context` - additional objects to be encoded into the path portion of the link; each is converted to a string and URI encoded
      Returns:
        link object for the callback

5.6.4 - Copyright © 2003-2021 The Apache Software Foundation.