Added: 
tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/util/TimeBucketCounterBase.html
URL: 
http://svn.apache.org/viewvc/tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/util/TimeBucketCounterBase.html?rev=1924970&view=auto
==============================================================================
--- 
tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/util/TimeBucketCounterBase.html
 (added)
+++ 
tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/util/TimeBucketCounterBase.html
 Wed Apr  9 19:29:19 2025
@@ -0,0 +1,379 @@
+<!DOCTYPE HTML>
+<html lang="en">
+<head>
+<!-- Generated by javadoc (23) -->
+<title>TimeBucketCounterBase (Apache Tomcat 9.0.104 API Documentation)</title>
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="description" content="declaration: package: 
org.apache.catalina.util, class: TimeBucketCounterBase">
+<meta name="generator" content="javadoc/ClassWriter">
+<link rel="stylesheet" type="text/css" 
href="../../../../resource-files/jquery-ui.min.css" title="Style">
+<link rel="stylesheet" type="text/css" 
href="../../../../resource-files/stylesheet.css" title="Style">
+<script type="text/javascript" 
src="../../../../script-files/script.js"></script>
+<script type="text/javascript" 
src="../../../../script-files/jquery-3.7.1.min.js"></script>
+<script type="text/javascript" 
src="../../../../script-files/jquery-ui.min.js"></script>
+</head>
+<body class="class-declaration-page">
+<script type="text/javascript">const pathtoroot = "../../../../";
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="top-nav" id="navbar-top">
+<div class="nav-content">
+<div class="nav-menu-button"><button id="navbar-toggle-button" 
aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation 
links"><span class="nav-bar-toggle-icon">&nbsp;</span><span 
class="nav-bar-toggle-icon">&nbsp;</span><span 
class="nav-bar-toggle-icon">&nbsp;</span></button></div>
+<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation 
links">Skip navigation links</a></div>
+<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="nav-bar-cell1-rev">Class</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="../../../../search.html">Search</a></li>
+<li><a href="../../../../help-doc.html#class">Help</a></li>
+</ul>
+<div class="about-language"><b>Apache Tomcat<sup>®</sup> 9.0.104</b></div>
+</div>
+</div>
+<div class="sub-nav">
+<div class="nav-content">
+<ol class="sub-nav-list">
+<li><a href="package-summary.html">org.apache.catalina.util</a></li>
+<li><a href="TimeBucketCounterBase.html" 
class="current-selection">TimeBucketCounterBase</a></li>
+</ol>
+<div class="nav-list-search">
+<input type="text" id="search-input" disabled placeholder="Search" 
aria-label="Search in documentation" autocomplete="off">
+<input type="reset" id="reset-search" disabled value="Reset">
+</div>
+</div>
+</div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<span class="skip-nav" id="skip-navbar-top"></span></nav>
+</header>
+<div class="main-grid">
+<nav role="navigation" class="toc" aria-label="Table of contents">
+<div class="toc-header">Contents&nbsp;
+<input type="text" class="filter-input" disabled placeholder="Filter" 
aria-label="Filter table of contents" autocomplete="off">
+<input type="reset" class="reset-filter" disabled value="Reset">
+</div>
+<button class="hide-sidebar"><span>Hide 
sidebar&nbsp;</span>&#10094;</button><button 
class="show-sidebar">&#10095;<span>&nbsp;Show sidebar</span></button>
+<ol class="toc-list">
+<li><a href="#" tabindex="0">Description</a></li>
+<li><a href="#constructor-summary" tabindex="0">Constructor Summary</a></li>
+<li><a href="#method-summary" tabindex="0">Method Summary</a></li>
+<li><a href="#constructor-detail" tabindex="0">Constructor Details</a>
+<ol class="toc-list">
+<li><a href="#%3Cinit%3E(int,java.util.concurrent.ScheduledExecutorService)" 
tabindex="0">TimeBucketCounterBase(int, ScheduledExecutorService)</a></li>
+</ol>
+</li>
+<li><a href="#method-detail" tabindex="0">Method Details</a>
+<ol class="toc-list">
+<li><a href="#getBucketDuration()" tabindex="0">getBucketDuration()</a></li>
+<li><a href="#getRatio()" tabindex="0">getRatio()</a></li>
+<li><a href="#increment(java.lang.String)" 
tabindex="0">increment(String)</a></li>
+<li><a href="#genKey(java.lang.String)" tabindex="0">genKey(String)</a></li>
+<li><a href="#genKey(java.lang.String,long)" tabindex="0">genKey(String, 
long)</a></li>
+<li><a href="#getBucketIndex(long)" tabindex="0">getBucketIndex(long)</a></li>
+<li><a href="#getCurrentBucketPrefix()" 
tabindex="0">getCurrentBucketPrefix()</a></li>
+<li><a href="#getMillisUntilNextBucket()" 
tabindex="0">getMillisUntilNextBucket()</a></li>
+<li><a href="#destroy()" tabindex="0">destroy()</a></li>
+<li><a href="#periodicEvict()" tabindex="0">periodicEvict()</a></li>
+</ol>
+</li>
+</ol>
+</nav>
+<main role="main">
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<h1 title="Class TimeBucketCounterBase" class="title">Class 
TimeBucketCounterBase</h1>
+</div>
+<div class="inheritance" title="Inheritance Tree"><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html";
 title="class or interface in java.lang" 
class="external-link">java.lang.Object</a>
+<div class="inheritance">org.apache.catalina.util.TimeBucketCounterBase</div>
+</div>
+<section class="class-description" id="class-description">
+<div class="horizontal-scroll">
+<dl class="notes">
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="TimeBucketCounter.html" title="class in 
org.apache.catalina.util">TimeBucketCounter</a></code></dd>
+</dl>
+<hr>
+<div class="type-signature"><span class="modifiers">public abstract class 
</span><span class="element-name type-name-label">TimeBucketCounterBase</span>
+<span class="extends-implements">extends <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html";
 title="class or interface in java.lang" 
class="external-link">Object</a></span></div>
+<div class="block">This class maintains a thread safe hash map that has 
timestamp-based buckets followed by a string for a key, and a
+ counter for an integer value. Each time the increment() method is called it 
adds the key if it does not exist,
+ increments its value and returns it.</div>
+</div>
+</section>
+<section class="summary">
+<ul class="summary-list">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<li>
+<section class="constructor-summary" id="constructor-summary">
+<h2>Constructor Summary</h2>
+<div class="caption"><span>Constructors</span></div>
+<div class="summary-table two-column-summary">
+<div class="table-header col-first">Constructor</div>
+<div class="table-header col-last">Description</div>
+<div class="col-constructor-name even-row-color"><code><a 
href="#%3Cinit%3E(int,java.util.concurrent.ScheduledExecutorService)" 
class="member-name-link">TimeBucketCounterBase</a><wbr>(int&nbsp;bucketDuration,
+ <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/ScheduledExecutorService.html";
 title="class or interface in java.util.concurrent" 
class="external-link">ScheduledExecutorService</a>&nbsp;executorService)</code></div>
+<div class="col-last even-row-color">
+<div class="block">Creates a new TimeBucketCounter with the specified 
lifetime.</div>
+</div>
+</div>
+</section>
+</li>
+<!-- ========== METHOD SUMMARY =========== -->
+<li>
+<section class="method-summary" id="method-summary">
+<h2>Method Summary</h2>
+<div id="method-summary-table">
+<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button 
id="method-summary-table-tab0" role="tab" aria-selected="true" 
aria-controls="method-summary-table.tabpanel" tabindex="0" 
onkeydown="switchTab(event)" onclick="show('method-summary-table', 
'method-summary-table', 3)" class="active-table-tab">All 
Methods</button><button id="method-summary-table-tab2" role="tab" 
aria-selected="false" aria-controls="method-summary-table.tabpanel" 
tabindex="-1" onkeydown="switchTab(event)" 
onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" 
class="table-tab">Instance Methods</button><button 
id="method-summary-table-tab3" role="tab" aria-selected="false" 
aria-controls="method-summary-table.tabpanel" tabindex="-1" 
onkeydown="switchTab(event)" onclick="show('method-summary-table', 
'method-summary-table-tab3', 3)" class="table-tab">Abstract 
Methods</button><button id="method-summary-table-tab4" role="tab" 
aria-selected="false" aria-controls="method-summary-table.
 tabpanel" tabindex="-1" onkeydown="switchTab(event)" 
onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" 
class="table-tab">Concrete Methods</button></div>
+<div id="method-summary-table.tabpanel" role="tabpanel" 
aria-labelledby="method-summary-table-tab0">
+<div class="summary-table three-column-summary">
+<div class="table-header col-first">Modifier and Type</div>
+<div class="table-header col-second">Method</div>
+<div class="table-header col-last">Description</div>
+<div class="col-first even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
+<div class="col-second even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a href="#destroy()" 
class="member-name-link">destroy</a>()</code></div>
+<div class="col-last even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Stops threads created by this object and cleans up 
resources.</div>
+</div>
+<div class="col-first odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>protected final <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a></code></div>
+<div class="col-second odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#genKey(java.lang.String)" class="member-name-link">genKey</a><wbr>(<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a>&nbsp;identifier)</code></div>
+<div class="col-last odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Generates the key of timeBucket counter maps with the 
specific identifier, and the timestamp is implicitly
+ equivalent to "now".</div>
+</div>
+<div class="col-first even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>protected final <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a></code></div>
+<div class="col-second even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#genKey(java.lang.String,long)" 
class="member-name-link">genKey</a><wbr>(<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a>&nbsp;identifier,
+ long&nbsp;timestamp)</code></div>
+<div class="col-last even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Generates the key of timeBucket counter maps with the 
specific identifier and timestamp.</div>
+</div>
+<div class="col-first odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
+<div class="col-second odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#getBucketDuration()" 
class="member-name-link">getBucketDuration</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab3"><code>protected abstract 
long</code></div>
+<div class="col-second even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab3"><code><a 
href="#getBucketIndex(long)" 
class="member-name-link">getBucketIndex</a><wbr>(long&nbsp;timestamp)</code></div>
+<div class="col-last even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab3">
+<div class="block">Calculate the bucket index for the specific timestamp.</div>
+</div>
+<div class="col-first odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
+<div class="col-second odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#getCurrentBucketPrefix()" 
class="member-name-link">getCurrentBucketPrefix</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Returns current bucket prefix</div>
+</div>
+<div class="col-first even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab3"><code>abstract 
long</code></div>
+<div class="col-second even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab3"><code><a 
href="#getMillisUntilNextBucket()" 
class="member-name-link">getMillisUntilNextBucket</a>()</code></div>
+<div class="col-last even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab3">
+<div class="block">When we want to test a full bucket duration we need to 
sleep until the next bucket starts.</div>
+</div>
+<div class="col-first odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab3"><code>abstract 
double</code></div>
+<div class="col-second odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab3"><code><a 
href="#getRatio()" class="member-name-link">getRatio</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab3">
+<div class="block">Returns the ratio between the configured duration param and 
the actual duration.</div>
+</div>
+<div class="col-first even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>final 
int</code></div>
+<div class="col-second even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#increment(java.lang.String)" 
class="member-name-link">increment</a><wbr>(<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a>&nbsp;identifier)</code></div>
+<div class="col-last even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Increments the counter for the passed identifier in the 
current time bucket and returns the new value.</div>
+</div>
+<div class="col-first odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
+<div class="col-second odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#periodicEvict()" 
class="member-name-link">periodicEvict</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Periodic evict, perform removal of obsolete bucket 
items.</div>
+</div>
+</div>
+</div>
+</div>
+<div class="inherited-list">
+<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from 
class&nbsp;java.lang.<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html";
 title="class or interface in java.lang" class="external-link">Object</a></h3>
+<code><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#clone()"
 title="class or interface in java.lang" class="external-link">clone</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)"
 title="class or interface in java.lang" class="external-link">equals</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#finalize()"
 title="class or interface in java.lang" class="external-link">finalize</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#getClass()"
 title="class or interface in java.lang" class="external-link">getClass</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#hashCode()"
 title="class or interface in java.lang" class="external-link">hashCode</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Objec
 t.html#notify()" title="class or interface in java.lang" 
class="external-link">notify</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#notifyAll()"
 title="class or interface in java.lang" class="external-link">notifyAll</a>, 
<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#toString()"
 title="class or interface in java.lang" class="external-link">toString</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait()"
 title="class or interface in java.lang" class="external-link">wait</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long)"
 title="class or interface in java.lang" class="external-link">wait</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long,int)"
 title="class or interface in java.lang" 
class="external-link">wait</a></code></div>
+</section>
+</li>
+</ul>
+</section>
+<section class="details">
+<ul class="details-list">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<li>
+<section class="constructor-details" id="constructor-detail">
+<h2>Constructor Details</h2>
+<ul class="member-list">
+<li>
+<section class="detail" 
id="&lt;init&gt;(int,java.util.concurrent.ScheduledExecutorService)">
+<h3>TimeBucketCounterBase</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="element-name">TimeBucketCounterBase</span><wbr><span 
class="parameters">(int&nbsp;bucketDuration,
+ <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/ScheduledExecutorService.html";
 title="class or interface in java.util.concurrent" 
class="external-link">ScheduledExecutorService</a>&nbsp;executorService)</span></div>
+<div class="block">Creates a new TimeBucketCounter with the specified 
lifetime.</div>
+<dl class="notes">
+<dt>Parameters:</dt>
+<dd><code>bucketDuration</code> - duration in seconds, e.g. for 1 minute pass 
60</dd>
+<dd><code>executorService</code> - the executor service that will be used to 
run the maintenance task</dd>
+<dt>Throws:</dt>
+<dd><code><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/NullPointerException.html";
 title="class or interface in java.lang" 
