Package org.apache.tapestry5.services

## Interface ApplicationStatePersistenceStrategy

- All Known Implementing Classes:
    `EntityApplicationStatePersistenceStrategy`, `EntityApplicationStatePersistenceStrategy`, `SessionApplicationStatePersistenceStrategy`

      public interface ApplicationStatePersistenceStrategy

  Used by `ApplicationStateManager` to manage a specific kind of Session State Object (SSO) persistence. The strategy is responsible for managing SSO instances within its domain.

  NOTE: The term "Application" here is a hold-over from Tapestry 5.0, which used the @ApplicationState (deprecated and deleted) annotation, and called them "ASOs" (Application State Objects). This service would be better named "SessionStatePersistenceStrategy" (but renaming it would cause backwards compatibility issues).

  See Also:
    `ApplicationStatePersistenceStrategySource`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `<T> boolean` | `exists​(java.lang.Class<T> ssoClass)` | Returns true if the SSO already exists, false if null.
    `<T> T` | `get​(java.lang.Class<T> ssoClass, ApplicationStateCreator<T> creator)` | Gets the SSO from the domain.
    `default <T> T` | `getIfExists​(java.lang.Class<T> ssoClass)` | Returns the SSO if it exists or null.
    `<T> void` | `set​(java.lang.Class<T> ssoClass, T sso)` | Stores a new SSO, possibly replacing the existing one.

- - ### Method Detail

    - #### get

          <T> T get​(java.lang.Class<T> ssoClass,
                    ApplicationStateCreator<T> creator)

      Gets the SSO from the domain. If the SSO does not already exist, it is created and stored, then returned.

    - #### set

          <T> void set​(java.lang.Class<T> ssoClass,
                       T sso)

      Stores a new SSO, possibly replacing the existing one.
      Type Parameters:
        `T` -
      Parameters:
        `ssoClass` -
        `sso` - instance to store, or null to delete existing

    - #### exists

          <T> boolean exists​(java.lang.Class<T> ssoClass)

      Returns true if the SSO already exists, false if null.

    - #### getIfExists

          default <T> T getIfExists​(java.lang.Class<T> ssoClass)

      Returns the SSO if it exists or null.