Package org.apache.tapestry5.services

## Interface ComponentEventResultProcessor<T>

- Type Parameters:
    `T` - the type of the values being handled
  All Known Implementing Classes:
    `AjaxComponentInstanceEventResultProcessor`, `AjaxLinkComponentEventResultProcessor`, `AjaxPageClassComponentEventResultProcessor`, `AjaxPageNameComponentEventResultProcessor`, `AjaxURLComponentEventResultProcessor`, `ClassResultProcessor`, `ComponentInstanceResultProcessor`, `HttpErrorComponentEventResultProcessor`, `JSONArrayEventResultProcessor`, `JSONObjectEventResultProcessor`, `MultiZoneUpdateEventResultProcessor`, `ObjectComponentEventResultProcessor`, `PageNameComponentEventResultProcessor`, `RenderCommandComponentEventResultProcessor`, `StreamPageContentResultProcessor`, `StreamResponseResultProcessor`

      @UsesMappedConfiguration(key=java.lang.Class.class,
                               value=ComponentEventResultProcessor.class)
      public interface ComponentEventResultProcessor<T>

  Responsible for handling the return value provided by a component event handler method. There are two services built into Tapestry that implement this interface: ComponentEventResultProcessor (used for ordinary page-oriented requests, and distinguished by the @`Traditional` and/or @`Primary` marker annotations) and AjaxComponentEventResultProcessor, used for Ajax requests (which typically return a partially rendered page), distinguished by the @`Ajax` marker annotation.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `processResultValue​(T value)` | For a given, non-null return value from a component event method, construct and send a response.

- - ### Method Detail

    - #### processResultValue

          void processResultValue​(T value)
                           throws IOException

      For a given, non-null return value from a component event method, construct and send a response. Starting in release 5.4, it is recommended that for any response that involves Tapestry pages or components, the implementation should create an `IOOperation` to do the rendering, and add the operation to the `Request` as attribute `TapestryConstants.RESPONSE_RENDERER`. This avoids a number of issues related to the `Environment`.
      Parameters:
        `value` - the value returned from a method
      Throws:
        `RuntimeException` - if the value can not handled
        `IOException`