class="external-link">NullPointerException</a></code> - if executorService is 
<code>null</code>.</dd>
+</dl>
+</div>
+</section>
+</li>
+</ul>
+</section>
+</li>
+<!-- ============ METHOD DETAIL ========== -->
+<li>
+<section class="method-details" id="method-detail">
+<h2>Method Details</h2>
+<ul class="member-list">
+<li>
+<section class="detail" id="getBucketDuration()">
+<h3>getBucketDuration</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">int</span>&nbsp;<span 
class="element-name">getBucketDuration</span>()</div>
+<dl class="notes">
+<dt>Returns:</dt>
+<dd>bucketDuration in seconds</dd>
+</dl>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="getRatio()">
+<h3>getRatio</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public 
abstract</span>&nbsp;<span class="return-type">double</span>&nbsp;<span 
class="element-name">getRatio</span>()</div>
+<div class="block">Returns the ratio between the configured duration param and 
the actual duration.</div>
+<dl class="notes">
+<dt>Returns:</dt>
+<dd>the ratio between the configured duration param and the actual 
duration.</dd>
+</dl>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="increment(java.lang.String)">
+<h3>increment</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public 
final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span 
class="element-name">increment</span><wbr><span class="parameters">(<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a>&nbsp;identifier)</span></div>
+<div class="block">Increments the counter for the passed identifier in the 
current time bucket and returns the new value.</div>
+<dl class="notes">
+<dt>Parameters:</dt>
+<dd><code>identifier</code> - an identifier for which we want to maintain 
count, e.g. IP Address</dd>
+<dt>Returns:</dt>
+<dd>the count within the current time bucket</dd>
+</dl>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="genKey(java.lang.String)">
+<h3>genKey</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">protected 
final</span>&nbsp;<span class="return-type"><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a></span>&nbsp;<span 
class="element-name">genKey</span><wbr><span class="parameters">(<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a>&nbsp;identifier)</span></div>
+<div class="block">Generates the key of timeBucket counter maps with the 
specific identifier, and the timestamp is implicitly
+ equivalent to "now".</div>
+<dl class="notes">
+<dt>Parameters:</dt>
+<dd><code>identifier</code> - an identifier for which we want to maintain 
count</dd>
+<dt>Returns:</dt>
+<dd>key of timeBucket counter maps</dd>
+</dl>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="genKey(java.lang.String,long)">
+<h3>genKey</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">protected 
final</span>&nbsp;<span class="return-type"><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a></span>&nbsp;<span 
class="element-name">genKey</span><wbr><span class="parameters">(<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a>&nbsp;identifier,
+ long&nbsp;timestamp)</span></div>
+<div class="block">Generates the key of timeBucket counter maps with the 
specific identifier and timestamp.</div>
+<dl class="notes">
+<dt>Parameters:</dt>
+<dd><code>identifier</code> - of target request</dd>
+<dd><code>timestamp</code> - when target request received</dd>
+<dt>Returns:</dt>
+<dd>key of timeBucket counter maps</dd>
+</dl>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="getBucketIndex(long)">
+<h3>getBucketIndex</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">protected 
abstract</span>&nbsp;<span class="return-type">long</span>&nbsp;<span 
class="element-name">getBucketIndex</span><wbr><span 
class="parameters">(long&nbsp;timestamp)</span></div>
+<div class="block">Calculate the bucket index for the specific timestamp.</div>
+<dl class="notes">
+<dt>Parameters:</dt>
+<dd><code>timestamp</code> - the specific timestamp in milliseconds</dd>
+<dt>Returns:</dt>
+<dd>prefix the bucket key prefix for the specific timestamp</dd>
+</dl>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="getCurrentBucketPrefix()">
+<h3>getCurrentBucketPrefix</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">int</span>&nbsp;<span 
class="element-name">getCurrentBucketPrefix</span>()</div>
+<div class="block">Returns current bucket prefix</div>
+<dl class="notes">
+<dt>Returns:</dt>
+<dd>bucket index</dd>
+</dl>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="getMillisUntilNextBucket()">
+<h3>getMillisUntilNextBucket</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public 
abstract</span>&nbsp;<span class="return-type">long</span>&nbsp;<span 
class="element-name">getMillisUntilNextBucket</span>()</div>
+<div class="block">When we want to test a full bucket duration we need to 
sleep until the next bucket starts.
+ <p>
+ <strong>WARNING:</strong> This method is used for test purpose.</div>
+<dl class="notes">
+<dt>Returns:</dt>
+<dd>the number of milliseconds until the next bucket</dd>
+</dl>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="destroy()">
+<h3>destroy</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">void</span>&nbsp;<span 
class="element-name">destroy</span>()</div>
+<div class="block">Stops threads created by this object and cleans up 
resources.</div>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="periodicEvict()">
+<h3>periodicEvict</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">void</span>&nbsp;<span 
class="element-name">periodicEvict</span>()</div>
+<div class="block">Periodic evict, perform removal of obsolete bucket items. 
Absence of this operation may result in OOM after a
+ long run.</div>
+</div>
+</section>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</section>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<hr>
+<p class="legal-copy"><small>Copyright &#169; 2000-2025 Apache Software 
Foundation.               <br/>               Apache Tomcat, Tomcat, Apache, 
the Apache Tomcat logo and the Apache logo are either registered trademarks     
          or trademarks of the Apache Software Foundation.</small></p>
+</footer>
+</main>
+</div>
+</body>
+</html>

Added: 
tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/jasper/compiler/ELNode.ELText.html
URL: 
http://svn.apache.org/viewvc/tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/jasper/compiler/ELNode.ELText.html?rev=1924970&view=auto
==============================================================================
--- 
tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/jasper/compiler/ELNode.ELText.html
 (added)
+++ 
tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/jasper/compiler/ELNode.ELText.html
 Wed Apr  9 19:29:19 2025
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML>
+<html lang="en">
+<head>
+<!-- Generated by javadoc (23) -->
+<title>ELNode.ELText (Apache Tomcat 9.0.104 API Documentation)</title>
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="description" content="declaration: package: 
org.apache.jasper.compiler, class: ELNode, class: ELText">
+<meta name="generator" content="javadoc/ClassWriter">
+<link rel="stylesheet" type="text/css" 
href="../../../../resource-files/jquery-ui.min.css" title="Style">
+<link rel="stylesheet" type="text/css" 
href="../../../../resource-files/stylesheet.css" title="Style">
+<script type="text/javascript" 
src="../../../../script-files/script.js"></script>
+<script type="text/javascript" 
src="../../../../script-files/jquery-3.7.1.min.js"></script>
+<script type="text/javascript" 
src="../../../../script-files/jquery-ui.min.js"></script>
+</head>
+<body class="class-declaration-page">
+<script type="text/javascript">const pathtoroot = "../../../../";
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="top-nav" id="navbar-top">
+<div class="nav-content">
+<div class="nav-menu-button"><button id="navbar-toggle-button" 
aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation 
links"><span class="nav-bar-toggle-icon">&nbsp;</span><span 
class="nav-bar-toggle-icon">&nbsp;</span><span 
class="nav-bar-toggle-icon">&nbsp;</span></button></div>
+<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation 
links">Skip navigation links</a></div>
+<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="nav-bar-cell1-rev">Class</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="../../../../search.html">Search</a></li>
+<li><a href="../../../../help-doc.html#class">Help</a></li>
+</ul>
+<div class="about-language"><b>Apache Tomcat<sup>®</sup> 9.0.104</b></div>
+</div>
+</div>
+<div class="sub-nav">
+<div class="nav-content">
+<ol class="sub-nav-list">
+<li><a href="package-summary.html">org.apache.jasper.compiler</a></li>
+<li><a href="ELNode.html">ELNode</a></li>
+<li><a href="ELNode.ELText.html" class="current-selection">ELText</a></li>
+</ol>
+<div class="nav-list-search">
+<input type="text" id="search-input" disabled placeholder="Search" 
aria-label="Search in documentation" autocomplete="off">
+<input type="reset" id="reset-search" disabled value="Reset">
+</div>
+</div>
+</div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<span class="skip-nav" id="skip-navbar-top"></span></nav>
+</header>
+<div class="main-grid">
+<nav role="navigation" class="toc" aria-label="Table of contents">
+<div class="toc-header">Contents&nbsp;
+<input type="text" class="filter-input" disabled placeholder="Filter" 
aria-label="Filter table of contents" autocomplete="off">
+<input type="reset" class="reset-filter" disabled value="Reset">
+</div>
+<button class="hide-sidebar"><span>Hide 
sidebar&nbsp;</span>&#10094;</button><button 
class="show-sidebar">&#10095;<span>&nbsp;Show sidebar</span></button>
+<ol class="toc-list">
+<li><a href="#" tabindex="0">Description</a></li>
+<li><a href="#nested-class-summary" tabindex="0">Nested Class Summary</a></li>
+<li><a href="#method-summary" tabindex="0">Method Summary</a></li>
+<li><a href="#method-detail" tabindex="0">Method Details</a>
+<ol class="toc-list">
+<li><a href="#accept(org.apache.jasper.compiler.ELNode.Visitor)" 
tabindex="0">accept(ELNode.Visitor)</a></li>
+<li><a href="#getText()" tabindex="0">getText()</a></li>
+</ol>
+</li>
+</ol>
+</nav>
+<main role="main">
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<h1 title="Class ELNode.ELText" class="title">Class ELNode.ELText</h1>
+</div>
+<div class="inheritance" title="Inheritance Tree"><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html";
 title="class or interface in java.lang" 
