Package org.apache.catalina.session

## Class StoreBase

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

- All Implemented Interfaces:
    `Lifecycle`, `Store`
  Direct Known Subclasses:
    `FileStore`, `JDBCStore`

      public abstract class StoreBase
      extends LifecycleBase
      implements Store

  Abstract implementation of the `Store` interface to support most of the functionality required by a `Store`.
  Author:
    Bip Thelin

- - ### Nested Class Summary

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

      `Lifecycle.SingleUse`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected Manager` | `manager` | The Manager with which this Store is associated.
    `protected static StringManager` | `sm` | The string manager for this package.
    `protected static java.lang.String` | `storeName` | Name to register for this Store, used for logging.
    `protected java.beans.PropertyChangeSupport` | `support` | The property change support for this component.

    - ### 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
    --- | ---
    `StoreBase()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addPropertyChangeListener​(java.beans.PropertyChangeListener listener)` | Add a property change listener to this component.
    `protected void` | `destroyInternal()` | Sub-classes implement this method to perform any instance destruction required.
    `java.lang.String[]` | `expiredKeys()` | Get only those keys of sessions, that are saved in the Store and are to be expired.
    `Manager` | `getManager()` |
    `protected java.io.ObjectInputStream` | `getObjectInputStream​(java.io.InputStream is)` | Create the object input stream to use to read a session from the store.
    `java.lang.String` | `getStoreName()` |
    `protected void` | `initInternal()` | Sub-classes implement this method to perform any instance initialisation required.
    `void` | `processExpires()` | Called by our background reaper thread to check if Sessions saved in our store are subject of being expired.
    `void` | `removePropertyChangeListener​(java.beans.PropertyChangeListener listener)` | Remove a property change listener from this component.
    `void` | `setManager​(Manager manager)` | Set the Manager with which this Store is associated.
    `protected void` | `startInternal()` | Start this component and implement the requirements of `LifecycleBase.startInternal()`.
    `protected void` | `stopInternal()` | Stop this component and implement the requirements of `LifecycleBase.stopInternal()`.
    `java.lang.String` | `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`

    - ### Methods inherited from interface org.apache.catalina.Store

      `clear, getSize, keys, load, remove, save`

- - ### Field Detail

    - #### storeName

          protected static final java.lang.String storeName

      Name to register for this Store, used for logging.
      See Also:
        Constant Field Values

    - #### support

          protected final java.beans.PropertyChangeSupport support

      The property change support for this component.

    - #### sm

          protected static final StringManager sm

      The string manager for this package.

    - #### manager

          protected Manager manager

      The Manager with which this Store is associated.

  - ### Constructor Detail

    - #### StoreBase

          public StoreBase()

  - ### Method Detail

    - #### getStoreName

          public java.lang.String getStoreName()

      Returns:
        the name for this Store, used for logging.

    - #### setManager

          public void setManager​(Manager manager)

      Set the Manager with which this Store is associated.
      Specified by:
        `setManager` in interface `Store`
      Parameters:
        `manager` - The newly associated Manager

    - #### getManager

          public Manager getManager()

      Specified by:
        `getManager` in interface `Store`
      Returns:
        the Manager with which the Store is associated.

    - #### addPropertyChangeListener

          public void addPropertyChangeListener​(java.beans.PropertyChangeListener listener)

      Add a property change listener to this component.
      Specified by:
        `addPropertyChangeListener` in interface `Store`
      Parameters:
        `listener` - a value of type `PropertyChangeListener`

    - #### removePropertyChangeListener

          public void removePropertyChangeListener​(java.beans.PropertyChangeListener listener)

      Remove a property change listener from this component.
      Specified by:
        `removePropertyChangeListener` in interface `Store`
      Parameters:
        `listener` - The listener to remove

    - #### expiredKeys

          public java.lang.String[] expiredKeys()
                                         throws java.io.IOException

      Get only those keys of sessions, that are saved in the Store and are to be expired.
      Returns:
        list of session keys, that are to be expired
      Throws:
        `java.io.IOException` - if an input-/output error occurred

    - #### processExpires

          public void processExpires()

      Called by our background reaper thread to check if Sessions saved in our store are subject of being expired. If so expire the Session and remove it from the Store.

    - #### getObjectInputStream

          protected java.io.ObjectInputStream getObjectInputStream​(java.io.InputStream is)
                                                            throws java.io.IOException

      Create the object input stream to use to read a session from the store. Sub-classes must have set the thread context class loader before calling this method.
      Parameters:
        `is` - The input stream provided by the sub-class that will provide the data for a session
      Returns:
        An appropriately configured ObjectInputStream from which the session can be read.
      Throws:
        `java.io.IOException` - if a problem occurs creating the ObjectInputStream

    - #### initInternal

          protected void initInternal()

      Description copied from class: `LifecycleBase`
      Sub-classes implement this method to perform any instance initialisation required.
      Specified by:
        `initInternal` in class `LifecycleBase`

    - #### startInternal

          protected void startInternal()
                                throws LifecycleException

      Start this component and implement the requirements of `LifecycleBase.startInternal()`.
      Specified by:
        `startInternal` in class `LifecycleBase`
      Throws:
        `LifecycleException` - if this component detects a fatal error that prevents this component from being used

    - #### stopInternal

          protected void stopInternal()
                               throws LifecycleException

      Stop this component and implement the requirements of `LifecycleBase.stopInternal()`.
      Specified by:
        `stopInternal` in class `LifecycleBase`
      Throws:
        `LifecycleException` - if this component detects a fatal error that prevents this component from being used

    - #### destroyInternal

          protected void destroyInternal()

      Description copied from class: `LifecycleBase`
      Sub-classes implement this method to perform any instance destruction required.
      Specified by:
        `destroyInternal` in class `LifecycleBase`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`
      Returns:
        a String rendering of this object.