Package org.apache.tapestry5.http.services

# Interface SessionPersistedObjectAnalyzer<T>

All Known Implementing Classes:
  `DefaultSessionPersistedObjectAnalyzer`, `OptimizedSessionPersistedObjectAnalyzer`

@UsesMappedConfiguration(key=java.lang.Class.class, value=SessionPersistedObjectAnalyzer.class) public interface SessionPersistedObjectAnalyzer<T>
Analyzes a session-persisted object, specifically to see if it is dirty or not. This service is provided to support applications which store mutable session attributes where the session is replicated to a slower medium (e.g. RDMBS, Cluster, etc) this can help alleviate excessive writes to the session store while ensuring changes are propagated. The service implementation uses a mapped configuration to form a strategy based on object type. The service may be injected using the `Primary` marker annotation.

Since:
  5.1.0.0
See Also:
  - `ImmutableSessionPersistedObject`
  - `OptimizedSessionPersistedObject`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `checkAndResetDirtyState(T sessionPersistedObject)`
  Atomically check and reset the dirty state of the session persisted object.

- ## Method Details

  - ### checkAndResetDirtyState

    boolean checkAndResetDirtyState(T sessionPersistedObject)
    Atomically check and reset the dirty state of the session persisted object. The implementer should take consideration for the fact that session attributes are accessed concurrently. A naive check/set algorithm may allow changes to go un-noticed.
    Parameters:
      `sessionPersistedObject` - the session attribute (never null)
    Returns:
      true if the object needs to be re-stored into the session
    Since:
      5.3