class="external-link">java.lang.Object</a>
+<div class="inheritance"><a href="ELNode.html" title="class in 
org.apache.jasper.compiler">org.apache.jasper.compiler.ELNode</a>
+<div class="inheritance">org.apache.jasper.compiler.ELNode.ELText</div>
+</div>
+</div>
+<section class="class-description" id="class-description">
+<div class="horizontal-scroll">
+<dl class="notes">
+<dt>Enclosing class:</dt>
+<dd><code><a href="ELNode.html" title="class in 
org.apache.jasper.compiler">ELNode</a></code></dd>
+</dl>
+<hr>
+<div class="type-signature"><span class="modifiers">public static class 
</span><span class="element-name type-name-label">ELNode.ELText</span>
+<span class="extends-implements">extends <a href="ELNode.html" title="class in 
org.apache.jasper.compiler">ELNode</a></span></div>
+<div class="block">Represents anything in EL expression, other than functions, 
including function arguments etc.</div>
+<dl class="notes">
+<dt>Author:</dt>
+<dd>Kin-man Chung</dd>
+</dl>
+</div>
+</section>
+<section class="summary">
+<ul class="summary-list">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<li>
+<section class="nested-class-summary" id="nested-class-summary">
+<h2>Nested Class Summary</h2>
+<div class="inherited-list">
+<h3 
id="nested-classes-inherited-from-class-org.apache.jasper.compiler.ELNode">Nested
 classes/interfaces inherited from class&nbsp;org.apache.jasper.compiler.<a 
href="ELNode.html" title="class in org.apache.jasper.compiler">ELNode</a></h3>
+<code><a href="ELNode.ELText.html" title="class in 
org.apache.jasper.compiler">ELNode.ELText</a>, <a href="ELNode.Function.html" 
title="class in org.apache.jasper.compiler">ELNode.Function</a>, <a 
href="ELNode.Nodes.html" title="class in 
org.apache.jasper.compiler">ELNode.Nodes</a>, <a href="ELNode.Root.html" 
title="class in org.apache.jasper.compiler">ELNode.Root</a>, <a 
href="ELNode.Text.html" title="class in 
org.apache.jasper.compiler">ELNode.Text</a>, <a href="ELNode.Visitor.html" 
title="class in org.apache.jasper.compiler">ELNode.Visitor</a></code></div>
+</section>
+</li>
+<!-- ========== METHOD SUMMARY =========== -->
+<li>
+<section class="method-summary" id="method-summary">
+<h2>Method Summary</h2>
+<div id="method-summary-table">
+<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button 
id="method-summary-table-tab0" role="tab" aria-selected="true" 
aria-controls="method-summary-table.tabpanel" tabindex="0" 
onkeydown="switchTab(event)" onclick="show('method-summary-table', 
'method-summary-table', 3)" class="active-table-tab">All 
Methods</button><button id="method-summary-table-tab2" role="tab" 
aria-selected="false" aria-controls="method-summary-table.tabpanel" 
tabindex="-1" onkeydown="switchTab(event)" 
onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" 
class="table-tab">Instance Methods</button><button 
id="method-summary-table-tab4" role="tab" aria-selected="false" 
aria-controls="method-summary-table.tabpanel" tabindex="-1" 
onkeydown="switchTab(event)" onclick="show('method-summary-table', 
'method-summary-table-tab4', 3)" class="table-tab">Concrete 
Methods</button></div>
+<div id="method-summary-table.tabpanel" role="tabpanel" 
aria-labelledby="method-summary-table-tab0">
+<div class="summary-table three-column-summary">
+<div class="table-header col-first">Modifier and Type</div>
+<div class="table-header col-second">Method</div>
+<div class="table-header col-last">Description</div>
+<div class="col-first even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
+<div class="col-second even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#accept(org.apache.jasper.compiler.ELNode.Visitor)" 
class="member-name-link">accept</a><wbr>(<a href="ELNode.Visitor.html" 
title="class in 
org.apache.jasper.compiler">ELNode.Visitor</a>&nbsp;v)</code></div>
+<div class="col-last even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a></code></div>
+<div class="col-second odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getText()" 
class="member-name-link">getText</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+</div>
+</div>
+</div>
+<div class="inherited-list">
+<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from 
class&nbsp;java.lang.<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html";
 title="class or interface in java.lang" class="external-link">Object</a></h3>
+<code><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#clone()"
 title="class or interface in java.lang" class="external-link">clone</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)"
 title="class or interface in java.lang" class="external-link">equals</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#finalize()"
 title="class or interface in java.lang" class="external-link">finalize</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#getClass()"
 title="class or interface in java.lang" class="external-link">getClass</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#hashCode()"
 title="class or interface in java.lang" class="external-link">hashCode</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Objec
 t.html#notify()" title="class or interface in java.lang" 
class="external-link">notify</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#notifyAll()"
 title="class or interface in java.lang" class="external-link">notifyAll</a>, 
<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#toString()"
 title="class or interface in java.lang" class="external-link">toString</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait()"
 title="class or interface in java.lang" class="external-link">wait</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long)"
 title="class or interface in java.lang" class="external-link">wait</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long,int)"
 title="class or interface in java.lang" 
