Package org.apache.tapestry5.internal.services

# Class PageRenderQueueImpl

java.lang.Object
org.apache.tapestry5.internal.services.PageRenderQueueImpl

All Implemented Interfaces:
  `PageRenderQueue`

@Scope("perthread") public class PageRenderQueueImpl extends Object implements PageRenderQueue
This services keeps track of the page being rendered and the root command for the partial render, it is therefore request/thread scoped. There's a filter pipeline around the rendering, and that gets to be stateless because this service, at the end of the pipeline, is stateful.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `PageRenderQueueImpl(LoggerSource loggerSource)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addPartialMarkupRendererFilter(PartialMarkupRendererFilter filter)`
  Adds an optional filter to the rendering.
  `void`
  `addPartialRenderer(RenderCommand renderer)`
  Adds a rendering command to the queue of rendering commands.
  `Page`
  `getRenderingPage()`
  Returns the page that is rendering markup content.
  `void`
  `initializeForCompletePage(Page page)`
  Initializes the queue for rendering of a complete page.
  `boolean`
  `isPartialRenderInitialized()`
  Returns true if either `PageRenderQueue.addPartialRenderer(org.apache.tapestry5.runtime.RenderCommand)` or `PageRenderQueue.addPartialMarkupRendererFilter(org.apache.tapestry5.services.PartialMarkupRendererFilter)` has been invoked.
  `void`
  `render(MarkupWriter writer)`
  Render to the markup writer, as setup by the `PageRenderQueue.initializeForCompletePage(org.apache.tapestry5.internal.structure.Page)` or `PageRenderQueue.addPartialRenderer(org.apache.tapestry5.runtime.RenderCommand)` methods.
  `void`
  `renderPartial(MarkupWriter writer, JSONObject reply)`
  Performs a partial markup render, as configured via `PageRenderQueue.addPartialRenderer(org.apache.tapestry5.runtime.RenderCommand)`.
  `void`
  `setRenderingPage(Page page)`
  Sets the default page that will render the response.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### PageRenderQueueImpl

    public PageRenderQueueImpl(LoggerSource loggerSource)

- ## Method Details

  - ### initializeForCompletePage

    public void initializeForCompletePage(Page page)
    Description copied from interface: `PageRenderQueue`
    Initializes the queue for rendering of a complete page.
    Specified by:
      `initializeForCompletePage` in interface `PageRenderQueue`

  - ### setRenderingPage

    public void setRenderingPage(Page page)
    Description copied from interface: `PageRenderQueue`
    Sets the default page that will render the response.
    Specified by:
      `setRenderingPage` in interface `PageRenderQueue`

  - ### isPartialRenderInitialized

    public boolean isPartialRenderInitialized()
    Description copied from interface: `PageRenderQueue`
    Returns true if either `PageRenderQueue.addPartialRenderer(org.apache.tapestry5.runtime.RenderCommand)` or `PageRenderQueue.addPartialMarkupRendererFilter(org.apache.tapestry5.services.PartialMarkupRendererFilter)` has been invoked.
    Specified by:
      `isPartialRenderInitialized` in interface `PageRenderQueue`

  - ### addPartialRenderer

    public void addPartialRenderer(RenderCommand renderer)
    Description copied from interface: `PageRenderQueue`
    Adds a rendering command to the queue of rendering commands. This must not be invoked until after the rendering page has been identified.
    Specified by:
      `addPartialRenderer` in interface `PageRenderQueue`
    Parameters:
      `renderer` - responsible for rendering a portion of the final markup

  - ### getRenderingPage

    public Page getRenderingPage()
    Description copied from interface: `PageRenderQueue`
    Returns the page that is rendering markup content.
    Specified by:
      `getRenderingPage` in interface `PageRenderQueue`

  - ### render

    public void render(MarkupWriter writer)
    Description copied from interface: `PageRenderQueue`
    Render to the markup writer, as setup by the `PageRenderQueue.initializeForCompletePage(org.apache.tapestry5.internal.structure.Page)` or `PageRenderQueue.addPartialRenderer(org.apache.tapestry5.runtime.RenderCommand)` methods.
    Specified by:
      `render` in interface `PageRenderQueue`
    Parameters:
      `writer` - to write markup to

  - ### addPartialMarkupRendererFilter

    public void addPartialMarkupRendererFilter(PartialMarkupRendererFilter filter)
    Description copied from interface: `PageRenderQueue`
    Adds an optional filter to the rendering. Optional filters are temporary, used just during the current partial render (as opposed to filters contributed to the `PartialMarkupRenderer` service which are permanent, shared and stateless. Filters are added to the end of the pipeline (after all permanent contributions). Filters will be executed in the order in which they are added.
    Specified by:
      `addPartialMarkupRendererFilter` in interface `PageRenderQueue`
    Parameters:
      `filter` - to add to the pipeline

  - ### renderPartial

    public void renderPartial(MarkupWriter writer, JSONObject reply)
    Description copied from interface: `PageRenderQueue`
    Performs a partial markup render, as configured via `PageRenderQueue.addPartialRenderer(org.apache.tapestry5.runtime.RenderCommand)`.
    Specified by:
      `renderPartial` in interface `PageRenderQueue`
    Parameters:
      `writer` - to which markup should be written
      `reply` - JSONObject which will contain the partial response