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

5.6.4 - Copyright © 2003-2021 The Apache Software Foundation.