class="external-link">wait</a></code></div>
+</section>
+</li>
+</ul>
+</section>
+<section class="details">
+<ul class="details-list">
+<!-- ============ METHOD DETAIL ========== -->
+<li>
+<section class="method-details" id="method-detail">
+<h2>Method Details</h2>
+<ul class="member-list">
+<li>
+<section class="detail" id="accept(org.apache.jasper.compiler.ELNode.Visitor)">
+<h3>accept</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">void</span>&nbsp;<span 
class="element-name">accept</span><wbr><span class="parameters">(<a 
href="ELNode.Visitor.html" title="class in 
org.apache.jasper.compiler">ELNode.Visitor</a>&nbsp;v)</span>
+            throws <span class="exceptions"><a href="../JasperException.html" 
title="class in org.apache.jasper">JasperException</a></span></div>
+<dl class="notes">
+<dt>Specified by:</dt>
+<dd><code><a 
href="ELNode.html#accept(org.apache.jasper.compiler.ELNode.Visitor)">accept</a></code>&nbsp;in
 class&nbsp;<code><a href="ELNode.html" title="class in 
org.apache.jasper.compiler">ELNode</a></code></dd>
+<dt>Throws:</dt>
+<dd><code><a href="../JasperException.html" title="class in 
org.apache.jasper">JasperException</a></code></dd>
+</dl>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="getText()">
+<h3>getText</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type"><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a></span>&nbsp;<span 
class="element-name">getText</span>()</div>
+</div>
+</section>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</section>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<hr>
+<p class="legal-copy"><small>Copyright &#169; 2000-2025 Apache Software 
Foundation.               <br/>               Apache Tomcat, Tomcat, Apache, 
the Apache Tomcat logo and the Apache logo are either registered trademarks     
          or trademarks of the Apache Software Foundation.</small></p>
+</footer>
+</main>
+</div>
+</body>
+</html>

Added: 
tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/jasper/compiler/ELNode.Function.html
URL: 
http://svn.apache.org/viewvc/tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/jasper/compiler/ELNode.Function.html?rev=1924970&view=auto
==============================================================================
--- 
tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/jasper/compiler/ELNode.Function.html
 (added)
+++ 
tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/jasper/compiler/ELNode.Function.html
 Wed Apr  9 19:29:19 2025
@@ -0,0 +1,303 @@
+<!DOCTYPE HTML>
+<html lang="en">
+<head>
+<!-- Generated by javadoc (23) -->
+<title>ELNode.Function (Apache Tomcat 9.0.104 API Documentation)</title>
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="description" content="declaration: package: 
org.apache.jasper.compiler, class: ELNode, class: Function">
+<meta name="generator" content="javadoc/ClassWriter">
+<link rel="stylesheet" type="text/css" 
href="../../../../resource-files/jquery-ui.min.css" title="Style">
+<link rel="stylesheet" type="text/css" 
href="../../../../resource-files/stylesheet.css" title="Style">
+<script type="text/javascript" 
src="../../../../script-files/script.js"></script>
+<script type="text/javascript" 
src="../../../../script-files/jquery-3.7.1.min.js"></script>
+<script type="text/javascript" 
src="../../../../script-files/jquery-ui.min.js"></script>
+</head>
+<body class="class-declaration-page">
+<script type="text/javascript">const pathtoroot = "../../../../";
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="top-nav" id="navbar-top">
+<div class="nav-content">
+<div class="nav-menu-button"><button id="navbar-toggle-button" 
aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation 
links"><span class="nav-bar-toggle-icon">&nbsp;</span><span 
class="nav-bar-toggle-icon">&nbsp;</span><span 
class="nav-bar-toggle-icon">&nbsp;</span></button></div>
+<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation 
links">Skip navigation links</a></div>
+<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="nav-bar-cell1-rev">Class</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="../../../../search.html">Search</a></li>
+<li><a href="../../../../help-doc.html#class">Help</a></li>
+</ul>
+<div class="about-language"><b>Apache Tomcat<sup>®</sup> 9.0.104</b></div>
+</div>
+</div>
+<div class="sub-nav">
+<div class="nav-content">
+<ol class="sub-nav-list">
+<li><a href="package-summary.html">org.apache.jasper.compiler</a></li>
+<li><a href="ELNode.html">ELNode</a></li>
+<li><a href="ELNode.Function.html" class="current-selection">Function</a></li>
+</ol>
+<div class="nav-list-search">
+<input type="text" id="search-input" disabled placeholder="Search" 
aria-label="Search in documentation" autocomplete="off">
+<input type="reset" id="reset-search" disabled value="Reset">
+</div>
+</div>
+</div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<span class="skip-nav" id="skip-navbar-top"></span></nav>
+</header>
+<div class="main-grid">
+<nav role="navigation" class="toc" aria-label="Table of contents">
+<div class="toc-header">Contents&nbsp;
+<input type="text" class="filter-input" disabled placeholder="Filter" 
aria-label="Filter table of contents" autocomplete="off">
+<input type="reset" class="reset-filter" disabled value="Reset">
+</div>
+<button class="hide-sidebar"><span>Hide 
sidebar&nbsp;</span>&#10094;</button><button 
class="show-sidebar">&#10095;<span>&nbsp;Show sidebar</span></button>
+<ol class="toc-list">
+<li><a href="#" tabindex="0">Description</a></li>
+<li><a href="#nested-class-summary" tabindex="0">Nested Class Summary</a></li>
+<li><a href="#method-summary" tabindex="0">Method Summary</a></li>
+<li><a href="#method-detail" tabindex="0">Method Details</a>
+<ol class="toc-list">
+<li><a href="#accept(org.apache.jasper.compiler.ELNode.Visitor)" 
tabindex="0">accept(ELNode.Visitor)</a></li>
+<li><a href="#getPrefix()" tabindex="0">getPrefix()</a></li>
+<li><a href="#getName()" tabindex="0">getName()</a></li>
+<li><a href="#getOriginalText()" tabindex="0">getOriginalText()</a></li>
+<li><a href="#setUri(java.lang.String)" tabindex="0">setUri(String)</a></li>
+<li><a href="#getUri()" tabindex="0">getUri()</a></li>
+<li><a href="#setFunctionInfo(javax.servlet.jsp.tagext.FunctionInfo)" 
tabindex="0">setFunctionInfo(FunctionInfo)</a></li>
+<li><a href="#getFunctionInfo()" tabindex="0">getFunctionInfo()</a></li>
+<li><a href="#setMethodName(java.lang.String)" 
tabindex="0">setMethodName(String)</a></li>
+<li><a href="#getMethodName()" tabindex="0">getMethodName()</a></li>
+<li><a href="#setParameters(java.lang.String%5B%5D)" 
tabindex="0">setParameters(String[])</a></li>
+<li><a href="#getParameters()" tabindex="0">getParameters()</a></li>
+</ol>
+</li>
+</ol>
+</nav>
+<main role="main">
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<h1 title="Class ELNode.Function" class="title">Class ELNode.Function</h1>
+</div>
+<div class="inheritance" title="Inheritance Tree"><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html";
 title="class or interface in java.lang" 
class="external-link">java.lang.Object</a>
+<div class="inheritance"><a href="ELNode.html" title="class in 
org.apache.jasper.compiler">org.apache.jasper.compiler.ELNode</a>
+<div class="inheritance">org.apache.jasper.compiler.ELNode.Function</div>
+</div>
+</div>
+<section class="class-description" id="class-description">
+<div class="horizontal-scroll">
+<dl class="notes">
+<dt>Enclosing class:</dt>
+<dd><code><a href="ELNode.html" title="class in 
org.apache.jasper.compiler">ELNode</a></code></dd>
+</dl>
+<hr>
+<div class="type-signature"><span class="modifiers">public static class 
</span><span class="element-name type-name-label">ELNode.Function</span>
+<span class="extends-implements">extends <a href="ELNode.html" title="class in 
org.apache.jasper.compiler">ELNode</a></span></div>
+<div class="block">Represents a function. Currently only include the prefix 
and function name, but not its arguments.</div>
+<dl class="notes">
+<dt>Author:</dt>
+<dd>Kin-man Chung</dd>
+</dl>
+</div>
+</section>
+<section class="summary">
+<ul class="summary-list">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<li>
+<section class="nested-class-summary" id="nested-class-summary">
+<h2>Nested Class Summary</h2>
+<div class="inherited-list">
+<h3 
id="nested-classes-inherited-from-class-org.apache.jasper.compiler.ELNode">Nested
 classes/interfaces inherited from class&nbsp;org.apache.jasper.compiler.<a 
href="ELNode.html" title="class in org.apache.jasper.compiler">ELNode</a></h3>
+<code><a href="ELNode.ELText.html" title="class in 
org.apache.jasper.compiler">ELNode.ELText</a>, <a href="ELNode.Function.html" 
title="class in org.apache.jasper.compiler">ELNode.Function</a>, <a 
href="ELNode.Nodes.html" title="class in 
org.apache.jasper.compiler">ELNode.Nodes</a>, <a href="ELNode.Root.html" 
title="class in org.apache.jasper.compiler">ELNode.Root</a>, <a 
href="ELNode.Text.html" title="class in 
org.apache.jasper.compiler">ELNode.Text</a>, <a href="ELNode.Visitor.html" 
title="class in org.apache.jasper.compiler">ELNode.Visitor</a></code></div>
+</section>
+</li>
+<!-- ========== METHOD SUMMARY =========== -->
+<li>
+<section class="method-summary" id="method-summary">
+<h2>Method Summary</h2>
+<div id="method-summary-table">
+<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button 
id="method-summary-table-tab0" role="tab" aria-selected="true" 
aria-controls="method-summary-table.tabpanel" tabindex="0" 
onkeydown="switchTab(event)" onclick="show('method-summary-table', 
'method-summary-table', 3)" class="active-table-tab">All 
Methods</button><button id="method-summary-table-tab2" role="tab" 
aria-selected="false" aria-controls="method-summary-table.tabpanel" 
tabindex="-1" onkeydown="switchTab(event)" 
onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" 
class="table-tab">Instance Methods</button><button 
id="method-summary-table-tab4" role="tab" aria-selected="false" 
aria-controls="method-summary-table.tabpanel" tabindex="-1" 
onkeydown="switchTab(event)" onclick="show('method-summary-table', 
'method-summary-table-tab4', 3)" class="table-tab">Concrete 
Methods</button></div>
+<div id="method-summary-table.tabpanel" role="tabpanel" 
aria-labelledby="method-summary-table-tab0">
+<div class="summary-table three-column-summary">
+<div class="table-header col-first">Modifier and Type</div>
+<div class="table-header col-second">Method</div>
+<div class="table-header col-last">Description</div>
+<div class="col-first even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
+<div class="col-second even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#accept(org.apache.jasper.compiler.ELNode.Visitor)" 
class="member-name-link">accept</a><wbr>(<a href="ELNode.Visitor.html" 
title="class in 
org.apache.jasper.compiler">ELNode.Visitor</a>&nbsp;v)</code></div>
+<div class="col-last even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="../../../../../jspapi/javax/servlet/jsp/tagext/FunctionInfo.html" 
title="class or interface in javax.servlet.jsp.tagext" 
class="external-link">FunctionInfo</a></code></div>
+<div class="col-second odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#getFunctionInfo()" 
class="member-name-link">getFunctionInfo</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a></code></div>
+<div class="col-second even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#getMethodName()" 
class="member-name-link">getMethodName</a>()</code></div>
+<div class="col-last even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a></code></div>
+<div class="col-second odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getName()" 
class="member-name-link">getName</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a></code></div>
+<div class="col-second even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#getOriginalText()" 
class="member-name-link">getOriginalText</a>()</code></div>
+<div class="col-last even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a>[]</code></div>
+<div class="col-second odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#getParameters()" 
class="member-name-link">getParameters</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a></code></div>
+<div class="col-second even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#getPrefix()" class="member-name-link">getPrefix</a>()</code></div>
+<div class="col-last even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a></code></div>
+<div class="col-second odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getUri()" 
class="member-name-link">getUri</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
+<div class="col-second even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#setFunctionInfo(javax.servlet.jsp.tagext.FunctionInfo)" 
class="member-name-link">setFunctionInfo</a><wbr>(<a 
href="../../../../../jspapi/javax/servlet/jsp/tagext/FunctionInfo.html" 
title="class or interface in javax.servlet.jsp.tagext" 
class="external-link">FunctionInfo</a>&nbsp;f)</code></div>
+<div class="col-last even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
+<div class="col-second odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#setMethodName(java.lang.String)" 
class="member-name-link">setMethodName</a><wbr>(<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a>&nbsp;methodName)</code></div>
+<div class="col-last odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
+<div class="col-second even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#setParameters(java.lang.String%5B%5D)" 
class="member-name-link">setParameters</a><wbr>(<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a>[]&nbsp;parameters)</code></div>
+<div class="col-last even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
+<div class="col-second odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#setUri(java.lang.String)" class="member-name-link">setUri</a><wbr>(<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a>&nbsp;uri)</code></div>
+<div class="col-last odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+</div>
+</div>
+</div>
+<div class="inherited-list">
+<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from 
class&nbsp;java.lang.<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html";
 title="class or interface in java.lang" class="external-link">Object</a></h3>
+<code><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#clone()"
 title="class or interface in java.lang" class="external-link">clone</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)"
 title="class or interface in java.lang" class="external-link">equals</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#finalize()"
 title="class or interface in java.lang" class="external-link">finalize</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#getClass()"
 title="class or interface in java.lang" class="external-link">getClass</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#hashCode()"
 title="class or interface in java.lang" class="external-link">hashCode</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Objec
 t.html#notify()" title="class or interface in java.lang" 
