Package org.apache.catalina.session

## Class FileStore

- java.lang.Object
- - org.apache.catalina.util.LifecycleBase
  - - org.apache.catalina.session.StoreBase
    - - org.apache.catalina.session.FileStore

- All Implemented Interfaces:
    `Lifecycle`, `Store`

      public final class FileStore
      extends StoreBase

  Concrete implementation of the Store interface that utilizes a file per saved Session in a configured directory. Sessions that are saved are still subject to being expired based on inactivity.
  Author:
    Craig R. McClanahan

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle

      `Lifecycle.SingleUse`

  - ### Field Summary

    - ### Fields inherited from class org.apache.catalina.session.StoreBase

      `manager, support`

    - ### Fields inherited from interface org.apache.catalina.Lifecycle

      `AFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `FileStore()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `clear()` | Remove all of the Sessions in this Store.
    `String` | `getDirectory()` |
    `int` | `getSize()` | Return the number of Sessions present in this Store.
    `String` | `getStoreName()` | Return the name for this Store, used for logging.
    `String` | `getThreadName()` |
    `String[]` | `keys()` | Return an array containing the session identifiers of all Sessions currently saved in this Store.
    `Session` | `load​(String id)` | Load and return the Session associated with the specified session identifier from this Store, without removing it.
    `void` | `remove​(String id)` | Remove the Session with the specified session identifier from this Store, if present.
    `void` | `save​(Session session)` | Save the specified Session into this Store.
    `void` | `setDirectory​(String path)` | Set the directory path for this Store.

    - ### Methods inherited from class org.apache.catalina.session.StoreBase

      `addPropertyChangeListener, destroyInternal, expiredKeys, getManager, getObjectInputStream, initInternal, processExpires, removePropertyChangeListener, setManager, startInternal, stopInternal, toString`

    - ### Methods inherited from class org.apache.catalina.util.LifecycleBase

      `addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stop`

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

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

- - ### Constructor Detail

    - #### FileStore

          public FileStore()

  - ### Method Detail

    - #### getDirectory

          public String getDirectory()

      Returns:
        The directory path for this Store.

    - #### setDirectory

          public void setDirectory​(String path)

      Set the directory path for this Store.
      Parameters:
        `path` - The new directory path

    - #### getThreadName

          public String getThreadName()

      Returns:
        The thread name for this Store.

    - #### getStoreName

          public String getStoreName()

      Return the name for this Store, used for logging.
      Overrides:
        `getStoreName` in class `StoreBase`
      Returns:
        the name for this Store, used for logging.

    - #### getSize

          public int getSize()
                      throws IOException

      Return the number of Sessions present in this Store.
      Returns:
        the number of Sessions present in this Store.
      Throws:
        `IOException` - if an input/output error occurs

    - #### clear

          public void clear()
                     throws IOException

      Remove all of the Sessions in this Store.
      Throws:
        `IOException` - if an input/output error occurs

    - #### keys

          public String[] keys()
                        throws IOException

      Return an array containing the session identifiers of all Sessions currently saved in this Store. If there are no such Sessions, a zero-length array is returned.
      Returns:
        an array containing the session identifiers of all Sessions currently saved in this Store. If there are no such Sessions, a zero-length array is returned.
      Throws:
        `IOException` - if an input/output error occurred

    - #### load

          public Session load​(String id)
                       throws ClassNotFoundException,
                              IOException

      Load and return the Session associated with the specified session identifier from this Store, without removing it. If there is no such stored Session, return `null`.
      Parameters:
        `id` - Session identifier of the session to load
      Returns:
        the loaded Session instance
      Throws:
        `ClassNotFoundException` - if a deserialization error occurs
        `IOException` - if an input/output error occurs

    - #### remove

          public void remove​(String id)
                      throws IOException

      Remove the Session with the specified session identifier from this Store, if present. If no such Session is present, this method takes no action.
      Parameters:
        `id` - Session identifier of the Session to be removed
      Throws:
        `IOException` - if an input/output error occurs

    - #### save

          public void save​(Session session)
                    throws IOException

      Save the specified Session into this Store. Any previously saved information for the associated session identifier is replaced.
      Parameters:
        `session` - Session to be saved
      Throws:
        `IOException` - if an input/output error occurs