Package org.apache.tapestry5.http.internal.services

## Class SessionImpl

- java.lang.Object
- - org.apache.tapestry5.http.internal.services.SessionImpl

- All Implemented Interfaces:
    `Session`
  Direct Known Subclasses:
    `ClusteredSessionImpl`

      public class SessionImpl
      extends Object
      implements Session

  A thin wrapper around `HttpSession`.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SessionImpl​(HttpServletRequest request, HttpSession session, SessionLock lock)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Object` | `getAttribute​(String name)` | Returns the value previously stored in the session.
    `List<String>` | `getAttributeNames()` | Returns a list of the names of all attributes stored in the session.
    `List<String>` | `getAttributeNames​(String prefix)` | Returns a list of the names of all attributes stored in the session whose name has the provided prefix.
    `int` | `getMaxInactiveInterval()` | Returns the maximum time interval, in seconds, that the servlet container will keep this session open between client accesses.
    `void` | `invalidate()` | Invalidates this session then unbinds any objects bound to it.
    `boolean` | `isInvalidated()` | Checks to see if the session has been invalidated.
    `void` | `restoreDirtyObjects()` | Re-stores dirty objects back into the session.
    `void` | `setAttribute​(String name, Object value)` | Sets the value of an attribute.
    `void` | `setMaxInactiveInterval​(int seconds)` | Specifies the time, in seconds, between client requests before the servlet container will invalidate this session.

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

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

- - ### Constructor Detail

    - #### SessionImpl

          public SessionImpl​(HttpServletRequest request,
                             HttpSession session,
                             SessionLock lock)

  - ### Method Detail

    - #### getAttribute

          public Object getAttribute​(String name)

      Description copied from interface: `Session`
      Returns the value previously stored in the session.
      Specified by:
        `getAttribute` in interface `Session`

    - #### getAttributeNames

          public List<String> getAttributeNames()

      Description copied from interface: `Session`
      Returns a list of the names of all attributes stored in the session. The names are returned sorted alphabetically.
      Specified by:
        `getAttributeNames` in interface `Session`

    - #### setAttribute

          public void setAttribute​(String name,
                                   Object value)

      Description copied from interface: `Session`
      Sets the value of an attribute. If the value is null, then the attribute is deleted.
      Specified by:
        `setAttribute` in interface `Session`

    - #### getAttributeNames

          public List<String> getAttributeNames​(String prefix)

      Description copied from interface: `Session`
      Returns a list of the names of all attributes stored in the session whose name has the provided prefix. The names are returned in alphabetical order.
      Specified by:
        `getAttributeNames` in interface `Session`

    - #### getMaxInactiveInterval

          public int getMaxInactiveInterval()

      Description copied from interface: `Session`
      Returns the maximum time interval, in seconds, that the servlet container will keep this session open between client accesses. After this interval, the servlet container will invalidate the session. The maximum time interval can be set with the setMaxInactiveInterval method. A negative time indicates the session should never timeout.
      Specified by:
        `getMaxInactiveInterval` in interface `Session`

    - #### invalidate

          public void invalidate()

      Description copied from interface: `Session`
      Invalidates this session then unbinds any objects bound to it.
      Specified by:
        `invalidate` in interface `Session`

    - #### isInvalidated

          public boolean isInvalidated()

      Description copied from interface: `Session`
      Checks to see if the session has been invalidated. Note: since 5.3 this will also catch calls to `HttpSession.invalidate()`.
      Specified by:
        `isInvalidated` in interface `Session`

    - #### setMaxInactiveInterval

          public void setMaxInactiveInterval​(int seconds)

      Description copied from interface: `Session`
      Specifies the time, in seconds, between client requests before the servlet container will invalidate this session. A negative time indicates the session should never timeout.
      Specified by:
        `setMaxInactiveInterval` in interface `Session`

    - #### restoreDirtyObjects

          public void restoreDirtyObjects()

      Description copied from interface: `Session`
      Re-stores dirty objects back into the session. This is necessary to support clustering, because (in most application servers) session objects are only broadcast around the cluster from setAttribute(). If a mutable session object is read and changed, those changes will be limited to a single server in the cluster, which can cause confusing application failures in the event of a failover. Does nothing if there are no changes, or the session has been invalidated.
      Specified by:
        `restoreDirtyObjects` in interface `Session`
      See Also:
        `OptimizedSessionPersistedObject`, `OptimizedSessionPersistedObjectAnalyzer`, `ImmutableSessionPersistedObject`