Package 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 | 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.commons.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