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

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

- ## Method Details

  - ### get

    <T> T get(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(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(Class<T> ssoClass)
    Returns true if the SSO already exists, false if null.

  - ### getIfExists

    default <T> T getIfExists(Class<T> ssoClass)
    Returns the SSO if it exists or null.