class="external-link">notify</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#notifyAll()"
 title="class or interface in java.lang" class="external-link">notifyAll</a>, 
<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#toString()"
 title="class or interface in java.lang" class="external-link">toString</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait()"
 title="class or interface in java.lang" class="external-link">wait</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long)"
 title="class or interface in java.lang" class="external-link">wait</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long,int)"
 title="class or interface in java.lang" 
class="external-link">wait</a></code></div>
+</section>
+</li>
+</ul>
+</section>
+<section class="details">
+<ul class="details-list">
+<!-- ============ METHOD DETAIL ========== -->
+<li>
+<section class="method-details" id="method-detail">
+<h2>Method Details</h2>
+<ul class="member-list">
+<li>
+<section class="detail" id="accept(org.apache.jasper.compiler.ELNode.Visitor)">
+<h3>accept</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">void</span>&nbsp;<span 
class="element-name">accept</span><wbr><span class="parameters">(<a 
href="ELNode.Visitor.html" title="class in 
org.apache.jasper.compiler">ELNode.Visitor</a>&nbsp;v)</span>
+            throws <span class="exceptions"><a href="../JasperException.html" 
title="class in org.apache.jasper">JasperException</a></span></div>
+<dl class="notes">
+<dt>Specified by:</dt>
+<dd><code><a 
href="ELNode.html#accept(org.apache.jasper.compiler.ELNode.Visitor)">accept</a></code>&nbsp;in
 class&nbsp;<code><a href="ELNode.html" title="class in 
org.apache.jasper.compiler">ELNode</a></code></dd>
+<dt>Throws:</dt>
+<dd><code><a href="../JasperException.html" title="class in 
org.apache.jasper">JasperException</a></code></dd>
+</dl>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="getPrefix()">
+<h3>getPrefix</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type"><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a></span>&nbsp;<span 
class="element-name">getPrefix</span>()</div>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="getName()">
+<h3>getName</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type"><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a></span>&nbsp;<span 
class="element-name">getName</span>()</div>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="getOriginalText()">
+<h3>getOriginalText</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type"><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a></span>&nbsp;<span 
class="element-name">getOriginalText</span>()</div>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="setUri(java.lang.String)">
+<h3>setUri</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">void</span>&nbsp;<span 
class="element-name">setUri</span><wbr><span class="parameters">(<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a>&nbsp;uri)</span></div>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="getUri()">
+<h3>getUri</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type"><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a></span>&nbsp;<span 
class="element-name">getUri</span>()</div>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" 
id="setFunctionInfo(javax.servlet.jsp.tagext.FunctionInfo)">
+<h3>setFunctionInfo</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">void</span>&nbsp;<span 
class="element-name">setFunctionInfo</span><wbr><span class="parameters">(<a 
href="../../../../../jspapi/javax/servlet/jsp/tagext/FunctionInfo.html" 
title="class or interface in javax.servlet.jsp.tagext" 
class="external-link">FunctionInfo</a>&nbsp;f)</span></div>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="getFunctionInfo()">
+<h3>getFunctionInfo</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type"><a 
href="../../../../../jspapi/javax/servlet/jsp/tagext/FunctionInfo.html" 
title="class or interface in javax.servlet.jsp.tagext" 
class="external-link">FunctionInfo</a></span>&nbsp;<span 
class="element-name">getFunctionInfo</span>()</div>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="setMethodName(java.lang.String)">
+<h3>setMethodName</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">void</span>&nbsp;<span 
class="element-name">setMethodName</span><wbr><span class="parameters">(<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a>&nbsp;methodName)</span></div>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="getMethodName()">
+<h3>getMethodName</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type"><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a></span>&nbsp;<span 
class="element-name">getMethodName</span>()</div>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="setParameters(java.lang.String[])">
+<h3>setParameters</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">void</span>&nbsp;<span 
class="element-name">setParameters</span><wbr><span class="parameters">(<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a>[]&nbsp;parameters)</span></div>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="getParameters()">
+<h3>getParameters</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type"><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a>[]</span>&nbsp;<span 
class="element-name">getParameters</span>()</div>
+</div>
+</section>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</section>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<hr>
+<p class="legal-copy"><small>Copyright &#169; 2000-2025 Apache Software 
Foundation.               <br/>               Apache Tomcat, Tomcat, Apache, 
the Apache Tomcat logo and the Apache logo are either registered trademarks     
          or trademarks of the Apache Software Foundation.</small></p>
+</footer>
+</main>
+</div>
+</body>
+</html>

Added: 
tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/jasper/compiler/ELNode.Nodes.html
URL: 
http://svn.apache.org/viewvc/tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/jasper/compiler/ELNode.Nodes.html?rev=1924970&view=auto
==============================================================================
--- 
tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/jasper/compiler/ELNode.Nodes.html
 (added)
+++ 
tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/jasper/compiler/ELNode.Nodes.html
 Wed Apr  9 19:29:19 2025
@@ -0,0 +1,238 @@
+<!DOCTYPE HTML>
+<html lang="en">
+<head>
+<!-- Generated by javadoc (23) -->
+<title>ELNode.Nodes (Apache Tomcat 9.0.104 API Documentation)</title>
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="description" content="declaration: package: 
org.apache.jasper.compiler, class: ELNode, class: Nodes">
+<meta name="generator" content="javadoc/ClassWriter">
+<link rel="stylesheet" type="text/css" 
href="../../../../resource-files/jquery-ui.min.css" title="Style">
+<link rel="stylesheet" type="text/css" 
href="../../../../resource-files/stylesheet.css" title="Style">
+<script type="text/javascript" 
src="../../../../script-files/script.js"></script>
+<script type="text/javascript" 
src="../../../../script-files/jquery-3.7.1.min.js"></script>
+<script type="text/javascript" 
src="../../../../script-files/jquery-ui.min.js"></script>
+</head>
+<body class="class-declaration-page">
+<script type="text/javascript">const pathtoroot = "../../../../";
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="top-nav" id="navbar-top">
+<div class="nav-content">
+<div class="nav-menu-button"><button id="navbar-toggle-button" 
aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation 
links"><span class="nav-bar-toggle-icon">&nbsp;</span><span 
class="nav-bar-toggle-icon">&nbsp;</span><span 
class="nav-bar-toggle-icon">&nbsp;</span></button></div>
+<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation 
links">Skip navigation links</a></div>
+<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="nav-bar-cell1-rev">Class</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="../../../../search.html">Search</a></li>
+<li><a href="../../../../help-doc.html#class">Help</a></li>
+</ul>
+<div class="about-language"><b>Apache Tomcat<sup>®</sup> 9.0.104</b></div>
+</div>
+</div>
+<div class="sub-nav">
+<div class="nav-content">
+<ol class="sub-nav-list">
+<li><a href="package-summary.html">org.apache.jasper.compiler</a></li>
+<li><a href="ELNode.html">ELNode</a></li>
+<li><a href="ELNode.Nodes.html" class="current-selection">Nodes</a></li>
+</ol>
+<div class="nav-list-search">
+<input type="text" id="search-input" disabled placeholder="Search" 
aria-label="Search in documentation" autocomplete="off">
+<input type="reset" id="reset-search" disabled value="Reset">
+</div>
+</div>
+</div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<span class="skip-nav" id="skip-navbar-top"></span></nav>
+</header>
+<div class="main-grid">
+<nav role="navigation" class="toc" aria-label="Table of contents">
+<div class="toc-header">Contents&nbsp;
+<input type="text" class="filter-input" disabled placeholder="Filter" 
aria-label="Filter table of contents" autocomplete="off">
+<input type="reset" class="reset-filter" disabled value="Reset">
+</div>
+<button class="hide-sidebar"><span>Hide 
sidebar&nbsp;</span>&#10094;</button><button 
class="show-sidebar">&#10095;<span>&nbsp;Show sidebar</span></button>
+<ol class="toc-list">
+<li><a href="#" tabindex="0">Description</a></li>
+<li><a href="#method-summary" tabindex="0">Method Summary</a></li>
+<li><a href="#method-detail" tabindex="0">Method Details</a>
+<ol class="toc-list">
+<li><a href="#add(org.apache.jasper.compiler.ELNode)" 
tabindex="0">add(ELNode)</a></li>
+<li><a href="#visit(org.apache.jasper.compiler.ELNode.Visitor)" 
tabindex="0">visit(ELNode.Visitor)</a></li>
+<li><a href="#iterator()" tabindex="0">iterator()</a></li>
+<li><a href="#isEmpty()" tabindex="0">isEmpty()</a></li>
+<li><a href="#containsEL()" tabindex="0">containsEL()</a></li>
+<li><a href="#setMapName(java.lang.String)" 
tabindex="0">setMapName(String)</a></li>
+<li><a href="#getMapName()" tabindex="0">getMapName()</a></li>
+</ol>
+</li>
+</ol>
+</nav>
+<main role="main">
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<h1 title="Class ELNode.Nodes" class="title">Class ELNode.Nodes</h1>
+</div>
+<div class="inheritance" title="Inheritance Tree"><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html";
 title="class or interface in java.lang" 
class="external-link">java.lang.Object</a>
+<div class="inheritance">org.apache.jasper.compiler.ELNode.Nodes</div>
+</div>
+<section class="class-description" id="class-description">
+<div class="horizontal-scroll">
+<dl class="notes">
+<dt>Enclosing class:</dt>
+<dd><code><a href="ELNode.html" title="class in 
org.apache.jasper.compiler">ELNode</a></code></dd>
+</dl>
+<hr>
+<div class="type-signature"><span class="modifiers">public static class 
</span><span class="element-name type-name-label">ELNode.Nodes</span>
+<span class="extends-implements">extends <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html";
 title="class or interface in java.lang" 
class="external-link">Object</a></span></div>
+<div class="block">An ordered list of ELNode.</div>
+<dl class="notes">
+<dt>Author:</dt>
+<dd>Kin-man Chung</dd>
+</dl>
+</div>
+</section>
+<section class="summary">
+<ul class="summary-list">
+<!-- ========== METHOD SUMMARY =========== -->
+<li>
+<section class="method-summary" id="method-summary">
+<h2>Method Summary</h2>
+<div id="method-summary-table">
+<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button 
id="method-summary-table-tab0" role="tab" aria-selected="true" 
aria-controls="method-summary-table.tabpanel" tabindex="0" 
onkeydown="switchTab(event)" onclick="show('method-summary-table', 
'method-summary-table', 3)" class="active-table-tab">All 
Methods</button><button id="method-summary-table-tab2" role="tab" 
aria-selected="false" aria-controls="method-summary-table.tabpanel" 
tabindex="-1" onkeydown="switchTab(event)" 
onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" 
class="table-tab">Instance Methods</button><button 
id="method-summary-table-tab4" role="tab" aria-selected="false" 
aria-controls="method-summary-table.tabpanel" tabindex="-1" 
onkeydown="switchTab(event)" onclick="show('method-summary-table', 
'method-summary-table-tab4', 3)" class="table-tab">Concrete 
Methods</button></div>
+<div id="method-summary-table.tabpanel" role="tabpanel" 
aria-labelledby="method-summary-table-tab0">
+<div class="summary-table three-column-summary">
+<div class="table-header col-first">Modifier and Type</div>
+<div class="table-header col-second">Method</div>
+<div class="table-header col-last">Description</div>
+<div class="col-first even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
+<div class="col-second even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#add(org.apache.jasper.compiler.ELNode)" 
class="member-name-link">add</a><wbr>(<a href="ELNode.html" title="class in 
org.apache.jasper.compiler">ELNode</a>&nbsp;en)</code></div>
+<div class="col-last even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
+<div class="col-second odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#containsEL()" class="member-name-link">containsEL</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a></code></div>
+<div class="col-second even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#getMapName()" class="member-name-link">getMapName</a>()</code></div>
+<div class="col-last even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
+<div class="col-second odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isEmpty()" 
class="member-name-link">isEmpty</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Iterator.html";
 title="class or interface in java.util" 
class="external-link">Iterator</a><wbr>&lt;<a href="ELNode.html" title="class 
in org.apache.jasper.compiler">ELNode</a>&gt;</code></div>
+<div class="col-second even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#iterator()" class="member-name-link">iterator</a>()</code></div>
+<div class="col-last even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
+<div class="col-second odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#setMapName(java.lang.String)" 
class="member-name-link">setMapName</a><wbr>(<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a>&nbsp;name)</code></div>
+<div class="col-last odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
+<div class="col-second even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#visit(org.apache.jasper.compiler.ELNode.Visitor)" 
class="member-name-link">visit</a><wbr>(<a href="ELNode.Visitor.html" 
title="class in 
org.apache.jasper.compiler">ELNode.Visitor</a>&nbsp;v)</code></div>
+<div class="col-last even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Visit the nodes in the list with the supplied visitor.</div>
+</div>
+</div>
+</div>
+</div>
+<div class="inherited-list">
+<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from 
class&nbsp;java.lang.<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html";
 title="class or interface in java.lang" class="external-link">Object</a></h3>
+<code><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#clone()"
 title="class or interface in java.lang" class="external-link">clone</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)"
 title="class or interface in java.lang" class="external-link">equals</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#finalize()"
 title="class or interface in java.lang" class="external-link">finalize</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#getClass()"
 title="class or interface in java.lang" class="external-link">getClass</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#hashCode()"
 title="class or interface in java.lang" class="external-link">hashCode</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Objec
 t.html#notify()" title="class or interface in java.lang" 
class="external-link">notify</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#notifyAll()"
 title="class or interface in java.lang" class="external-link">notifyAll</a>, 
<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#toString()"
 title="class or interface in java.lang" class="external-link">toString</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait()"
 title="class or interface in java.lang" class="external-link">wait</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long)"
 title="class or interface in java.lang" class="external-link">wait</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long,int)"
 title="class or interface in java.lang" 
