Package org.apache.tapestry5.internal.services

## Class ClientPersistentFieldStorageImpl

- java.lang.Object
- - org.apache.tapestry5.internal.services.ClientPersistentFieldStorageImpl

- All Implemented Interfaces:
    `ClientPersistentFieldStorage`, `PersistentFieldStrategy`

      @Scope("perthread")
      public class ClientPersistentFieldStorageImpl
      extends Object
      implements ClientPersistentFieldStorage

  Manages client-persistent values on behalf of a `ClientPersistentFieldStorageImpl`. Some effort is made to ensure that we don't uncessarily convert between objects and Base64 (the encoding used to record the value on the client).

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ClientPersistentFieldStorageImpl​(Request request, ClientDataEncoder clientDataEncoder, SessionPersistedObjectAnalyzer analyzer)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `discardChanges​(String pageName)` | Discards any saved changes for the name page.
    `Collection<PersistentFieldChange>` | `gatherFieldChanges​(String pageName)` | Finds all persistent changes previously stored for the named page (for the current active session or client).
    `void` | `postChange​(String pageName, String componentId, String fieldName, Object newValue)` | Posts a change of a persistent property.
    `void` | `updateLink​(Link link)` | Updates a link, adding a query parameter to it (if necessary) to store

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

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

- - ### Constructor Detail

    - #### ClientPersistentFieldStorageImpl

          public ClientPersistentFieldStorageImpl​(Request request,
                                                  ClientDataEncoder clientDataEncoder,
                                                  SessionPersistedObjectAnalyzer analyzer)

  - ### Method Detail

    - #### updateLink

          public void updateLink​(Link link)

      Description copied from interface: `ClientPersistentFieldStorage`
      Updates a link, adding a query parameter to it (if necessary) to store
      Specified by:
        `updateLink` in interface `ClientPersistentFieldStorage`

    - #### gatherFieldChanges

          public Collection<PersistentFieldChange> gatherFieldChanges​(String pageName)

      Description copied from interface: `PersistentFieldStrategy`
      Finds all persistent changes previously stored for the named page (for the current active session or client).
      Specified by:
        `gatherFieldChanges` in interface `PersistentFieldStrategy`

    - #### discardChanges

          public void discardChanges​(String pageName)

      Description copied from interface: `PersistentFieldStrategy`
      Discards any saved changes for the name page. There is no expectation that data already gathered from the strategy and presumably dumped into component instance fields will be affected, but future field access (within this request or a later one) will show no data for the indicated page.
      Specified by:
        `discardChanges` in interface `PersistentFieldStrategy`
      Parameters:
        `pageName` - logical name of page whose field persistent data should be discarded

    - #### postChange

          public void postChange​(String pageName,
                                 String componentId,
                                 String fieldName,
                                 Object newValue)

      Description copied from interface: `PersistentFieldStrategy`
      Posts a change of a persistent property.
      Specified by:
        `postChange` in interface `PersistentFieldStrategy`
      Parameters:
        `pageName` - the name of the page containing the component
        `componentId` - the nested id path of the component (or null for the page's root component)
        `fieldName` - the name of the field whose persistent value has changed
        `newValue` - the new value for the field, possibly null