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

### Method Summary

All Methods Instance Methods Concrete Methods
`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.