Package org.apache.tapestry5.internal.services

## Interface PersistentFieldManager

- All Known Implementing Classes:
    `PersistentFieldManagerImpl`

      @UsesMappedConfiguration(PersistentFieldStrategy.class)
      public interface PersistentFieldManager

  Handle persistent property changes. Primarily, delegates to a number of `PersistentFieldStrategy` instances.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `discardChanges​(String pageName)` | Discards all changes for the indicated page.
    `void` | `discardChanges​(String pageName, String strategyName)` | Discards changes on the indicated page for a specific strategy only.
    `PersistentFieldBundle` | `gatherChanges​(String pageName)` | Locates all persistently stored changes to all properties within the page (for the current session and request) and gathers them together into a bundle.
    `void` | `postChange​(String pageName, ComponentResources resources, String fieldName, Object newValue)` | Posts a change of a persistent property.

- - ### Method Detail

    - #### postChange

          void postChange​(String pageName,
                          ComponentResources resources,
                          String fieldName,
                          Object newValue)

      Posts a change of a persistent property.
      Parameters:
        `pageName` - the logical name of the page containing the component
        `resources` - the resources for the component or mixin (used to determine the persistence strategy)
        `fieldName` - the name of the field whose persistent value has changed
        `newValue` - the new value for the field, possibly null

    - #### gatherChanges

          PersistentFieldBundle gatherChanges​(String pageName)

      Locates all persistently stored changes to all properties within the page (for the current session and request) and gathers them together into a bundle.
      Parameters:
        `pageName` - the logical name of the page to gather changes for
      Returns:
        a bundle identifying all such changes

    - #### discardChanges

          void discardChanges​(String pageName)

      Discards all changes for the indicated page. This will not affect pages that have already been attached to this request, but will affect subsequent page attachments in this and later requests.
      Parameters:
        `pageName` - logical name of page whose persistent field data is to be discarded

    - #### discardChanges

          void discardChanges​(String pageName,
                              String strategyName)

      Discards changes on the indicated page for a specific strategy only. This will not affect pages that have already been attached to this request, but will affect subsequent page attachments in this and later requests.
      Parameters:
        `pageName` - logical name of page whose persistent field data is to be discarded
        `strategyName` - name of the strategy of which field data is to be discarded