Package org.apache.tapestry5.internal.services

# Interface PageElementFactory

All Known Implementing Classes:
  `PageElementFactoryImpl`

public interface PageElementFactory
Used by the `PageLoader` to create partialar page elements. This has evolved and focused to mostly concern bindings and expansions.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `RenderCommand`
  `newAttributeElement(ComponentResources componentResources, AttributeToken token)`
  Creates a RenderCommand for rendering an attribute, when the attribute contains expansions.
  `Binding`
  `newBinding(String parameterName, ComponentResources loadingComponentResources, ComponentResources embeddedComponentResources, String defaultBindingPrefix, String expression, Location location)`
  Creates a new binding as with `BindingSource.newBinding(String, ComponentResources, ComponentResources, String, String, Location)`.
  `RenderCommand`
  `newExpansionElement(ComponentResources componentResources, ExpansionToken token)`
  Converts an expansion token into a command that renders the expanded value.

- ## Method Details

  - ### newAttributeElement

    RenderCommand newAttributeElement(ComponentResources componentResources, AttributeToken token)
    Creates a RenderCommand for rendering an attribute, when the attribute contains expansions.
    Parameters:
      `componentResources` - identifies component
      `token` - token containing value with expansions
    Returns:
      render command to render the text with expansions expanded

  - ### newExpansionElement

    RenderCommand newExpansionElement(ComponentResources componentResources, ExpansionToken token)
    Converts an expansion token into a command that renders the expanded value.
    Parameters:
      `componentResources` - identifies the component
      `token` - contains expansion expression
    Returns:
      command to render expansion

  - ### newBinding

    Binding newBinding(String parameterName, ComponentResources loadingComponentResources, ComponentResources embeddedComponentResources, String defaultBindingPrefix, String expression, Location location)
    Creates a new binding as with `BindingSource.newBinding(String, ComponentResources, ComponentResources, String, String, Location)`. However, if the binding contains an expansion (i.e., `${...}`), then a binding that returns the fully expanded expression will be returned.