blob: 2dc8d06d7631236774c9ef0856159406351bf4e6 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.13) on Tue Feb 08 12:40:05 CST 2022 -->
<title>AbstractSessionCache (Eclipse Jetty API Doc - v10.0.8)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2022-02-08">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="AbstractSessionCache (Eclipse Jetty API Doc - v10.0.8)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":6,"i27":6,"i28":42,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/AbstractSessionCache.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.eclipse.jetty.server.session</a></div>
<h2 title="Class AbstractSessionCache" class="title">Class AbstractSessionCache</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">org.eclipse.jetty.util.component.AbstractLifeCycle</a></li>
<li>
<ul class="inheritance">
<li><a href="../../util/component/ContainerLifeCycle.html" title="class in org.eclipse.jetty.util.component">org.eclipse.jetty.util.component.ContainerLifeCycle</a></li>
<li>
<ul class="inheritance">
<li>org.eclipse.jetty.server.session.AbstractSessionCache</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code>, <code><a href="../../util/component/Container.html" title="interface in org.eclipse.jetty.util.component">Container</a></code>, <code><a href="../../util/component/Destroyable.html" title="interface in org.eclipse.jetty.util.component">Destroyable</a></code>, <code><a href="../../util/component/Dumpable.html" title="interface in org.eclipse.jetty.util.component">Dumpable</a></code>, <code><a href="../../util/component/Dumpable.DumpableContainer.html" title="interface in org.eclipse.jetty.util.component">Dumpable.DumpableContainer</a></code>, <code><a href="../../util/component/LifeCycle.html" title="interface in org.eclipse.jetty.util.component">LifeCycle</a></code></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="DefaultSessionCache.html" title="class in org.eclipse.jetty.server.session">DefaultSessionCache</a></code>, <code><a href="NullSessionCache.html" title="class in org.eclipse.jetty.server.session">NullSessionCache</a></code></dd>
</dl>
<hr>
<pre><a href="../../util/annotation/ManagedObject.html" title="annotation in org.eclipse.jetty.util.annotation">@ManagedObject</a>
public abstract class <span class="typeNameLabel">AbstractSessionCache</span>
extends <a href="../../util/component/ContainerLifeCycle.html" title="class in org.eclipse.jetty.util.component">ContainerLifeCycle</a>
implements <a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></pre>
<div class="block">AbstractSessionCache
A base implementation of the <a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session"><code>SessionCache</code></a> interface for managing a set of
Session objects pertaining to a context in memory.
This implementation ensures that multiple requests for the same session id
always return the same Session object.
It will delay writing out a session to the SessionDataStore until the
last request exits the session. If the SessionDataStore supports passivation
then the session passivation and activation listeners are called appropriately as
the session is written.
This implementation also supports evicting idle Session objects. An idle Session
is one that is still valid, has not expired, but has not been accessed by a
request for a configurable amount of time. An idle session will be first
passivated before it is evicted from the cache.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.eclipse.jetty.util.component.AbstractLifeCycle">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle</a></h3>
<code><a href="../../util/component/AbstractLifeCycle.AbstractLifeCycleListener.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle.AbstractLifeCycleListener</a>, <a href="../../util/component/AbstractLifeCycle.StopException.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle.StopException</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.eclipse.jetty.util.component.Container">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Container.html" title="interface in org.eclipse.jetty.util.component">Container</a></h3>
<code><a href="../../util/component/Container.InheritedListener.html" title="interface in org.eclipse.jetty.util.component">Container.InheritedListener</a>, <a href="../../util/component/Container.Listener.html" title="interface in org.eclipse.jetty.util.component">Container.Listener</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.eclipse.jetty.util.component.Dumpable">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Dumpable.html" title="interface in org.eclipse.jetty.util.component">Dumpable</a></h3>
<code><a href="../../util/component/Dumpable.DumpableContainer.html" title="interface in org.eclipse.jetty.util.component">Dumpable.DumpableContainer</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.eclipse.jetty.util.component.LifeCycle">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/LifeCycle.html" title="interface in org.eclipse.jetty.util.component">LifeCycle</a></h3>
<code><a href="../../util/component/LifeCycle.Listener.html" title="interface in org.eclipse.jetty.util.component">LifeCycle.Listener</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="SessionContext.html" title="class in org.eclipse.jetty.server.session">SessionContext</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#_context">_context</a></span></code></th>
<td class="colLast">
<div class="block">Information about the context to which this SessionCache pertains</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#_evictionPolicy">_evictionPolicy</a></span></code></th>
<td class="colLast">
<div class="block">When, if ever, to evict sessions: never; only when the last request for them finishes; after inactivity time (expressed as secs)</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#_flushOnResponseCommit">_flushOnResponseCommit</a></span></code></th>
<td class="colLast">
<div class="block">If true, when a response is about to be committed back to the client,
a dirty session will be flushed to the session store.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="SessionHandler.html" title="class in org.eclipse.jetty.server.session">SessionHandler</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#_handler">_handler</a></span></code></th>
<td class="colLast">
<div class="block">The SessionHandler related to this SessionCache</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#_invalidateOnShutdown">_invalidateOnShutdown</a></span></code></th>
<td class="colLast">
<div class="block">If true, when the server shuts down, all sessions in the
cache will be invalidated before being removed.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#_removeUnloadableSessions">_removeUnloadableSessions</a></span></code></th>
<td class="colLast">
<div class="block">If true, a Session whose data cannot be read will be
deleted from the SessionDataStore.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#_saveOnCreate">_saveOnCreate</a></span></code></th>
<td class="colLast">
<div class="block">If true, as soon as a new session is created, it will be persisted to the SessionDataStore</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#_saveOnInactiveEviction">_saveOnInactiveEviction</a></span></code></th>
<td class="colLast">
<div class="block">If true, a session that will be evicted from the cache because it has been
inactive too long will be saved before being evicted.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="SessionDataStore.html" title="interface in org.eclipse.jetty.server.session">SessionDataStore</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#_sessionDataStore">_sessionDataStore</a></span></code></th>
<td class="colLast">
<div class="block">The authoritative source of session data</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.eclipse.jetty.util.component.AbstractLifeCycle">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle</a></h3>
<code><a href="../../util/component/AbstractLifeCycle.html#FAILED">FAILED</a>, <a href="../../util/component/AbstractLifeCycle.html#STARTED">STARTED</a>, <a href="../../util/component/AbstractLifeCycle.html#STARTING">STARTING</a>, <a href="../../util/component/AbstractLifeCycle.html#STOPPED">STOPPED</a>, <a href="../../util/component/AbstractLifeCycle.html#STOPPING">STOPPING</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.eclipse.jetty.util.component.Dumpable">
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Dumpable.html" title="interface in org.eclipse.jetty.util.component">Dumpable</a></h3>
<code><a href="../../util/component/Dumpable.html#KEY">KEY</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.eclipse.jetty.server.session.SessionCache">
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;org.eclipse.jetty.server.session.<a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></h3>
<code><a href="SessionCache.html#EVICT_ON_INACTIVITY">EVICT_ON_INACTIVITY</a>, <a href="SessionCache.html#EVICT_ON_SESSION_EXIT">EVICT_ON_SESSION_EXIT</a>, <a href="SessionCache.html#NEVER_EVICT">NEVER_EVICT</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.eclipse.jetty.server.session.SessionHandler)">AbstractSessionCache</a></span>&#8203;(<a href="SessionHandler.html" title="class in org.eclipse.jetty.server.session">SessionHandler</a>&nbsp;handler)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#add(java.lang.String,org.eclipse.jetty.server.session.Session)">add</a></span>&#8203;(java.lang.String&nbsp;id,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)</code></th>
<td class="colLast">
<div class="block">Add an entirely new session (created by the application calling Request.getSession(true))
to the cache.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>java.util.Set&lt;java.lang.String&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkExpiration(java.util.Set)">checkExpiration</a></span>&#8203;(java.util.Set&lt;java.lang.String&gt;&nbsp;candidates)</code></th>
<td class="colLast">
<div class="block">Check a list of session ids that belong to potentially expired
sessions.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkInactiveSession(org.eclipse.jetty.server.session.Session)">checkInactiveSession</a></span>&#8203;(<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)</code></th>
<td class="colLast">
<div class="block">Check a session for being inactive and
thus being able to be evicted, if eviction
is enabled.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#commit(org.eclipse.jetty.server.session.Session)">commit</a></span>&#8203;(<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)</code></th>
<td class="colLast">
<div class="block">A response that has accessed this session is about to
be returned to the client.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#contains(java.lang.String)">contains</a></span>&#8203;(java.lang.String&nbsp;id)</code></th>
<td class="colLast">
<div class="block">Check to see if this cache contains an entry for the session
corresponding to the session id.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete(java.lang.String)">delete</a></span>&#8203;(java.lang.String&nbsp;id)</code></th>
<td class="colLast">
<div class="block">Remove a session object from this store and from any backing store.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected abstract <a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#doComputeIfAbsent(java.lang.String,java.util.function.Function)">doComputeIfAbsent</a></span>&#8203;(java.lang.String&nbsp;id,
java.util.function.Function&lt;java.lang.String,&#8203;<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&gt;&nbsp;mappingFunction)</code></th>
<td class="colLast">
<div class="block">Compute the mappingFunction to create a Session object iff the session
with the given id isn't already in the map, otherwise return the existing Session.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>abstract <a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#doDelete(java.lang.String)">doDelete</a></span>&#8203;(java.lang.String&nbsp;id)</code></th>
<td class="colLast">
<div class="block">Remove the session with this identity from the store</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>protected abstract <a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#doGet(java.lang.String)">doGet</a></span>&#8203;(java.lang.String&nbsp;id)</code></th>
<td class="colLast">
<div class="block">Get the session matching the key from the cache.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected abstract <a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#doPutIfAbsent(java.lang.String,org.eclipse.jetty.server.session.Session)">doPutIfAbsent</a></span>&#8203;(java.lang.String&nbsp;id,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)</code></th>
<td class="colLast">
<div class="block">Put the session into the map if it wasn't already there</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>protected abstract boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#doReplace(java.lang.String,org.eclipse.jetty.server.session.Session,org.eclipse.jetty.server.session.Session)">doReplace</a></span>&#8203;(java.lang.String&nbsp;id,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;oldValue,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;newValue)</code></th>
<td class="colLast">
<div class="block">Replace the mapping from id to oldValue with newValue</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#doStart()">doStart</a></span>()</code></th>
<td class="colLast">
<div class="block">Starts the managed lifecycle beans in the order they were added.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#doStop()">doStop</a></span>()</code></th>
<td class="colLast">
<div class="block">Stops the managed lifecycle beans in the reverse order they were added.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#exists(java.lang.String)">exists</a></span>&#8203;(java.lang.String&nbsp;id)</code></th>
<td class="colLast">
<div class="block">Check to see if a session corresponding to the id exists.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.String)">get</a></span>&#8203;(java.lang.String&nbsp;id)</code></th>
<td class="colLast">
<div class="block">Get a session object.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>protected <a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAndEnter(java.lang.String,boolean)">getAndEnter</a></span>&#8203;(java.lang.String&nbsp;id,
boolean&nbsp;enter)</code></th>
<td class="colLast">
<div class="block">Get a session object.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEvictionPolicy()">getEvictionPolicy</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="SessionDataStore.html" title="interface in org.eclipse.jetty.server.session">SessionDataStore</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSessionDataStore()">getSessionDataStore</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="SessionHandler.html" title="class in org.eclipse.jetty.server.session">SessionHandler</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSessionHandler()">getSessionHandler</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#initialize(org.eclipse.jetty.server.session.SessionContext)">initialize</a></span>&#8203;(<a href="SessionContext.html" title="class in org.eclipse.jetty.server.session">SessionContext</a>&nbsp;context)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isFlushOnResponseCommit()">isFlushOnResponseCommit</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isInvalidateOnShutdown()">isInvalidateOnShutdown</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isRemoveUnloadableSessions()">isRemoveUnloadableSessions</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSaveOnCreate()">isSaveOnCreate</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSaveOnInactiveEviction()">isSaveOnInactiveEviction</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether we should save a session that has been inactive before
we boot it from the cache.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newSession(javax.servlet.http.HttpServletRequest,java.lang.String,long,long)">newSession</a></span>&#8203;(javax.servlet.http.HttpServletRequest&nbsp;request,
java.lang.String&nbsp;id,
long&nbsp;time,
long&nbsp;maxInactiveMs)</code></th>
<td class="colLast">
<div class="block">Create an entirely new Session.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>abstract <a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newSession(javax.servlet.http.HttpServletRequest,org.eclipse.jetty.server.session.SessionData)">newSession</a></span>&#8203;(javax.servlet.http.HttpServletRequest&nbsp;request,
<a href="SessionData.html" title="class in org.eclipse.jetty.server.session">SessionData</a>&nbsp;data)</code></th>
<td class="colLast">
<div class="block">Create a new Session for a request.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>abstract <a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newSession(org.eclipse.jetty.server.session.SessionData)">newSession</a></span>&#8203;(<a href="SessionData.html" title="class in org.eclipse.jetty.server.session">SessionData</a>&nbsp;data)</code></th>
<td class="colLast">
<div class="block">Create a new Session object from pre-existing session data</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(java.lang.String,org.eclipse.jetty.server.session.Session)">put</a></span>&#8203;(java.lang.String&nbsp;id,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">use <a href="#release(java.lang.String,org.eclipse.jetty.server.session.Session)"><code>release(String, Session)</code></a> instead</div>
</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#release(java.lang.String,org.eclipse.jetty.server.session.Session)">release</a></span>&#8203;(java.lang.String&nbsp;id,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)</code></th>
<td class="colLast">
<div class="block">Finish using the Session object.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#renewSessionId(java.lang.String,java.lang.String,java.lang.String,java.lang.String)">renewSessionId</a></span>&#8203;(java.lang.String&nbsp;oldId,
java.lang.String&nbsp;newId,
java.lang.String&nbsp;oldExtendedId,
java.lang.String&nbsp;newExtendedId)</code></th>
<td class="colLast">
<div class="block">Change the id of a Session.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#renewSessionId(org.eclipse.jetty.server.session.Session,java.lang.String,java.lang.String)">renewSessionId</a></span>&#8203;(<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session,
java.lang.String&nbsp;newId,
java.lang.String&nbsp;newExtendedId)</code></th>
<td class="colLast">
<div class="block">Swap the id on a session.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setEvictionPolicy(int)">setEvictionPolicy</a></span>&#8203;(int&nbsp;evictionTimeout)</code></th>
<td class="colLast">
<div class="block">-1 means we never evict inactive sessions.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setFlushOnResponseCommit(boolean)">setFlushOnResponseCommit</a></span>&#8203;(boolean&nbsp;flushOnResponseCommit)</code></th>
<td class="colLast">
<div class="block">If true, a dirty session will be written to the SessionDataStore
just before a response is returned to the client.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setInvalidateOnShutdown(boolean)">setInvalidateOnShutdown</a></span>&#8203;(boolean&nbsp;invalidateOnShutdown)</code></th>
<td class="colLast">
<div class="block">If true, all existing sessions in the cache will be invalidated when
the server shuts down.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setRemoveUnloadableSessions(boolean)">setRemoveUnloadableSessions</a></span>&#8203;(boolean&nbsp;removeUnloadableSessions)</code></th>
<td class="colLast">
<div class="block">If a session's data cannot be loaded from the store without error, remove
it from the persistent store.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSaveOnCreate(boolean)">setSaveOnCreate</a></span>&#8203;(boolean&nbsp;saveOnCreate)</code></th>
<td class="colLast">
<div class="block">Whether or not a session that is newly created should be
immediately saved.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSaveOnInactiveEviction(boolean)">setSaveOnInactiveEviction</a></span>&#8203;(boolean&nbsp;saveOnEvict)</code></th>
<td class="colLast">
<div class="block">Whether or not a a session that is about to be evicted should
be saved before being evicted.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSessionDataStore(org.eclipse.jetty.server.session.SessionDataStore)">setSessionDataStore</a></span>&#8203;(<a href="SessionDataStore.html" title="interface in org.eclipse.jetty.server.session">SessionDataStore</a>&nbsp;sessionStore)</code></th>
<td class="colLast">
<div class="block">A SessionDataStore that is the authoritative source
of session information.</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.util.component.ContainerLifeCycle">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/ContainerLifeCycle.html" title="class in org.eclipse.jetty.util.component">ContainerLifeCycle</a></h3>
<code><a href="../../util/component/ContainerLifeCycle.html#addBean(java.lang.Object)">addBean</a>, <a href="../../util/component/ContainerLifeCycle.html#addBean(java.lang.Object,boolean)">addBean</a>, <a href="../../util/component/ContainerLifeCycle.html#addEventListener(java.util.EventListener)">addEventListener</a>, <a href="../../util/component/ContainerLifeCycle.html#addManaged(org.eclipse.jetty.util.component.LifeCycle)">addManaged</a>, <a href="../../util/component/ContainerLifeCycle.html#contains(java.lang.Object)">contains</a>, <a href="../../util/component/ContainerLifeCycle.html#destroy()">destroy</a>, <a href="../../util/component/ContainerLifeCycle.html#dump()">dump</a>, <a href="../../util/component/ContainerLifeCycle.html#dump(java.lang.Appendable)">dump</a>, <a href="../../util/component/ContainerLifeCycle.html#dump(java.lang.Appendable,java.lang.String)">dump</a>, <a href="../../util/component/ContainerLifeCycle.html#dumpObjects(java.lang.Appendable,java.lang.String,java.lang.Object...)">dumpObjects</a>, <a href="../../util/component/ContainerLifeCycle.html#dumpStdErr()">dumpStdErr</a>, <a href="../../util/component/ContainerLifeCycle.html#getBean(java.lang.Class)">getBean</a>, <a href="../../util/component/ContainerLifeCycle.html#getBeans()">getBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#getBeans(java.lang.Class)">getBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#getContainedBeans(java.lang.Class)">getContainedBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#getContainedBeans(java.lang.Class,java.util.Collection)">getContainedBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#isAuto(java.lang.Object)">isAuto</a>, <a href="../../util/component/ContainerLifeCycle.html#isManaged(java.lang.Object)">isManaged</a>, <a href="../../util/component/ContainerLifeCycle.html#isUnmanaged(java.lang.Object)">isUnmanaged</a>, <a href="../../util/component/ContainerLifeCycle.html#manage(java.lang.Object)">manage</a>, <a href="../../util/component/ContainerLifeCycle.html#removeBean(java.lang.Object)">removeBean</a>, <a href="../../util/component/ContainerLifeCycle.html#removeBeans()">removeBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#removeEventListener(java.util.EventListener)">removeEventListener</a>, <a href="../../util/component/ContainerLifeCycle.html#setBeans(java.util.Collection)">setBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#start(org.eclipse.jetty.util.component.LifeCycle)">start</a>, <a href="../../util/component/ContainerLifeCycle.html#stop(org.eclipse.jetty.util.component.LifeCycle)">stop</a>, <a href="../../util/component/ContainerLifeCycle.html#unmanage(java.lang.Object)">unmanage</a>, <a href="../../util/component/ContainerLifeCycle.html#updateBean(java.lang.Object,java.lang.Object)">updateBean</a>, <a href="../../util/component/ContainerLifeCycle.html#updateBean(java.lang.Object,java.lang.Object,boolean)">updateBean</a>, <a href="../../util/component/ContainerLifeCycle.html#updateBeans(java.lang.Object%5B%5D,java.lang.Object%5B%5D)">updateBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#updateBeans(java.util.Collection,java.util.Collection)">updateBeans</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.util.component.AbstractLifeCycle">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle</a></h3>
<code><a href="../../util/component/AbstractLifeCycle.html#getEventListeners()">getEventListeners</a>, <a href="../../util/component/AbstractLifeCycle.html#getState()">getState</a>, <a href="../../util/component/AbstractLifeCycle.html#getState(org.eclipse.jetty.util.component.LifeCycle)">getState</a>, <a href="../../util/component/AbstractLifeCycle.html#isFailed()">isFailed</a>, <a href="../../util/component/AbstractLifeCycle.html#isRunning()">isRunning</a>, <a href="../../util/component/AbstractLifeCycle.html#isStarted()">isStarted</a>, <a href="../../util/component/AbstractLifeCycle.html#isStarting()">isStarting</a>, <a href="../../util/component/AbstractLifeCycle.html#isStopped()">isStopped</a>, <a href="../../util/component/AbstractLifeCycle.html#isStopping()">isStopping</a>, <a href="../../util/component/AbstractLifeCycle.html#setEventListeners(java.util.Collection)">setEventListeners</a>, <a href="../../util/component/AbstractLifeCycle.html#start()">start</a>, <a href="../../util/component/AbstractLifeCycle.html#stop()">stop</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.util.component.Container">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Container.html" title="interface in org.eclipse.jetty.util.component">Container</a></h3>
<code><a href="../../util/component/Container.html#getCachedBeans(java.lang.Class)">getCachedBeans</a>, <a href="../../util/component/Container.html#getEventListeners()">getEventListeners</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.util.component.Dumpable">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Dumpable.html" title="interface in org.eclipse.jetty.util.component">Dumpable</a></h3>
<code><a href="../../util/component/Dumpable.html#dumpSelf()">dumpSelf</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.util.component.Dumpable.DumpableContainer">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Dumpable.DumpableContainer.html" title="interface in org.eclipse.jetty.util.component">Dumpable.DumpableContainer</a></h3>
<code><a href="../../util/component/Dumpable.DumpableContainer.html#isDumpable(java.lang.Object)">isDumpable</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.util.component.LifeCycle">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/LifeCycle.html" title="interface in org.eclipse.jetty.util.component">LifeCycle</a></h3>
<code><a href="../../util/component/LifeCycle.html#addEventListener(java.util.EventListener)">addEventListener</a>, <a href="../../util/component/LifeCycle.html#isFailed()">isFailed</a>, <a href="../../util/component/LifeCycle.html#isRunning()">isRunning</a>, <a href="../../util/component/LifeCycle.html#isStarted()">isStarted</a>, <a href="../../util/component/LifeCycle.html#isStarting()">isStarting</a>, <a href="../../util/component/LifeCycle.html#isStopped()">isStopped</a>, <a href="../../util/component/LifeCycle.html#isStopping()">isStopping</a>, <a href="../../util/component/LifeCycle.html#removeEventListener(java.util.EventListener)">removeEventListener</a>, <a href="../../util/component/LifeCycle.html#start()">start</a>, <a href="../../util/component/LifeCycle.html#stop()">stop</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.server.session.SessionCache">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.eclipse.jetty.server.session.<a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></h3>
<code><a href="SessionCache.html#shutdown()">shutdown</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="_sessionDataStore">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_sessionDataStore</h4>
<pre>protected&nbsp;<a href="SessionDataStore.html" title="interface in org.eclipse.jetty.server.session">SessionDataStore</a> _sessionDataStore</pre>
<div class="block">The authoritative source of session data</div>
</li>
</ul>
<a id="_handler">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_handler</h4>
<pre>protected final&nbsp;<a href="SessionHandler.html" title="class in org.eclipse.jetty.server.session">SessionHandler</a> _handler</pre>
<div class="block">The SessionHandler related to this SessionCache</div>
</li>
</ul>
<a id="_context">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_context</h4>
<pre>protected&nbsp;<a href="SessionContext.html" title="class in org.eclipse.jetty.server.session">SessionContext</a> _context</pre>
<div class="block">Information about the context to which this SessionCache pertains</div>
</li>
</ul>
<a id="_evictionPolicy">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_evictionPolicy</h4>
<pre>protected&nbsp;int _evictionPolicy</pre>
<div class="block">When, if ever, to evict sessions: never; only when the last request for them finishes; after inactivity time (expressed as secs)</div>
</li>
</ul>
<a id="_saveOnCreate">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_saveOnCreate</h4>
<pre>protected&nbsp;boolean _saveOnCreate</pre>
<div class="block">If true, as soon as a new session is created, it will be persisted to the SessionDataStore</div>
</li>
</ul>
<a id="_saveOnInactiveEviction">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_saveOnInactiveEviction</h4>
<pre>protected&nbsp;boolean _saveOnInactiveEviction</pre>
<div class="block">If true, a session that will be evicted from the cache because it has been
inactive too long will be saved before being evicted.</div>
</li>
</ul>
<a id="_removeUnloadableSessions">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_removeUnloadableSessions</h4>
<pre>protected&nbsp;boolean _removeUnloadableSessions</pre>
<div class="block">If true, a Session whose data cannot be read will be
deleted from the SessionDataStore.</div>
</li>
</ul>
<a id="_flushOnResponseCommit">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_flushOnResponseCommit</h4>
<pre>protected&nbsp;boolean _flushOnResponseCommit</pre>
<div class="block">If true, when a response is about to be committed back to the client,
a dirty session will be flushed to the session store.</div>
</li>
</ul>
<a id="_invalidateOnShutdown">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>_invalidateOnShutdown</h4>
<pre>protected&nbsp;boolean _invalidateOnShutdown</pre>
<div class="block">If true, when the server shuts down, all sessions in the
cache will be invalidated before being removed.</div>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(org.eclipse.jetty.server.session.SessionHandler)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AbstractSessionCache</h4>
<pre>public&nbsp;AbstractSessionCache&#8203;(<a href="SessionHandler.html" title="class in org.eclipse.jetty.server.session">SessionHandler</a>&nbsp;handler)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>handler</code> - the <a href="SessionHandler.html" title="class in org.eclipse.jetty.server.session"><code>SessionHandler</code></a> to use</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="newSession(org.eclipse.jetty.server.session.SessionData)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newSession</h4>
<pre class="methodSignature">public abstract&nbsp;<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;newSession&#8203;(<a href="SessionData.html" title="class in org.eclipse.jetty.server.session">SessionData</a>&nbsp;data)</pre>
<div class="block">Create a new Session object from pre-existing session data</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#newSession(org.eclipse.jetty.server.session.SessionData)">newSession</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>data</code> - the session data</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new Session object</dd>
</dl>
</li>
</ul>
<a id="newSession(javax.servlet.http.HttpServletRequest,org.eclipse.jetty.server.session.SessionData)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newSession</h4>
<pre class="methodSignature">public abstract&nbsp;<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;newSession&#8203;(javax.servlet.http.HttpServletRequest&nbsp;request,
<a href="SessionData.html" title="class in org.eclipse.jetty.server.session">SessionData</a>&nbsp;data)</pre>
<div class="block">Create a new Session for a request.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>request</code> - the request</dd>
<dd><code>data</code> - the session data</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the new session</dd>
</dl>
</li>
</ul>
<a id="doGet(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doGet</h4>
<pre class="methodSignature">protected abstract&nbsp;<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;doGet&#8203;(java.lang.String&nbsp;id)</pre>
<div class="block">Get the session matching the key from the cache. Does not load
the session.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - session id</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the Session object matching the id</dd>
</dl>
</li>
</ul>
<a id="doPutIfAbsent(java.lang.String,org.eclipse.jetty.server.session.Session)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doPutIfAbsent</h4>
<pre class="methodSignature">protected abstract&nbsp;<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;doPutIfAbsent&#8203;(java.lang.String&nbsp;id,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)</pre>
<div class="block">Put the session into the map if it wasn't already there</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - the identity of the session</dd>
<dd><code>session</code> - the session object</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>null if the session wasn't already in the map, or the existing entry otherwise</dd>
</dl>
</li>
</ul>
<a id="doComputeIfAbsent(java.lang.String,java.util.function.Function)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doComputeIfAbsent</h4>
<pre class="methodSignature">protected abstract&nbsp;<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;doComputeIfAbsent&#8203;(java.lang.String&nbsp;id,
java.util.function.Function&lt;java.lang.String,&#8203;<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&gt;&nbsp;mappingFunction)</pre>
<div class="block">Compute the mappingFunction to create a Session object iff the session
with the given id isn't already in the map, otherwise return the existing Session.
This method is expected to have precisely the same behaviour as
<code>ConcurrentHashMap.computeIfAbsent(K, java.util.function.Function&lt;? super K, ? extends V&gt;)</code></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - the session id</dd>
<dd><code>mappingFunction</code> - the function to load the data for the session</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an existing Session from the cache</dd>
</dl>
</li>
</ul>
<a id="doReplace(java.lang.String,org.eclipse.jetty.server.session.Session,org.eclipse.jetty.server.session.Session)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doReplace</h4>
<pre class="methodSignature">protected abstract&nbsp;boolean&nbsp;doReplace&#8203;(java.lang.String&nbsp;id,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;oldValue,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;newValue)</pre>
<div class="block">Replace the mapping from id to oldValue with newValue</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - the id</dd>
<dd><code>oldValue</code> - the old value</dd>
<dd><code>newValue</code> - the new value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if replacement was done</dd>
</dl>
</li>
</ul>
<a id="doDelete(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doDelete</h4>
<pre class="methodSignature">public abstract&nbsp;<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;doDelete&#8203;(java.lang.String&nbsp;id)</pre>
<div class="block">Remove the session with this identity from the store</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - the id</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Session that was removed or null</dd>
</dl>
</li>
</ul>
<a id="getSessionHandler()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSessionHandler</h4>
<pre class="methodSignature">public&nbsp;<a href="SessionHandler.html" title="class in org.eclipse.jetty.server.session">SessionHandler</a>&nbsp;getSessionHandler()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#getSessionHandler()">getSessionHandler</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the SessionManger</dd>
</dl>
</li>
</ul>
<a id="initialize(org.eclipse.jetty.server.session.SessionContext)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initialize</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;initialize&#8203;(<a href="SessionContext.html" title="class in org.eclipse.jetty.server.session">SessionContext</a>&nbsp;context)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#initialize(org.eclipse.jetty.server.session.SessionContext)">initialize</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - the <a href="SessionContext.html" title="class in org.eclipse.jetty.server.session"><code>SessionContext</code></a> to use for this cache</dd>
</dl>
</li>
</ul>
<a id="doStart()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doStart</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;doStart()
throws java.lang.Exception</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../util/component/ContainerLifeCycle.html#doStart()">ContainerLifeCycle</a></code></span></div>
<div class="block">Starts the managed lifecycle beans in the order they were added.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../util/component/ContainerLifeCycle.html#doStart()">doStart</a></code>&nbsp;in class&nbsp;<code><a href="../../util/component/ContainerLifeCycle.html" title="class in org.eclipse.jetty.util.component">ContainerLifeCycle</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../util/component/AbstractLifeCycle.StopException.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle.StopException</a></code> - If thrown, the lifecycle will immediately be stopped.</dd>
<dd><code>java.lang.Exception</code> - If there was a problem starting. Will cause a transition to FAILED state</dd>
</dl>
</li>
</ul>
<a id="doStop()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doStop</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;doStop()
throws java.lang.Exception</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../util/component/ContainerLifeCycle.html#doStop()">ContainerLifeCycle</a></code></span></div>
<div class="block">Stops the managed lifecycle beans in the reverse order they were added.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../util/component/ContainerLifeCycle.html#doStop()">doStop</a></code>&nbsp;in class&nbsp;<code><a href="../../util/component/ContainerLifeCycle.html" title="class in org.eclipse.jetty.util.component">ContainerLifeCycle</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - If there was a problem stopping. Will cause a transition to FAILED state</dd>
</dl>
</li>
</ul>
<a id="getSessionDataStore()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSessionDataStore</h4>
<pre class="methodSignature">public&nbsp;<a href="SessionDataStore.html" title="interface in org.eclipse.jetty.server.session">SessionDataStore</a>&nbsp;getSessionDataStore()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#getSessionDataStore()">getSessionDataStore</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the SessionDataStore or null if there isn't one</dd>
</dl>
</li>
</ul>
<a id="setSessionDataStore(org.eclipse.jetty.server.session.SessionDataStore)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSessionDataStore</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setSessionDataStore&#8203;(<a href="SessionDataStore.html" title="interface in org.eclipse.jetty.server.session">SessionDataStore</a>&nbsp;sessionStore)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SessionCache.html#setSessionDataStore(org.eclipse.jetty.server.session.SessionDataStore)">SessionCache</a></code></span></div>
<div class="block">A SessionDataStore that is the authoritative source
of session information.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#setSessionDataStore(org.eclipse.jetty.server.session.SessionDataStore)">setSessionDataStore</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sessionStore</code> - the <a href="SessionDataStore.html" title="interface in org.eclipse.jetty.server.session"><code>SessionDataStore</code></a> to use</dd>
</dl>
</li>
</ul>
<a id="getEvictionPolicy()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEvictionPolicy</h4>
<pre class="methodSignature"><a href="../../util/annotation/ManagedAttribute.html" title="annotation in org.eclipse.jetty.util.annotation">@ManagedAttribute</a>(<a href="../../util/annotation/ManagedAttribute.html#value()">value</a>="session eviction policy",
<a href="../../util/annotation/ManagedAttribute.html#readonly()">readonly</a>=true)
public&nbsp;int&nbsp;getEvictionPolicy()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#getEvictionPolicy()">getEvictionPolicy</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the eviction policy</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="SessionCache.html#getEvictionPolicy()"><code>SessionCache.getEvictionPolicy()</code></a></dd>
</dl>
</li>
</ul>
<a id="setEvictionPolicy(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setEvictionPolicy</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setEvictionPolicy&#8203;(int&nbsp;evictionTimeout)</pre>
<div class="block">-1 means we never evict inactive sessions.
0 means we evict a session after the last request for it exits
&gt;0 is the number of seconds after which we evict inactive sessions from the cache</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#setEvictionPolicy(int)">setEvictionPolicy</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>evictionTimeout</code> - -1 is never evict; 0 is evict-on-exit; and any other positive
value is the time in seconds that a session can be idle before it can
be evicted.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="SessionCache.html#setEvictionPolicy(int)"><code>SessionCache.setEvictionPolicy(int)</code></a></dd>
</dl>
</li>
</ul>
<a id="isSaveOnCreate()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSaveOnCreate</h4>
<pre class="methodSignature"><a href="../../util/annotation/ManagedAttribute.html" title="annotation in org.eclipse.jetty.util.annotation">@ManagedAttribute</a>(<a href="../../util/annotation/ManagedAttribute.html#value()">value</a>="immediately save new sessions",
<a href="../../util/annotation/ManagedAttribute.html#readonly()">readonly</a>=true)
public&nbsp;boolean&nbsp;isSaveOnCreate()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#isSaveOnCreate()">isSaveOnCreate</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>if <code>true</code> the newly created session will be saved immediately</dd>
</dl>
</li>
</ul>
<a id="setSaveOnCreate(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSaveOnCreate</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setSaveOnCreate&#8203;(boolean&nbsp;saveOnCreate)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SessionCache.html#setSaveOnCreate(boolean)">SessionCache</a></code></span></div>
<div class="block">Whether or not a session that is newly created should be
immediately saved. If false, a session that is created and
invalidated within a single request is never persisted.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#setSaveOnCreate(boolean)">setSaveOnCreate</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>saveOnCreate</code> - <code>true</code> to immediately save the newly created session</dd>
</dl>
</li>
</ul>
<a id="isRemoveUnloadableSessions()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRemoveUnloadableSessions</h4>
<pre class="methodSignature"><a href="../../util/annotation/ManagedAttribute.html" title="annotation in org.eclipse.jetty.util.annotation">@ManagedAttribute</a>(<a href="../../util/annotation/ManagedAttribute.html#value()">value</a>="delete unreadable stored sessions",
<a href="../../util/annotation/ManagedAttribute.html#readonly()">readonly</a>=true)
public&nbsp;boolean&nbsp;isRemoveUnloadableSessions()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#isRemoveUnloadableSessions()">isRemoveUnloadableSessions</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if sessions that can't be loaded are deleted from the store</dd>
</dl>
</li>
</ul>
<a id="setRemoveUnloadableSessions(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setRemoveUnloadableSessions</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setRemoveUnloadableSessions&#8203;(boolean&nbsp;removeUnloadableSessions)</pre>
<div class="block">If a session's data cannot be loaded from the store without error, remove
it from the persistent store.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#setRemoveUnloadableSessions(boolean)">setRemoveUnloadableSessions</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>removeUnloadableSessions</code> - if <code>true</code> unloadable sessions will be removed from session store</dd>
</dl>
</li>
</ul>
<a id="setFlushOnResponseCommit(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFlushOnResponseCommit</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setFlushOnResponseCommit&#8203;(boolean&nbsp;flushOnResponseCommit)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SessionCache.html#setFlushOnResponseCommit(boolean)">SessionCache</a></code></span></div>
<div class="block">If true, a dirty session will be written to the SessionDataStore
just before a response is returned to the client. This ensures
that subsequent requests to either the same node or a different
node see the changed session data.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#setFlushOnResponseCommit(boolean)">setFlushOnResponseCommit</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
</dl>
</li>
</ul>
<a id="isFlushOnResponseCommit()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isFlushOnResponseCommit</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isFlushOnResponseCommit()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#isFlushOnResponseCommit()">isFlushOnResponseCommit</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if dirty sessions should be written
before the response is committed.</dd>
</dl>
</li>
</ul>
<a id="get(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
<pre class="methodSignature">public&nbsp;<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;get&#8203;(java.lang.String&nbsp;id)
throws java.lang.Exception</pre>
<div class="block">Get a session object.
If the session object is not in this session store, try getting
the data for it from a SessionDataStore associated with the
session manager. The usage count of the session is incremented.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#get(java.lang.String)">get</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - the session id</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the Session if one exists, null otherwise</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if any error occurred</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="SessionCache.html#get(java.lang.String)"><code>SessionCache.get(java.lang.String)</code></a></dd>
</dl>
</li>
</ul>
<a id="getAndEnter(java.lang.String,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAndEnter</h4>
<pre class="methodSignature">protected&nbsp;<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;getAndEnter&#8203;(java.lang.String&nbsp;id,
boolean&nbsp;enter)
throws java.lang.Exception</pre>
<div class="block">Get a session object.
If the session object is not in this session store, try getting
the data for it from a SessionDataStore associated with the
session manager.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - The session to retrieve</dd>
<dd><code>enter</code> - if true, the usage count of the session will be incremented</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the session if it exists, null otherwise</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if the session cannot be loaded</dd>
</dl>
</li>
</ul>
<a id="add(java.lang.String,org.eclipse.jetty.server.session.Session)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>add</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;add&#8203;(java.lang.String&nbsp;id,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)
throws java.lang.Exception</pre>
<div class="block">Add an entirely new session (created by the application calling Request.getSession(true))
to the cache. The usage count of the fresh session is incremented.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#add(java.lang.String,org.eclipse.jetty.server.session.Session)">add</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - the id</dd>
<dd><code>session</code> - </dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a id="commit(org.eclipse.jetty.server.session.Session)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>commit</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;commit&#8203;(<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)
throws java.lang.Exception</pre>
<div class="block">A response that has accessed this session is about to
be returned to the client. Pass the session to the store
to persist, so that any changes will be visible to
subsequent requests on the same node (if using NullSessionCache),
or on other nodes.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#commit(org.eclipse.jetty.server.session.Session)">commit</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a id="put(java.lang.String,org.eclipse.jetty.server.session.Session)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>put</h4>
<pre class="methodSignature">@Deprecated
public&nbsp;void&nbsp;put&#8203;(java.lang.String&nbsp;id,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)
throws java.lang.Exception</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">use <a href="#release(java.lang.String,org.eclipse.jetty.server.session.Session)"><code>release(String, Session)</code></a> instead</div>
</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SessionCache.html#put(java.lang.String,org.eclipse.jetty.server.session.Session)">SessionCache</a></code></span></div>
<div class="block">Finish using a Session. This is called by the SessionHandler
once a request is finished with a Session. SessionCache
implementations may want to delay writing out Session contents
until the last request exits a Session.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#put(java.lang.String,org.eclipse.jetty.server.session.Session)">put</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - the session id</dd>
<dd><code>session</code> - the current session object</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if any error occurred</dd>
</dl>
</li>
</ul>
<a id="release(java.lang.String,org.eclipse.jetty.server.session.Session)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>release</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;release&#8203;(java.lang.String&nbsp;id,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)
throws java.lang.Exception</pre>
<div class="block">Finish using the Session object.
This should be called when a request exists the session. Only when the last
simultaneous request exists the session will any action be taken.
If there is a SessionDataStore write the session data through to it.
If the SessionDataStore supports passivation, call the passivate/active listeners.
If the evictionPolicy == SessionCache.EVICT_ON_SESSION_EXIT then after we have saved
the session, we evict it from the cache.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#release(java.lang.String,org.eclipse.jetty.server.session.Session)">release</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - the session id</dd>
<dd><code>session</code> - the current session object</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if any error occurred</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="SessionCache.html#release(java.lang.String,org.eclipse.jetty.server.session.Session)"><code>SessionCache.release(java.lang.String, org.eclipse.jetty.server.session.Session)</code></a></dd>
</dl>
</li>
</ul>
<a id="exists(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>exists</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;exists&#8203;(java.lang.String&nbsp;id)
throws java.lang.Exception</pre>
<div class="block">Check to see if a session corresponding to the id exists.
This method will first check with the object store. If it
doesn't exist in the object store (might be passivated etc),
it will check with the data store.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#exists(java.lang.String)">exists</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - the session id</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the session exists, false otherwise</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - the Exception</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="SessionCache.html#exists(java.lang.String)"><code>SessionCache.exists(java.lang.String)</code></a></dd>
</dl>
</li>
</ul>
<a id="contains(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>contains</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;contains&#8203;(java.lang.String&nbsp;id)
throws java.lang.Exception</pre>
<div class="block">Check to see if this cache contains an entry for the session
corresponding to the session id.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#contains(java.lang.String)">contains</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - the session id</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if a Session object matching the id is present
in the cache, false otherwise</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if any error occurred</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="SessionCache.html#contains(java.lang.String)"><code>SessionCache.contains(java.lang.String)</code></a></dd>
</dl>
</li>
</ul>
<a id="delete(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>delete</h4>
<pre class="methodSignature">public&nbsp;<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;delete&#8203;(java.lang.String&nbsp;id)
throws java.lang.Exception</pre>
<div class="block">Remove a session object from this store and from any backing store.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#delete(java.lang.String)">delete</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - the session id</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the Session that was removed, null otherwise</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if any error occurred</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="SessionCache.html#delete(java.lang.String)"><code>SessionCache.delete(java.lang.String)</code></a></dd>
</dl>
</li>
</ul>
<a id="checkExpiration(java.util.Set)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkExpiration</h4>
<pre class="methodSignature">public&nbsp;java.util.Set&lt;java.lang.String&gt;&nbsp;checkExpiration&#8203;(java.util.Set&lt;java.lang.String&gt;&nbsp;candidates)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SessionCache.html#checkExpiration(java.util.Set)">SessionCache</a></code></span></div>
<div class="block">Check a list of session ids that belong to potentially expired
sessions. The Session in the cache should be checked,
but also the SessionDataStore, as that is the authoritative
source of all session information.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#checkExpiration(java.util.Set)">checkExpiration</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>candidates</code> - the session ids to check</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the set of session ids that have actually expired: this can
be a superset of the original candidate list.</dd>
</dl>
</li>
</ul>
<a id="checkInactiveSession(org.eclipse.jetty.server.session.Session)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkInactiveSession</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;checkInactiveSession&#8203;(<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)</pre>
<div class="block">Check a session for being inactive and
thus being able to be evicted, if eviction
is enabled.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#checkInactiveSession(org.eclipse.jetty.server.session.Session)">checkInactiveSession</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>session</code> - session to check</dd>
</dl>
</li>
</ul>
<a id="renewSessionId(java.lang.String,java.lang.String,java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>renewSessionId</h4>
<pre class="methodSignature">public&nbsp;<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;renewSessionId&#8203;(java.lang.String&nbsp;oldId,
java.lang.String&nbsp;newId,
java.lang.String&nbsp;oldExtendedId,
java.lang.String&nbsp;newExtendedId)
throws java.lang.Exception</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SessionCache.html#renewSessionId(java.lang.String,java.lang.String,java.lang.String,java.lang.String)">SessionCache</a></code></span></div>
<div class="block">Change the id of a Session.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#renewSessionId(java.lang.String,java.lang.String,java.lang.String,java.lang.String)">renewSessionId</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>oldId</code> - the current session id</dd>
<dd><code>newId</code> - the new session id</dd>
<dd><code>oldExtendedId</code> - the current extended session id</dd>
<dd><code>newExtendedId</code> - the new extended session id</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the Session after changing its id</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if any error occurred</dd>
</dl>
</li>
</ul>
<a id="renewSessionId(org.eclipse.jetty.server.session.Session,java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>renewSessionId</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;renewSessionId&#8203;(<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session,
java.lang.String&nbsp;newId,
java.lang.String&nbsp;newExtendedId)
throws java.lang.Exception</pre>
<div class="block">Swap the id on a session.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>session</code> - the session for which to do the swap</dd>
<dd><code>newId</code> - the new id</dd>
<dd><code>newExtendedId</code> - the full id plus node id</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if there was a failure saving the change</dd>
</dl>
</li>
</ul>
<a id="setSaveOnInactiveEviction(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSaveOnInactiveEviction</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setSaveOnInactiveEviction&#8203;(boolean&nbsp;saveOnEvict)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SessionCache.html#setSaveOnInactiveEviction(boolean)">SessionCache</a></code></span></div>
<div class="block">Whether or not a a session that is about to be evicted should
be saved before being evicted.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#setSaveOnInactiveEviction(boolean)">setSaveOnInactiveEviction</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>saveOnEvict</code> - <code>true</code> if the session should be saved before being evicted</dd>
</dl>
</li>
</ul>
<a id="setInvalidateOnShutdown(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setInvalidateOnShutdown</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setInvalidateOnShutdown&#8203;(boolean&nbsp;invalidateOnShutdown)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SessionCache.html#setInvalidateOnShutdown(boolean)">SessionCache</a></code></span></div>
<div class="block">If true, all existing sessions in the cache will be invalidated when
the server shuts down. Default is false.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#setInvalidateOnShutdown(boolean)">setInvalidateOnShutdown</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
</dl>
</li>
</ul>
<a id="isInvalidateOnShutdown()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isInvalidateOnShutdown</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isInvalidateOnShutdown()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#isInvalidateOnShutdown()">isInvalidateOnShutdown</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
</dl>
</li>
</ul>
<a id="isSaveOnInactiveEviction()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSaveOnInactiveEviction</h4>
<pre class="methodSignature"><a href="../../util/annotation/ManagedAttribute.html" title="annotation in org.eclipse.jetty.util.annotation">@ManagedAttribute</a>(<a href="../../util/annotation/ManagedAttribute.html#value()">value</a>="save sessions before evicting from cache",
<a href="../../util/annotation/ManagedAttribute.html#readonly()">readonly</a>=true)
public&nbsp;boolean&nbsp;isSaveOnInactiveEviction()</pre>
<div class="block">Whether we should save a session that has been inactive before
we boot it from the cache.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#isSaveOnInactiveEviction()">isSaveOnInactiveEviction</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if an inactive session will be saved before being evicted</dd>
</dl>
</li>
</ul>
<a id="newSession(javax.servlet.http.HttpServletRequest,java.lang.String,long,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newSession</h4>
<pre class="methodSignature">public&nbsp;<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;newSession&#8203;(javax.servlet.http.HttpServletRequest&nbsp;request,
java.lang.String&nbsp;id,
long&nbsp;time,
long&nbsp;maxInactiveMs)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SessionCache.html#newSession(javax.servlet.http.HttpServletRequest,java.lang.String,long,long)">SessionCache</a></code></span></div>
<div class="block">Create an entirely new Session.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionCache.html#newSession(javax.servlet.http.HttpServletRequest,java.lang.String,long,long)">newSession</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>request</code> - the request</dd>
<dd><code>id</code> - the unique id associated to the session</dd>
<dd><code>time</code> - the timestamp of the session creation</dd>
<dd><code>maxInactiveMs</code> - the max inactive time in milliseconds</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new Session</dd>
</dl>
</li>
</ul>
<a id="toString()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;toString()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../util/component/AbstractLifeCycle.html#toString()">toString</a></code>&nbsp;in class&nbsp;<code><a href="../../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/AbstractSessionCache.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 1995&#x2013;2022 <a href="https://webtide.com">Webtide</a>. All rights reserved.</small></p>
</footer>
</body>
</html>