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

    All Methods Instance Methods Abstract Methods
    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 Detail

    - #### 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.