class="external-link">wait</a></code></div>
+</section>
+</li>
+</ul>
+</section>
+<section class="details">
+<ul class="details-list">
+<!-- ============ METHOD DETAIL ========== -->
+<li>
+<section class="method-details" id="method-detail">
+<h2>Method Details</h2>
+<ul class="member-list">
+<li>
+<section class="detail" id="add(org.apache.jasper.compiler.ELNode)">
+<h3>add</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">void</span>&nbsp;<span 
class="element-name">add</span><wbr><span class="parameters">(<a 
href="ELNode.html" title="class in 
org.apache.jasper.compiler">ELNode</a>&nbsp;en)</span></div>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="visit(org.apache.jasper.compiler.ELNode.Visitor)">
+<h3>visit</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">void</span>&nbsp;<span 
class="element-name">visit</span><wbr><span class="parameters">(<a 
href="ELNode.Visitor.html" title="class in 
org.apache.jasper.compiler">ELNode.Visitor</a>&nbsp;v)</span>
+           throws <span class="exceptions"><a href="../JasperException.html" 
title="class in org.apache.jasper">JasperException</a></span></div>
+<div class="block">Visit the nodes in the list with the supplied visitor.</div>
+<dl class="notes">
+<dt>Parameters:</dt>
+<dd><code>v</code> - The visitor used</dd>
+<dt>Throws:</dt>
+<dd><code><a href="../JasperException.html" title="class in 
org.apache.jasper">JasperException</a></code> - if an error occurs while 
visiting a node</dd>
+</dl>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="iterator()">
+<h3>iterator</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type"><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Iterator.html";
 title="class or interface in java.util" 
class="external-link">Iterator</a>&lt;<a href="ELNode.html" title="class in 
org.apache.jasper.compiler">ELNode</a>&gt;</span>&nbsp;<span 
class="element-name">iterator</span>()</div>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="isEmpty()">
+<h3>isEmpty</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">boolean</span>&nbsp;<span 
class="element-name">isEmpty</span>()</div>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="containsEL()">
+<h3>containsEL</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">boolean</span>&nbsp;<span 
class="element-name">containsEL</span>()</div>
+<dl class="notes">
+<dt>Returns:</dt>
+<dd>true if the expression contains a ${...}</dd>
+</dl>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="setMapName(java.lang.String)">
+<h3>setMapName</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">void</span>&nbsp;<span 
class="element-name">setMapName</span><wbr><span class="parameters">(<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a>&nbsp;name)</span></div>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="getMapName()">
+<h3>getMapName</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type"><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a></span>&nbsp;<span 
class="element-name">getMapName</span>()</div>
+</div>
+</section>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</section>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<hr>
+<p class="legal-copy"><small>Copyright &#169; 2000-2025 Apache Software 
Foundation.               <br/>               Apache Tomcat, Tomcat, Apache, 
the Apache Tomcat logo and the Apache logo are either registered trademarks     
          or trademarks of the Apache Software Foundation.</small></p>
+</footer>
+</main>
+</div>
+</body>
+</html>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to