docs(javadoc): release 2.0.0

This commit is contained in:
github-actions[bot]
2026-05-12 13:57:39 +00:00
parent e7fa1d8639
commit 515dceed7e
365 changed files with 56122 additions and 1 deletions
@@ -0,0 +1,157 @@
<!DOCTYPE HTML>
<html lang>
<head>
<!-- Generated by javadoc (21) on Tue May 12 13:57:37 UTC 2026 -->
<title>AnnotationProcessor (flash-parent 2.0.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2026-05-12">
<meta name="description" content="declaration: package: dev.relism.flash.extension, interface: AnnotationProcessor">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><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 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><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/AnnotationProcessor.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html#class">Help</a></li>
</ul>
<ul class="sub-nav-list-small">
<li>
<p>Summary:</p>
<ul>
<li>Nested</li>
<li>Field</li>
<li>Constr</li>
<li><a href="#method-summary">Method</a></li>
</ul>
</li>
<li>
<p>Detail:</p>
<ul>
<li>Field</li>
<li>Constr</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list">
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><a href="../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">dev.relism.flash.extension</a></div>
<h1 title="Interface AnnotationProcessor" class="title">Interface AnnotationProcessor</h1>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>Functional Interface:</dt>
<dd>This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.</dd>
</dl>
<hr>
<div class="type-signature"><span class="annotations"><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/FunctionalInterface.html" title="class or interface in java.lang" class="external-link">@FunctionalInterface</a>
</span><span class="modifiers">public interface </span><span class="element-name type-name-label">AnnotationProcessor</span></div>
<div class="block">Inspects a handler class at registration time and returns zero or more
<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing"><code>middlewares</code></a> to inject automatically.
<p>Processors are called once per register call, before
the handler is compiled into the router. Returning an empty list is always
valid: processors may also use the call purely for side effects
(e.g. collecting OpenAPI metadata).
<p>Register processors via <a href="FlashContext.html#addAnnotationProcessor(dev.relism.flash.extension.AnnotationProcessor)"><code>FlashContext.addAnnotationProcessor(dev.relism.flash.extension.AnnotationProcessor)</code></a>.</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-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></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-tab3"><code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a><wbr>&lt;<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#process(java.lang.Class)" class="member-name-link">process</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../models/RequestHandler.html" title="class in dev.relism.flash.models">RequestHandler</a>&gt;&nbsp;handlerClass)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">&nbsp;</div>
</div>
</div>
</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="process(java.lang.Class)">
<h3>process</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>&gt;</span>&nbsp;<span class="element-name">process</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../models/RequestHandler.html" title="class in dev.relism.flash.models">RequestHandler</a>&gt;&nbsp;handlerClass)</span></div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,297 @@
<!DOCTYPE HTML>
<html lang>
<head>
<!-- Generated by javadoc (21) on Tue May 12 13:57:37 UTC 2026 -->
<title>ExtensionPhase (flash-parent 2.0.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2026-05-12">
<meta name="description" content="declaration: package: dev.relism.flash.extension, enum: ExtensionPhase">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><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 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><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/ExtensionPhase.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html#class">Help</a></li>
</ul>
<ul class="sub-nav-list-small">
<li>
<p>Summary:</p>
<ul>
<li><a href="#nested-class-summary">Nested</a></li>
<li><a href="#enum-constant-summary">Enum Constants</a></li>
<li><a href="#field-summary">Field</a></li>
<li><a href="#method-summary">Method</a></li>
</ul>
</li>
<li>
<p>Detail:</p>
<ul>
<li><a href="#enum-constant-detail">Enum Constants</a></li>
<li><a href="#field-detail">Field</a></li>
<li><a href="#method-detail">Method</a></li>
</ul>
</li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list">
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li><a href="#nested-class-summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#enum-constant-summary">Enum Constants</a>&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li><a href="#enum-constant-detail">Enum Constants</a>&nbsp;|&nbsp;</li>
<li><a href="#field-detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><a href="../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">dev.relism.flash.extension</a></div>
<h1 title="Enum Class ExtensionPhase" class="title">Enum Class ExtensionPhase</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/21/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="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">java.lang.Enum</a>&lt;<a href="ExtensionPhase.html" title="enum class in dev.relism.flash.extension">ExtensionPhase</a>&gt;
<div class="inheritance">dev.relism.flash.extension.ExtensionPhase</div>
</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code>, <code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a>&lt;<a href="ExtensionPhase.html" title="enum class in dev.relism.flash.extension">ExtensionPhase</a>&gt;</code>, <code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/constant/Constable.html" title="class or interface in java.lang.constant" class="external-link">Constable</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public enum </span><span class="element-name type-name-label">ExtensionPhase</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a>&lt;<a href="ExtensionPhase.html" title="enum class in dev.relism.flash.extension">ExtensionPhase</a>&gt;</span></div>
<div class="block">Semantic execution phases for <a href="FlashExtension.html#priority()"><code>FlashExtension.priority()</code></a>.
<p>Phase determines the order in which annotation-processor middlewares are injected into
the chain. Lower value = runs earlier (outermost wrapper = first at request time).
<pre>
Request ──► EARLY middlewares ──► DEFAULT middlewares ──► LATE middlewares ──► handler
</pre>
<p>Within the same phase, extensions execute in install order (sort is stable).
Raw integers are valid for fine-grained ordering within a phase
(e.g. <code>ExtensionPhase.EARLY.value + 10</code>).</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">
<h2 id="nested-classes-inherited-from-class-java.lang.Enum">Nested classes/interfaces inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a></h2>
<code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">Enum.EnumDesc</a>&lt;<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">E</a> extends <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a>&lt;<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">E</a>&gt;&gt;</code></div>
</section>
</li>
<!-- =========== ENUM CONSTANT SUMMARY =========== -->
<li>
<section class="constants-summary" id="enum-constant-summary">
<h2>Enum Constant Summary</h2>
<div class="caption"><span>Enum Constants</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Enum Constant</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code><a href="#DEFAULT" class="member-name-link">DEFAULT</a></code></div>
<div class="col-last even-row-color">
<div class="block">Normal application extensions.</div>
</div>
<div class="col-first odd-row-color"><code><a href="#EARLY" class="member-name-link">EARLY</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Security guards, rate limiting — must short-circuit before expensive processing.</div>
</div>
<div class="col-first even-row-color"><code><a href="#LATE" class="member-name-link">LATE</a></code></div>
<div class="col-last even-row-color">
<div class="block">Observability, logging, diagnostics — must observe after all business logic.</div>
</div>
</div>
</section>
</li>
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>final int</code></div>
<div class="col-second even-row-color"><code><a href="#value" class="member-name-link">value</a></code></div>
<div class="col-last even-row-color">
<div class="block">The integer priority value used for sorting.</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-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static 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-tab1 method-summary-table-tab4"><code>static <a href="ExtensionPhase.html" title="enum class in dev.relism.flash.extension">ExtensionPhase</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#valueOf(java.lang.String)" class="member-name-link">valueOf</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/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 even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns the enum constant of this class with the specified name.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="ExtensionPhase.html" title="enum class in dev.relism.flash.extension">ExtensionPhase</a>[]</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#values()" class="member-name-link">values</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns an array containing the constants of this enum class, in
the order they are declared.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Enum">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Enum.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Enum.html#compareTo(E)" title="class or interface in java.lang" class="external-link">compareTo</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Enum.html#describeConstable()" title="class or interface in java.lang" class="external-link">describeConstable</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Enum.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/21/docs/api/java.base/java/lang/Enum.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Enum.html#getDeclaringClass()" title="class or interface in java.lang" class="external-link">getDeclaringClass</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Enum.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Enum.html#name()" title="class or interface in java.lang" class="external-link">name</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Enum.html#ordinal()" title="class or interface in java.lang" class="external-link">ordinal</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Enum.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Enum.html#valueOf(java.lang.Class,java.lang.String)" title="class or interface in java.lang" class="external-link">valueOf</a></code></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/21/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/21/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/21/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/21/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/21/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/21/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/21/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">
<!-- ============ ENUM CONSTANT DETAIL =========== -->
<li>
<section class="constant-details" id="enum-constant-detail">
<h2>Enum Constant Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="EARLY">
<h3>EARLY</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="ExtensionPhase.html" title="enum class in dev.relism.flash.extension">ExtensionPhase</a></span>&nbsp;<span class="element-name">EARLY</span></div>
<div class="block">Security guards, rate limiting — must short-circuit before expensive processing.</div>
</section>
</li>
<li>
<section class="detail" id="DEFAULT">
<h3>DEFAULT</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="ExtensionPhase.html" title="enum class in dev.relism.flash.extension">ExtensionPhase</a></span>&nbsp;<span class="element-name">DEFAULT</span></div>
<div class="block">Normal application extensions. Default when <a href="FlashExtension.html#priority()"><code>FlashExtension.priority()</code></a> is not overridden.</div>
</section>
</li>
<li>
<section class="detail" id="LATE">
<h3>LATE</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="ExtensionPhase.html" title="enum class in dev.relism.flash.extension">ExtensionPhase</a></span>&nbsp;<span class="element-name">LATE</span></div>
<div class="block">Observability, logging, diagnostics — must observe after all business logic.</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="value">
<h3>value</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">value</span></div>
<div class="block">The integer priority value used for sorting.</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="values()">
<h3>values</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="ExtensionPhase.html" title="enum class in dev.relism.flash.extension">ExtensionPhase</a>[]</span>&nbsp;<span class="element-name">values</span>()</div>
<div class="block">Returns an array containing the constants of this enum class, in
the order they are declared.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>an array containing the constants of this enum class, in the order they are declared</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="valueOf(java.lang.String)">
<h3>valueOf</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="ExtensionPhase.html" title="enum class in dev.relism.flash.extension">ExtensionPhase</a></span>&nbsp;<span class="element-name">valueOf</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/21/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 class="block">Returns the enum constant of this class with the specified name.
The string must match <i>exactly</i> an identifier used to declare an
enum constant in this class. (Extraneous whitespace characters are
not permitted.)</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - the name of the enum constant to be returned.</dd>
<dt>Returns:</dt>
<dd>the enum constant with the specified name</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if this enum class has no constant with the specified name</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link">NullPointerException</a></code> - if the argument is null</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,341 @@
<!DOCTYPE HTML>
<html lang>
<head>
<!-- Generated by javadoc (21) on Tue May 12 13:57:37 UTC 2026 -->
<title>FlashApp (flash-parent 2.0.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2026-05-12">
<meta name="description" content="declaration: package: dev.relism.flash.extension, class: FlashApp">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><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 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><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/FlashApp.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html#class">Help</a></li>
</ul>
<ul class="sub-nav-list-small">
<li>
<p>Summary:</p>
<ul>
<li>Nested</li>
<li>Field</li>
<li>Constr</li>
<li><a href="#method-summary">Method</a></li>
</ul>
</li>
<li>
<p>Detail:</p>
<ul>
<li>Field</li>
<li>Constr</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list">
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><a href="../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">dev.relism.flash.extension</a></div>
<h1 title="Class FlashApp" class="title">Class FlashApp</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/21/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="FlashRegistrar.html" title="class in dev.relism.flash.extension">dev.relism.flash.extension.FlashRegistrar</a>&lt;<a href="FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a>&gt;
<div class="inheritance">dev.relism.flash.extension.FlashApp</div>
</div>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">FlashApp</span>
<span class="extends-implements">extends <a href="FlashRegistrar.html" title="class in dev.relism.flash.extension">FlashRegistrar</a>&lt;<a href="FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a>&gt;</span></div>
<div class="block">Single entry point for Flash. Owns one flat <a href="../routing/routers/fastpathrouter/FastPathRouterImpl.html" title="class in dev.relism.flash.routing.routers.fastpathrouter"><code>FastPathRouterImpl</code></a>
all routes (app-level and scoped) compile into a single FSM at startup.
<pre><code>
FlashApp.create(8080)
.install(new JacksonExtension())
.use(cors)
.get("/ping", (req, res) -&gt; "pong")
.get("/secured", (req, res) -&gt; user(), oidc.protect())
.scan("dev.example.handlers")
.mount("/api", scope -&gt; scope.get("/health", (req, res) -&gt; "ok"))
.startAndBlock(); // blocks main thread
</code></pre>
<h3 id="startup-sequence-both-start-and-startandblock--heading">Startup sequence (both <a href="#start()"><code>start()</code></a> and <a href="#startAndBlock()"><code>startAndBlock()</code></a>)</h3>
<ol>
<li>Extensions sorted by <a href="FlashExtension.html#priority()"><code>FlashExtension.priority()</code></a> — lower first.</li>
<li>All <a href="FlashExtension.html#provide(dev.relism.flash.extension.FlashContext)"><code>FlashExtension.provide(dev.relism.flash.extension.FlashContext)</code></a> — register services, processors, listeners.</li>
<li><code>FlashContext.resolveAll()</code> — topo-sort, cycle detection.</li>
<li>All <a href="FlashExtension.html#routes(dev.relism.flash.extension.FlashRegistrar,dev.relism.flash.extension.FlashContext)"><code>FlashExtension.routes(dev.relism.flash.extension.FlashRegistrar&lt;?&gt;, dev.relism.flash.extension.FlashContext)</code></a> — routes registered, services available.</li>
<li>Compile all routes into one flat FSM — zero prefix scanning at runtime.</li>
<li>Accept loop started.</li>
</ol>
<h3 id="default-error-handlers-heading">Default error handlers</h3>
Dev mode (<code>-Dflash.env=dev</code>): rich HTML with stack traces.
Prod mode (default): generic JSON — no internal details leaked.
Override via <a href="#onException(dev.relism.flash.routing.AbstractRouter.ExceptionHandler)"><code>onException(dev.relism.flash.routing.AbstractRouter.ExceptionHandler)</code></a> / <a href="#onNotFound(dev.relism.flash.models.SimpleHandler.FunctionalHandler)"><code>onNotFound(dev.relism.flash.models.SimpleHandler.FunctionalHandler)</code></a>.</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-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static 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>protected void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addMiddleware(dev.relism.flash.routing.Middleware)" class="member-name-link">addMiddleware</a><wbr>(<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>&nbsp;mw)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Registers a middleware in this registrar's own scope (global or scope-level).</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addRoute(dev.relism.flash.http.HttpMethod,java.lang.String,dev.relism.flash.models.RequestHandler,java.util.List)" class="member-name-link">addRoute</a><wbr>(<a href="../http/HttpMethod.html" title="enum class in dev.relism.flash.http">HttpMethod</a>&nbsp;method,
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="../models/RequestHandler.html" title="class in dev.relism.flash.models">RequestHandler</a>&nbsp;handler,
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>&gt;&nbsp;mw)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds a route immediately to this registrar's deferred compilation list.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#create(int)" class="member-name-link">create</a><wbr>(int&nbsp;port)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#create(dev.relism.flash.extension.FlashConfiguration)" class="member-name-link">create</a><wbr>(<a href="FlashConfiguration.html" title="class in dev.relism.flash.extension">FlashConfiguration</a>&nbsp;cfg)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 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="FlashContext.html" title="class in dev.relism.flash.extension">FlashContext</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#ctx()" class="member-name-link">ctx</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the <a href="FlashContext.html" title="class in dev.relism.flash.extension"><code>FlashContext</code></a> for this registrar.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#install(dev.relism.flash.extension.FlashExtension)" class="member-name-link">install</a><wbr>(<a href="FlashExtension.html" title="interface in dev.relism.flash.extension">FlashExtension</a>&nbsp;ext)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Registers an extension for two-phase installation at startup.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#mount(java.lang.String,java.util.function.Consumer)" class="member-name-link">mount</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;namespace,
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/function/Consumer.html" title="class or interface in java.util.function" class="external-link">Consumer</a>&lt;<a href="FlashScope.html" title="class in dev.relism.flash.extension">FlashScope</a>&gt;&nbsp;configure)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Mounts a scoped group of routes under <code>namespace</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#onException(dev.relism.flash.routing.AbstractRouter.ExceptionHandler)" class="member-name-link">onException</a><wbr>(<a href="../routing/AbstractRouter.ExceptionHandler.html" title="interface in dev.relism.flash.routing">AbstractRouter.ExceptionHandler</a>&nbsp;handler)</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="FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#onNotFound(dev.relism.flash.models.SimpleHandler.FunctionalHandler)" class="member-name-link">onNotFound</a><wbr>(<a href="../models/SimpleHandler.FunctionalHandler.html" title="interface in dev.relism.flash.models">SimpleHandler.FunctionalHandler</a>&nbsp;handler)</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="FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#start()" class="member-name-link">start</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Boots the server and starts accepting connections.</div>
</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="#startAndBlock()" class="member-name-link">startAndBlock</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Boots the server and blocks the calling thread until the server is stopped.</div>
</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/21/docs/api/java.base/java/util/concurrent/CompletableFuture.html" title="class or interface in java.util.concurrent" class="external-link">CompletableFuture</a><wbr>&lt;<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Void.html" title="class or interface in java.lang" class="external-link">Void</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#stop()" class="member-name-link">stop</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-dev.relism.flash.extension.FlashRegistrar">Methods inherited from class&nbsp;dev.relism.flash.extension.<a href="FlashRegistrar.html" title="class in dev.relism.flash.extension">FlashRegistrar</a></h3>
<code><a href="FlashRegistrar.html#connect(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">connect</a>, <a href="FlashRegistrar.html#delete(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">delete</a>, <a href="FlashRegistrar.html#get(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">get</a>, <a href="FlashRegistrar.html#head(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">head</a>, <a href="FlashRegistrar.html#instantiate(java.lang.Class)">instantiate</a>, <a href="FlashRegistrar.html#options(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">options</a>, <a href="FlashRegistrar.html#patch(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">patch</a>, <a href="FlashRegistrar.html#post(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">post</a>, <a href="FlashRegistrar.html#purge(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">purge</a>, <a href="FlashRegistrar.html#put(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">put</a>, <a href="FlashRegistrar.html#scan(java.lang.String)">scan</a>, <a href="FlashRegistrar.html#trace(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">trace</a>, <a href="FlashRegistrar.html#use(dev.relism.flash.routing.Middleware...)">use</a></code></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/21/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/21/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/21/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/21/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/21/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/21/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/21/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/21/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/21/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/21/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/21/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/21/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="create(int)">
<h3>create</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a></span>&nbsp;<span class="element-name">create</span><wbr><span class="parameters">(int&nbsp;port)</span></div>
</section>
</li>
<li>
<section class="detail" id="create(dev.relism.flash.extension.FlashConfiguration)">
<h3>create</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a></span>&nbsp;<span class="element-name">create</span><wbr><span class="parameters">(<a href="FlashConfiguration.html" title="class in dev.relism.flash.extension">FlashConfiguration</a>&nbsp;cfg)</span></div>
</section>
</li>
<li>
<section class="detail" id="mount(java.lang.String,java.util.function.Consumer)">
<h3>mount</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a></span>&nbsp;<span class="element-name">mount</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;namespace,
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/function/Consumer.html" title="class or interface in java.util.function" class="external-link">Consumer</a>&lt;<a href="FlashScope.html" title="class in dev.relism.flash.extension">FlashScope</a>&gt;&nbsp;configure)</span></div>
<div class="block">Mounts a scoped group of routes under <code>namespace</code>. Routes accumulate in a
<a href="FlashScope.html" title="class in dev.relism.flash.extension"><code>FlashScope</code></a> builder and merge into this app's single flat router at startup —
pure syntactic sugar, no extra router involved.</div>
</section>
</li>
<li>
<section class="detail" id="onException(dev.relism.flash.routing.AbstractRouter.ExceptionHandler)">
<h3>onException</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a></span>&nbsp;<span class="element-name">onException</span><wbr><span class="parameters">(<a href="../routing/AbstractRouter.ExceptionHandler.html" title="interface in dev.relism.flash.routing">AbstractRouter.ExceptionHandler</a>&nbsp;handler)</span></div>
</section>
</li>
<li>
<section class="detail" id="onNotFound(dev.relism.flash.models.SimpleHandler.FunctionalHandler)">
<h3>onNotFound</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a></span>&nbsp;<span class="element-name">onNotFound</span><wbr><span class="parameters">(<a href="../models/SimpleHandler.FunctionalHandler.html" title="interface in dev.relism.flash.models">SimpleHandler.FunctionalHandler</a>&nbsp;handler)</span></div>
</section>
</li>
<li>
<section class="detail" id="ctx()">
<h3>ctx</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="FlashContext.html" title="class in dev.relism.flash.extension">FlashContext</a></span>&nbsp;<span class="element-name">ctx</span>()</div>
<div class="block"><span class="description-from-type-label">Description copied from class:&nbsp;<code><a href="FlashRegistrar.html#ctx()">FlashRegistrar</a></code></span></div>
<div class="block">Returns the <a href="FlashContext.html" title="class in dev.relism.flash.extension"><code>FlashContext</code></a> for this registrar.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="FlashRegistrar.html#ctx()">ctx</a></code>&nbsp;in class&nbsp;<code><a href="FlashRegistrar.html" title="class in dev.relism.flash.extension">FlashRegistrar</a>&lt;<a href="FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a>&gt;</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="install(dev.relism.flash.extension.FlashExtension)">
<h3>install</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a></span>&nbsp;<span class="element-name">install</span><wbr><span class="parameters">(<a href="FlashExtension.html" title="interface in dev.relism.flash.extension">FlashExtension</a>&nbsp;ext)</span></div>
<div class="block">Registers an extension for two-phase installation at startup.
Install order is irrelevant — all <a href="FlashExtension.html#provide(dev.relism.flash.extension.FlashContext)"><code>FlashExtension.provide(dev.relism.flash.extension.FlashContext)</code></a> calls complete
before any <a href="FlashExtension.html#routes(dev.relism.flash.extension.FlashRegistrar,dev.relism.flash.extension.FlashContext)"><code>FlashExtension.routes(dev.relism.flash.extension.FlashRegistrar&lt;?&gt;, dev.relism.flash.extension.FlashContext)</code></a> call begins.
Extensions are sorted by <a href="FlashExtension.html#priority()"><code>FlashExtension.priority()</code></a> before execution.</div>
</section>
</li>
<li>
<section class="detail" id="start()">
<h3>start</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a></span>&nbsp;<span class="element-name">start</span>()</div>
<div class="block">Boots the server and starts accepting connections. Returns immediately — the
accept loop runs on a background platform thread.
<p>Use <a href="#startAndBlock()"><code>startAndBlock()</code></a> in <code>main()</code> if you have no other work to do
after startup.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>this</code> for storing or chaining (e.g. <code>.start().ctx().require(...)</code>)</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="startAndBlock()">
<h3>startAndBlock</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">startAndBlock</span>()</div>
<div class="block">Boots the server and blocks the calling thread until the server is stopped.
Suitable for the end of <code>main()</code> — no need to keep the JVM alive manually.</div>
</section>
</li>
<li>
<section class="detail" id="stop()">
<h3>stop</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/CompletableFuture.html" title="class or interface in java.util.concurrent" class="external-link">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Void.html" title="class or interface in java.lang" class="external-link">Void</a>&gt;</span>&nbsp;<span class="element-name">stop</span>()</div>
</section>
</li>
<li>
<section class="detail" id="addRoute(dev.relism.flash.http.HttpMethod,java.lang.String,dev.relism.flash.models.RequestHandler,java.util.List)">
<h3>addRoute</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addRoute</span><wbr><span class="parameters">(<a href="../http/HttpMethod.html" title="enum class in dev.relism.flash.http">HttpMethod</a>&nbsp;method,
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="../models/RequestHandler.html" title="class in dev.relism.flash.models">RequestHandler</a>&nbsp;handler,
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>&gt;&nbsp;mw)</span></div>
<div class="block"><span class="description-from-type-label">Description copied from class:&nbsp;<code><a href="FlashRegistrar.html#addRoute(dev.relism.flash.http.HttpMethod,java.lang.String,dev.relism.flash.models.RequestHandler,java.util.List)">FlashRegistrar</a></code></span></div>
<div class="block">Adds a route immediately to this registrar's deferred compilation list.
Subclasses may prepend a namespace prefix and inject scope middlewares before storing.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="FlashRegistrar.html#addRoute(dev.relism.flash.http.HttpMethod,java.lang.String,dev.relism.flash.models.RequestHandler,java.util.List)">addRoute</a></code>&nbsp;in class&nbsp;<code><a href="FlashRegistrar.html" title="class in dev.relism.flash.extension">FlashRegistrar</a>&lt;<a href="FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a>&gt;</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addMiddleware(dev.relism.flash.routing.Middleware)">
<h3>addMiddleware</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addMiddleware</span><wbr><span class="parameters">(<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>&nbsp;mw)</span></div>
<div class="block"><span class="description-from-type-label">Description copied from class:&nbsp;<code><a href="FlashRegistrar.html#addMiddleware(dev.relism.flash.routing.Middleware)">FlashRegistrar</a></code></span></div>
<div class="block">Registers a middleware in this registrar's own scope (global or scope-level).</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="FlashRegistrar.html#addMiddleware(dev.relism.flash.routing.Middleware)">addMiddleware</a></code>&nbsp;in class&nbsp;<code><a href="FlashRegistrar.html" title="class in dev.relism.flash.extension">FlashRegistrar</a>&lt;<a href="FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a>&gt;</code></dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,163 @@
<!DOCTYPE HTML>
<html lang>
<head>
<!-- Generated by javadoc (21) on Tue May 12 13:57:37 UTC 2026 -->
<title>FlashConfiguration (flash-parent 2.0.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2026-05-12">
<meta name="description" content="declaration: package: dev.relism.flash.extension, class: FlashConfiguration">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><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 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><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/FlashConfiguration.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html#class">Help</a></li>
</ul>
<ul class="sub-nav-list-small">
<li>
<p>Summary:</p>
<ul>
<li>Nested</li>
<li>Field</li>
<li><a href="#constructor-summary">Constr</a></li>
<li><a href="#method-summary">Method</a></li>
</ul>
</li>
<li>
<p>Detail:</p>
<ul>
<li>Field</li>
<li><a href="#constructor-detail">Constr</a></li>
<li>Method</li>
</ul>
</li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list">
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li>Method</li>
</ul>
</div>
<div class="nav-list-search"><a href="../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">dev.relism.flash.extension</a></div>
<h1 title="Class FlashConfiguration" class="title">Class FlashConfiguration</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/21/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">dev.relism.flash.extension.FlashConfiguration</div>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">FlashConfiguration</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/21/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">Configuration for a <a href="FlashApp.html" title="class in dev.relism.flash.extension"><code>FlashApp</code></a> instance.
<pre><code>
// Minimal — port only
FlashApp.create(8080);
// Full control
FlashApp.create(FlashConfiguration.builder()
.port(8080)
.host("127.0.0.1")
.maxHeaderBufferSize(128 * 1024)
.build());
</code></pre></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()" class="member-name-link">FlashConfiguration</a>()</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<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/21/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/21/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/21/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/21/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/21/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/21/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/21/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/21/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/21/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/21/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/21/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/21/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;()">
<h3>FlashConfiguration</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">FlashConfiguration</span>()</div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,304 @@
<!DOCTYPE HTML>
<html lang>
<head>
<!-- Generated by javadoc (21) on Tue May 12 13:57:37 UTC 2026 -->
<title>FlashContext (flash-parent 2.0.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2026-05-12">
<meta name="description" content="declaration: package: dev.relism.flash.extension, class: FlashContext">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><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 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><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/FlashContext.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html#class">Help</a></li>
</ul>
<ul class="sub-nav-list-small">
<li>
<p>Summary:</p>
<ul>
<li>Nested</li>
<li>Field</li>
<li><a href="#constructor-summary">Constr</a></li>
<li><a href="#method-summary">Method</a></li>
</ul>
</li>
<li>
<p>Detail:</p>
<ul>
<li>Field</li>
<li><a href="#constructor-detail">Constr</a></li>
<li><a href="#method-detail">Method</a></li>
</ul>
</li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list">
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><a href="../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">dev.relism.flash.extension</a></div>
<h1 title="Class FlashContext" class="title">Class FlashContext</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/21/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">dev.relism.flash.extension.FlashContext</div>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">FlashContext</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/21/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">Central service registry and boot-time hook coordinator.
<p>Every handler, extension, and scope shares one (or a child of one) <code>FlashContext</code>.
Three capabilities:
<ol>
<li><b>Service registry</b><a href="#provide(java.lang.Class,T)"><code>provide(java.lang.Class&lt;T&gt;, T)</code></a>/<a href="#supply(java.lang.Class,java.util.function.Supplier)"><code>supply(java.lang.Class&lt;T&gt;, java.util.function.Supplier&lt;T&gt;)</code></a>/<a href="#require(java.lang.Class)"><code>require(java.lang.Class&lt;T&gt;)</code></a>/<a href="#find(java.lang.Class)"><code>find(java.lang.Class&lt;T&gt;)</code></a>.</li>
<li><b>Annotation processors</b> — middleware injection from handler annotations at boot.</li>
<li><b>Route listeners</b> — boot-time observation of the route graph.</li>
</ol>
<h3 id="eager-vs-lazy-registration-heading">Eager vs lazy registration</h3>
<ul>
<li><a href="#provide(java.lang.Class,T)"><code>provide(Class, Object)</code></a> — instance is already constructed, registered immediately.</li>
<li><a href="#supply(java.lang.Class,java.util.function.Supplier)"><code>supply(Class, Supplier)</code></a> — factory is registered; it runs once, at
<code>resolveAll()</code> time (called by <a href="FlashApp.html#start()"><code>FlashApp.start()</code></a>) after all
<a href="FlashExtension.html#provide(dev.relism.flash.extension.FlashContext)"><code>FlashExtension.provide(dev.relism.flash.extension.FlashContext)</code></a> phases complete. The factory may call
<a href="#require(java.lang.Class)"><code>require(java.lang.Class&lt;T&gt;)</code></a> for its own dependencies — the runtime resolves in topological
order automatically and reports circular dependencies with the full cycle path.</li>
</ul>
<p>A child context (via <a href="#child()"><code>child()</code></a>) inherits parent services and processors.
Services provided on the child are scoped and invisible to the parent.</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()" class="member-name-link">FlashContext</a>()</code></div>
<div class="col-last even-row-color">&nbsp;</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-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="#addAnnotationProcessor(dev.relism.flash.extension.AnnotationProcessor)" class="member-name-link">addAnnotationProcessor</a><wbr>(<a href="AnnotationProcessor.html" title="interface in dev.relism.flash.extension">AnnotationProcessor</a>&nbsp;processor)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Registers an <a href="AnnotationProcessor.html" title="interface in dev.relism.flash.extension"><code>AnnotationProcessor</code></a>.</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="#addRouteListener(dev.relism.flash.extension.RouteListener)" class="member-name-link">addRouteListener</a><wbr>(<a href="RouteListener.html" title="interface in dev.relism.flash.extension">RouteListener</a>&nbsp;listener)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Registers a boot-time <a href="RouteListener.html" title="interface in dev.relism.flash.extension"><code>RouteListener</code></a>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="FlashContext.html" title="class in dev.relism.flash.extension">FlashContext</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#child()" class="member-name-link">child</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates a child context that inherits this context's services and processors.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/Optional.html" title="class or interface in java.util" class="external-link">Optional</a><wbr>&lt;T&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#find(java.lang.Class)" class="member-name-link">find</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;T&gt;&nbsp;type)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the service for <code>type</code>, or empty if not found in this scope or any parent.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/Optional.html" title="class or interface in java.util" class="external-link">Optional</a><wbr>&lt;T&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#optional(java.lang.Class)" class="member-name-link">optional</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;T&gt;&nbsp;type)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Alias for <a href="#find(java.lang.Class)"><code>find(java.lang.Class&lt;T&gt;)</code></a> — prefer when semantics are "this may or may not exist".</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>&lt;T&gt;&nbsp;void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#provide(java.lang.Class,T)" class="member-name-link">provide</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;T&gt;&nbsp;type,
T&nbsp;instance)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Registers an already-constructed <code>instance</code> under <code>type</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>&lt;T&gt;&nbsp;T</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#require(java.lang.Class)" class="member-name-link">require</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;T&gt;&nbsp;type)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the service for <code>type</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>&lt;T&gt;&nbsp;void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#supply(java.lang.Class,java.util.function.Supplier)" class="member-name-link">supply</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;T&gt;&nbsp;type,
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/function/Supplier.html" title="class or interface in java.util.function" class="external-link">Supplier</a>&lt;T&gt;&nbsp;factory)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Registers a lazy factory for <code>type</code>.</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/21/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/21/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/21/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/21/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/21/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/21/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/21/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/21/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/21/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/21/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/21/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/21/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;()">
<h3>FlashContext</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">FlashContext</span>()</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="child()">
<h3>child</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="FlashContext.html" title="class in dev.relism.flash.extension">FlashContext</a></span>&nbsp;<span class="element-name">child</span>()</div>
<div class="block">Creates a child context that inherits this context's services and processors.</div>
</section>
</li>
<li>
<section class="detail" id="provide(java.lang.Class,T)">
<h3 id="provide(java.lang.Class,java.lang.Object)">provide</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="type-parameters">&lt;T&gt;</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">provide</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;T&gt;&nbsp;type,
T&nbsp;instance)</span></div>
<div class="block">Registers an already-constructed <code>instance</code> under <code>type</code>.</div>
</section>
</li>
<li>
<section class="detail" id="supply(java.lang.Class,java.util.function.Supplier)">
<h3>supply</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="type-parameters">&lt;T&gt;</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">supply</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;T&gt;&nbsp;type,
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/function/Supplier.html" title="class or interface in java.util.function" class="external-link">Supplier</a>&lt;T&gt;&nbsp;factory)</span></div>
<div class="block">Registers a lazy factory for <code>type</code>. The factory runs once at
<code>resolveAll()</code> time (or on the first <a href="#require(java.lang.Class)"><code>require(java.lang.Class&lt;T&gt;)</code></a> call for this type)
and may call <a href="#require(java.lang.Class)"><code>require(java.lang.Class&lt;T&gt;)</code></a> for its own dependencies — topological order
is resolved automatically.
<pre><code>
ctx.supply(JwtValidator.class, () -&gt;
new JwtValidator(ctx.require(OidcProviderMetadata.class).jwksUri()));
</code></pre></div>
</section>
</li>
<li>
<section class="detail" id="require(java.lang.Class)">
<h3>require</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="type-parameters">&lt;T&gt;</span>&nbsp;<span class="return-type">T</span>&nbsp;<span class="element-name">require</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;T&gt;&nbsp;type)</span></div>
<div class="block">Returns the service for <code>type</code>. Checks own scope first, then parent chain.
Lazy-registered types are resolved on first access. Circular dependencies throw
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/IllegalStateException.html" title="class or interface in java.lang" class="external-link"><code>IllegalStateException</code></a> with the full cycle path.</div>
<dl class="notes">
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/IllegalStateException.html" title="class or interface in java.lang" class="external-link">IllegalStateException</a></code> - if the service is not found anywhere in the context chain</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="find(java.lang.Class)">
<h3>find</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="type-parameters">&lt;T&gt;</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/Optional.html" title="class or interface in java.util" class="external-link">Optional</a>&lt;T&gt;</span>&nbsp;<span class="element-name">find</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;T&gt;&nbsp;type)</span></div>
<div class="block">Returns the service for <code>type</code>, or empty if not found in this scope or any parent.</div>
</section>
</li>
<li>
<section class="detail" id="optional(java.lang.Class)">
<h3>optional</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="type-parameters">&lt;T&gt;</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/Optional.html" title="class or interface in java.util" class="external-link">Optional</a>&lt;T&gt;</span>&nbsp;<span class="element-name">optional</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;T&gt;&nbsp;type)</span></div>
<div class="block">Alias for <a href="#find(java.lang.Class)"><code>find(java.lang.Class&lt;T&gt;)</code></a> — prefer when semantics are "this may or may not exist".</div>
</section>
</li>
<li>
<section class="detail" id="addAnnotationProcessor(dev.relism.flash.extension.AnnotationProcessor)">
<h3>addAnnotationProcessor</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addAnnotationProcessor</span><wbr><span class="parameters">(<a href="AnnotationProcessor.html" title="interface in dev.relism.flash.extension">AnnotationProcessor</a>&nbsp;processor)</span></div>
<div class="block">Registers an <a href="AnnotationProcessor.html" title="interface in dev.relism.flash.extension"><code>AnnotationProcessor</code></a>. Processors run once per class-based handler at boot.</div>
</section>
</li>
<li>
<section class="detail" id="addRouteListener(dev.relism.flash.extension.RouteListener)">
<h3>addRouteListener</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addRouteListener</span><wbr><span class="parameters">(<a href="RouteListener.html" title="interface in dev.relism.flash.extension">RouteListener</a>&nbsp;listener)</span></div>
<div class="block">Registers a boot-time <a href="RouteListener.html" title="interface in dev.relism.flash.extension"><code>RouteListener</code></a>. Zero overhead on the request hot-path.</div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,221 @@
<!DOCTYPE HTML>
<html lang>
<head>
<!-- Generated by javadoc (21) on Tue May 12 13:57:37 UTC 2026 -->
<title>FlashExtension (flash-parent 2.0.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2026-05-12">
<meta name="description" content="declaration: package: dev.relism.flash.extension, interface: FlashExtension">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><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 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><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/FlashExtension.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html#class">Help</a></li>
</ul>
<ul class="sub-nav-list-small">
<li>
<p>Summary:</p>
<ul>
<li>Nested</li>
<li>Field</li>
<li>Constr</li>
<li><a href="#method-summary">Method</a></li>
</ul>
</li>
<li>
<p>Detail:</p>
<ul>
<li>Field</li>
<li>Constr</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list">
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><a href="../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">dev.relism.flash.extension</a></div>
<h1 title="Interface FlashExtension" class="title">Interface FlashExtension</h1>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">FlashExtension</span></div>
<div class="block">Two-phase contract for all Flash extensions.
<p>Extension lifecycle inside <a href="FlashApp.html#start()"><code>FlashApp.start()</code></a>:
<ol>
<li>Extensions are sorted by <a href="#priority()"><code>priority()</code></a> — lower value runs first.</li>
<li><b>Provide phase</b><a href="#provide(dev.relism.flash.extension.FlashContext)"><code>provide(FlashContext)</code></a> is called for <em>all</em>
installed extensions. Use this phase to register services, annotation processors,
and route listeners. Never call <a href="FlashContext.html#require(java.lang.Class)"><code>FlashContext.require(java.lang.Class&lt;T&gt;)</code></a> here.</li>
<li>Context resolution — <code>FlashContext.resolveAll()</code> performs topological
resolution of lazy suppliers. Circular or missing dependencies fail here with
a clear message before any request is served.</li>
<li><b>Routes phase</b><a href="#routes(dev.relism.flash.extension.FlashRegistrar,dev.relism.flash.extension.FlashContext)"><code>routes(FlashRegistrar, FlashContext)</code></a> is called for
all extensions. All services are resolved; <a href="FlashContext.html#require(java.lang.Class)"><code>FlashContext.require(java.lang.Class&lt;T&gt;)</code></a> is safe.</li>
</ol>
<h3 id="priority-and-middleware-ordering-heading">Priority and middleware ordering</h3>
<a href="#priority()"><code>priority()</code></a> controls the order annotation processors are registered, which
determines the annotation-layer middleware chain position:
<pre>
Request ──► EARLY processors' mw ──► DEFAULT processors' mw ──► LATE processors' mw ──► handler
</pre>
Use <a href="ExtensionPhase.html" title="enum class in dev.relism.flash.extension"><code>ExtensionPhase</code></a> constants for semantic ordering:
<pre><code>
@Override public int priority() { return ExtensionPhase.EARLY.value; }
</code></pre>
<h3 id="example-heading">Example</h3>
<pre><code>
public class MetricsExtension implements FlashExtension {
@Override public int priority() { return ExtensionPhase.LATE.value; }
@Override
public void provide(FlashContext ctx) {
ctx.provide(MetricsRegistry.class, new PromMetricsRegistry());
}
@Override
public void routes(FlashRegistrar&lt;?&gt; app, FlashContext ctx) {
app.get("/metrics", (req, res) -&gt; ctx.require(MetricsRegistry.class).scrape());
}
}
</code></pre></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-tab5" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab5', 3)" class="table-tab">Default 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-tab5"><code>default int</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#priority()" class="member-name-link">priority</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Execution priority.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#provide(dev.relism.flash.extension.FlashContext)" class="member-name-link">provide</a><wbr>(<a href="FlashContext.html" title="class in dev.relism.flash.extension">FlashContext</a>&nbsp;ctx)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Phase 1 — register services and processors.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#routes(dev.relism.flash.extension.FlashRegistrar,dev.relism.flash.extension.FlashContext)" class="member-name-link">routes</a><wbr>(<a href="FlashRegistrar.html" title="class in dev.relism.flash.extension">FlashRegistrar</a>&lt;?&gt;&nbsp;app,
<a href="FlashContext.html" title="class in dev.relism.flash.extension">FlashContext</a>&nbsp;ctx)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Phase 2 — register routes.</div>
</div>
</div>
</div>
</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="provide(dev.relism.flash.extension.FlashContext)">
<h3>provide</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">provide</span><wbr><span class="parameters">(<a href="FlashContext.html" title="class in dev.relism.flash.extension">FlashContext</a>&nbsp;ctx)</span></div>
<div class="block">Phase 1 — register services and processors.
Safe: <a href="FlashContext.html#provide(java.lang.Class,T)"><code>FlashContext.provide(java.lang.Class&lt;T&gt;, T)</code></a>, <a href="FlashContext.html#supply(java.lang.Class,java.util.function.Supplier)"><code>FlashContext.supply(java.lang.Class&lt;T&gt;, java.util.function.Supplier&lt;T&gt;)</code></a>,
<a href="FlashContext.html#addAnnotationProcessor(dev.relism.flash.extension.AnnotationProcessor)"><code>FlashContext.addAnnotationProcessor(dev.relism.flash.extension.AnnotationProcessor)</code></a>, <a href="FlashContext.html#addRouteListener(dev.relism.flash.extension.RouteListener)"><code>FlashContext.addRouteListener(dev.relism.flash.extension.RouteListener)</code></a>.
Unsafe: <a href="FlashContext.html#require(java.lang.Class)"><code>FlashContext.require(java.lang.Class&lt;T&gt;)</code></a> (services not yet resolved).</div>
</section>
</li>
<li>
<section class="detail" id="routes(dev.relism.flash.extension.FlashRegistrar,dev.relism.flash.extension.FlashContext)">
<h3>routes</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">routes</span><wbr><span class="parameters">(<a href="FlashRegistrar.html" title="class in dev.relism.flash.extension">FlashRegistrar</a>&lt;?&gt;&nbsp;app,
<a href="FlashContext.html" title="class in dev.relism.flash.extension">FlashContext</a>&nbsp;ctx)</span></div>
<div class="block">Phase 2 — register routes. All services are fully resolved.
<a href="FlashContext.html#require(java.lang.Class)"><code>FlashContext.require(java.lang.Class&lt;T&gt;)</code></a> is safe here.</div>
</section>
</li>
<li>
<section class="detail" id="priority()">
<h3>priority</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">priority</span>()</div>
<div class="block">Execution priority. Lower = earlier in the annotation middleware chain.
Tie-breaking: same value → install order (sort is stable).
Default: <a href="ExtensionPhase.html#DEFAULT"><code>ExtensionPhase.DEFAULT</code></a> (500).</div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,407 @@
<!DOCTYPE HTML>
<html lang>
<head>
<!-- Generated by javadoc (21) on Tue May 12 13:57:37 UTC 2026 -->
<title>FlashRegistrar (flash-parent 2.0.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2026-05-12">
<meta name="description" content="declaration: package: dev.relism.flash.extension, class: FlashRegistrar">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><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 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><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/FlashRegistrar.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html#class">Help</a></li>
</ul>
<ul class="sub-nav-list-small">
<li>
<p>Summary:</p>
<ul>
<li>Nested</li>
<li>Field</li>
<li><a href="#constructor-summary">Constr</a></li>
<li><a href="#method-summary">Method</a></li>
</ul>
</li>
<li>
<p>Detail:</p>
<ul>
<li>Field</li>
<li><a href="#constructor-detail">Constr</a></li>
<li><a href="#method-detail">Method</a></li>
</ul>
</li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list">
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><a href="../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">dev.relism.flash.extension</a></div>
<h1 title="Class FlashRegistrar" class="title">Class FlashRegistrar&lt;SELF extends FlashRegistrar&lt;SELF&gt;&gt;</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/21/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">dev.relism.flash.extension.FlashRegistrar&lt;SELF&gt;</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>SELF</code> - concrete registrar type — enables fluent chaining without casting</dd>
</dl>
<dl class="notes">
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a></code>, <code><a href="FlashScope.html" title="class in dev.relism.flash.extension">FlashScope</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public abstract class </span><span class="element-name type-name-label">FlashRegistrar&lt;SELF extends FlashRegistrar&lt;SELF&gt;&gt;</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/21/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">Common route-registration surface shared by <a href="FlashApp.html" title="class in dev.relism.flash.extension"><code>FlashApp</code></a> and <a href="FlashScope.html" title="class in dev.relism.flash.extension"><code>FlashScope</code></a>.
<p>All route methods register <em>immediately</em> — no deferred <code>.with()</code> call.
Middleware is passed as a varargs third argument:
<pre><code>
app.get("/ping", (req, res) -&gt; "pong")
app.get("/secured", (req, res) -&gt; user(), oidc.protect())
app.get("/admin", handler, oidc.requireRole("admin"), rateLimiter)
</code></pre>
<p><a href="FlashExtension.html#routes(dev.relism.flash.extension.FlashRegistrar,dev.relism.flash.extension.FlashContext)"><code>FlashExtension.routes(dev.relism.flash.extension.FlashRegistrar&lt;?&gt;, dev.relism.flash.extension.FlashContext)</code></a> receives a <code>FlashRegistrar&lt;?&gt;</code> for route
registration. Extension installation (<code>install()</code>) is only available on
<a href="FlashApp.html" title="class in dev.relism.flash.extension"><code>FlashApp</code></a> — scoped install is intentionally unsupported.</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()" class="member-name-link">FlashRegistrar</a>()</code></div>
<div class="col-last even-row-color">&nbsp;</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-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static 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-tab3"><code>protected abstract void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#addMiddleware(dev.relism.flash.routing.Middleware)" class="member-name-link">addMiddleware</a><wbr>(<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>&nbsp;mw)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Registers a middleware in this registrar's own scope (global or scope-level).</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>protected abstract void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#addRoute(dev.relism.flash.http.HttpMethod,java.lang.String,dev.relism.flash.models.RequestHandler,java.util.List)" class="member-name-link">addRoute</a><wbr>(<a href="../http/HttpMethod.html" title="enum class in dev.relism.flash.http">HttpMethod</a>&nbsp;method,
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="../models/RequestHandler.html" title="class in dev.relism.flash.models">RequestHandler</a>&nbsp;handler,
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>&gt;&nbsp;mw)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Adds a route immediately to this registrar's deferred compilation list.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final <a href="FlashRegistrar.html" title="type parameter in FlashRegistrar">SELF</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#connect(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)" class="member-name-link">connect</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="../models/SimpleHandler.FunctionalHandler.html" title="interface in dev.relism.flash.models">SimpleHandler.FunctionalHandler</a>&nbsp;h,
<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>...&nbsp;mw)</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-tab3"><code>abstract <a href="FlashContext.html" title="class in dev.relism.flash.extension">FlashContext</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#ctx()" class="member-name-link">ctx</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 <a href="FlashContext.html" title="class in dev.relism.flash.extension"><code>FlashContext</code></a> for this registrar.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final <a href="FlashRegistrar.html" title="type parameter in FlashRegistrar">SELF</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#delete(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)" class="member-name-link">delete</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="../models/SimpleHandler.FunctionalHandler.html" title="interface in dev.relism.flash.models">SimpleHandler.FunctionalHandler</a>&nbsp;h,
<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>...&nbsp;mw)</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>final <a href="FlashRegistrar.html" title="type parameter in FlashRegistrar">SELF</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#get(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)" class="member-name-link">get</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="../models/SimpleHandler.FunctionalHandler.html" title="interface in dev.relism.flash.models">SimpleHandler.FunctionalHandler</a>&nbsp;h,
<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>...&nbsp;mw)</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>final <a href="FlashRegistrar.html" title="type parameter in FlashRegistrar">SELF</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#head(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)" class="member-name-link">head</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="../models/SimpleHandler.FunctionalHandler.html" title="interface in dev.relism.flash.models">SimpleHandler.FunctionalHandler</a>&nbsp;h,
<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>...&nbsp;mw)</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-tab1 method-summary-table-tab4"><code>protected static <a href="../models/RequestHandler.html" title="class in dev.relism.flash.models">RequestHandler</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#instantiate(java.lang.Class)" class="member-name-link">instantiate</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;?&gt;&nbsp;cls)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 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>final <a href="FlashRegistrar.html" title="type parameter in FlashRegistrar">SELF</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#options(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)" class="member-name-link">options</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="../models/SimpleHandler.FunctionalHandler.html" title="interface in dev.relism.flash.models">SimpleHandler.FunctionalHandler</a>&nbsp;h,
<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>...&nbsp;mw)</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>final <a href="FlashRegistrar.html" title="type parameter in FlashRegistrar">SELF</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#patch(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)" class="member-name-link">patch</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="../models/SimpleHandler.FunctionalHandler.html" title="interface in dev.relism.flash.models">SimpleHandler.FunctionalHandler</a>&nbsp;h,
<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>...&nbsp;mw)</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>final <a href="FlashRegistrar.html" title="type parameter in FlashRegistrar">SELF</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#post(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)" class="member-name-link">post</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="../models/SimpleHandler.FunctionalHandler.html" title="interface in dev.relism.flash.models">SimpleHandler.FunctionalHandler</a>&nbsp;h,
<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>...&nbsp;mw)</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>final <a href="FlashRegistrar.html" title="type parameter in FlashRegistrar">SELF</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#purge(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)" class="member-name-link">purge</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="../models/SimpleHandler.FunctionalHandler.html" title="interface in dev.relism.flash.models">SimpleHandler.FunctionalHandler</a>&nbsp;h,
<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>...&nbsp;mw)</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>final <a href="FlashRegistrar.html" title="type parameter in FlashRegistrar">SELF</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#put(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)" class="member-name-link">put</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="../models/SimpleHandler.FunctionalHandler.html" title="interface in dev.relism.flash.models">SimpleHandler.FunctionalHandler</a>&nbsp;h,
<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>...&nbsp;mw)</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>final <a href="FlashRegistrar.html" title="type parameter in FlashRegistrar">SELF</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#scan(java.lang.String)" class="member-name-link">scan</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;packageName)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Scans <code>packageName</code> for <a href="../models/RequestHandler.html" title="class in dev.relism.flash.models"><code>RequestHandler</code></a> subclasses with a routing
annotation (<a href="../routing/Route.html" title="annotation interface in dev.relism.flash.routing"><code>@Route</code></a> or <code>@GET</code>, <code>@POST</code>, …).</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final <a href="FlashRegistrar.html" title="type parameter in FlashRegistrar">SELF</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#trace(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)" class="member-name-link">trace</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="../models/SimpleHandler.FunctionalHandler.html" title="interface in dev.relism.flash.models">SimpleHandler.FunctionalHandler</a>&nbsp;h,
<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>...&nbsp;mw)</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>final <a href="FlashRegistrar.html" title="type parameter in FlashRegistrar">SELF</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#use(dev.relism.flash.routing.Middleware...)" class="member-name-link">use</a><wbr>(<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>...&nbsp;middlewares)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds middlewares to this registrar's own scope.</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/21/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/21/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/21/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/21/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/21/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/21/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/21/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/21/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/21/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/21/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/21/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/21/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;()">
<h3>FlashRegistrar</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">FlashRegistrar</span>()</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="get(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">
<h3>get</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a href="FlashRegistrar.html" title="type parameter in FlashRegistrar">SELF</a></span>&nbsp;<span class="element-name">get</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="../models/SimpleHandler.FunctionalHandler.html" title="interface in dev.relism.flash.models">SimpleHandler.FunctionalHandler</a>&nbsp;h,
<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>...&nbsp;mw)</span></div>
</section>
</li>
<li>
<section class="detail" id="post(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">
<h3>post</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a href="FlashRegistrar.html" title="type parameter in FlashRegistrar">SELF</a></span>&nbsp;<span class="element-name">post</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="../models/SimpleHandler.FunctionalHandler.html" title="interface in dev.relism.flash.models">SimpleHandler.FunctionalHandler</a>&nbsp;h,
<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>...&nbsp;mw)</span></div>
</section>
</li>
<li>
<section class="detail" id="put(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">
<h3>put</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a href="FlashRegistrar.html" title="type parameter in FlashRegistrar">SELF</a></span>&nbsp;<span class="element-name">put</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="../models/SimpleHandler.FunctionalHandler.html" title="interface in dev.relism.flash.models">SimpleHandler.FunctionalHandler</a>&nbsp;h,
<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>...&nbsp;mw)</span></div>
</section>
</li>
<li>
<section class="detail" id="delete(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">
<h3>delete</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a href="FlashRegistrar.html" title="type parameter in FlashRegistrar">SELF</a></span>&nbsp;<span class="element-name">delete</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="../models/SimpleHandler.FunctionalHandler.html" title="interface in dev.relism.flash.models">SimpleHandler.FunctionalHandler</a>&nbsp;h,
<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>...&nbsp;mw)</span></div>
</section>
</li>
<li>
<section class="detail" id="patch(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">
<h3>patch</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a href="FlashRegistrar.html" title="type parameter in FlashRegistrar">SELF</a></span>&nbsp;<span class="element-name">patch</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="../models/SimpleHandler.FunctionalHandler.html" title="interface in dev.relism.flash.models">SimpleHandler.FunctionalHandler</a>&nbsp;h,
<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>...&nbsp;mw)</span></div>
</section>
</li>
<li>
<section class="detail" id="options(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">
<h3>options</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a href="FlashRegistrar.html" title="type parameter in FlashRegistrar">SELF</a></span>&nbsp;<span class="element-name">options</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="../models/SimpleHandler.FunctionalHandler.html" title="interface in dev.relism.flash.models">SimpleHandler.FunctionalHandler</a>&nbsp;h,
<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>...&nbsp;mw)</span></div>
</section>
</li>
<li>
<section class="detail" id="head(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">
<h3>head</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a href="FlashRegistrar.html" title="type parameter in FlashRegistrar">SELF</a></span>&nbsp;<span class="element-name">head</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="../models/SimpleHandler.FunctionalHandler.html" title="interface in dev.relism.flash.models">SimpleHandler.FunctionalHandler</a>&nbsp;h,
<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>...&nbsp;mw)</span></div>
</section>
</li>
<li>
<section class="detail" id="trace(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">
<h3>trace</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a href="FlashRegistrar.html" title="type parameter in FlashRegistrar">SELF</a></span>&nbsp;<span class="element-name">trace</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="../models/SimpleHandler.FunctionalHandler.html" title="interface in dev.relism.flash.models">SimpleHandler.FunctionalHandler</a>&nbsp;h,
<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>...&nbsp;mw)</span></div>
</section>
</li>
<li>
<section class="detail" id="connect(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">
<h3>connect</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a href="FlashRegistrar.html" title="type parameter in FlashRegistrar">SELF</a></span>&nbsp;<span class="element-name">connect</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="../models/SimpleHandler.FunctionalHandler.html" title="interface in dev.relism.flash.models">SimpleHandler.FunctionalHandler</a>&nbsp;h,
<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>...&nbsp;mw)</span></div>
</section>
</li>
<li>
<section class="detail" id="purge(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">
<h3>purge</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a href="FlashRegistrar.html" title="type parameter in FlashRegistrar">SELF</a></span>&nbsp;<span class="element-name">purge</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="../models/SimpleHandler.FunctionalHandler.html" title="interface in dev.relism.flash.models">SimpleHandler.FunctionalHandler</a>&nbsp;h,
<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>...&nbsp;mw)</span></div>
</section>
</li>
<li>
<section class="detail" id="use(dev.relism.flash.routing.Middleware...)">
<h3>use</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a href="FlashRegistrar.html" title="type parameter in FlashRegistrar">SELF</a></span>&nbsp;<span class="element-name">use</span><wbr><span class="parameters">(<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>...&nbsp;middlewares)</span></div>
<div class="block">Adds middlewares to this registrar's own scope.
On <a href="FlashApp.html" title="class in dev.relism.flash.extension"><code>FlashApp</code></a>: applied to every route on the app.
On <a href="FlashScope.html" title="class in dev.relism.flash.extension"><code>FlashScope</code></a>: applied to every route in this scope only.
Order-independent: middleware is resolved at <a href="FlashApp.html#start()"><code>FlashApp.start()</code></a>.</div>
</section>
</li>
<li>
<section class="detail" id="scan(java.lang.String)">
<h3>scan</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a href="FlashRegistrar.html" title="type parameter in FlashRegistrar">SELF</a></span>&nbsp;<span class="element-name">scan</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;packageName)</span></div>
<div class="block">Scans <code>packageName</code> for <a href="../models/RequestHandler.html" title="class in dev.relism.flash.models"><code>RequestHandler</code></a> subclasses with a routing
annotation (<a href="../routing/Route.html" title="annotation interface in dev.relism.flash.routing"><code>@Route</code></a> or <code>@GET</code>, <code>@POST</code>, …).
Each match is constructed with its public no-arg constructor and registered immediately.</div>
<dl class="notes">
<dt>Throws:</dt>
<dd><code><a href="../exceptions/InitializationException.html" title="class in dev.relism.flash.exceptions">InitializationException</a></code> - if the package is empty, not found, or any handler
class fails to load or instantiate</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="ctx()">
<h3>ctx</h3>
<div class="member-signature"><span class="modifiers">public abstract</span>&nbsp;<span class="return-type"><a href="FlashContext.html" title="class in dev.relism.flash.extension">FlashContext</a></span>&nbsp;<span class="element-name">ctx</span>()</div>
<div class="block">Returns the <a href="FlashContext.html" title="class in dev.relism.flash.extension"><code>FlashContext</code></a> for this registrar.</div>
</section>
</li>
<li>
<section class="detail" id="addRoute(dev.relism.flash.http.HttpMethod,java.lang.String,dev.relism.flash.models.RequestHandler,java.util.List)">
<h3>addRoute</h3>
<div class="member-signature"><span class="modifiers">protected abstract</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addRoute</span><wbr><span class="parameters">(<a href="../http/HttpMethod.html" title="enum class in dev.relism.flash.http">HttpMethod</a>&nbsp;method,
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="../models/RequestHandler.html" title="class in dev.relism.flash.models">RequestHandler</a>&nbsp;handler,
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>&gt;&nbsp;mw)</span></div>
<div class="block">Adds a route immediately to this registrar's deferred compilation list.
Subclasses may prepend a namespace prefix and inject scope middlewares before storing.</div>
</section>
</li>
<li>
<section class="detail" id="addMiddleware(dev.relism.flash.routing.Middleware)">
<h3>addMiddleware</h3>
<div class="member-signature"><span class="modifiers">protected abstract</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addMiddleware</span><wbr><span class="parameters">(<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>&nbsp;mw)</span></div>
<div class="block">Registers a middleware in this registrar's own scope (global or scope-level).</div>
</section>
</li>
<li>
<section class="detail" id="instantiate(java.lang.Class)">
<h3>instantiate</h3>
<div class="member-signature"><span class="modifiers">protected static</span>&nbsp;<span class="return-type"><a href="../models/RequestHandler.html" title="class in dev.relism.flash.models">RequestHandler</a></span>&nbsp;<span class="element-name">instantiate</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;?&gt;&nbsp;cls)</span></div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,216 @@
<!DOCTYPE HTML>
<html lang>
<head>
<!-- Generated by javadoc (21) on Tue May 12 13:57:37 UTC 2026 -->
<title>FlashScope (flash-parent 2.0.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2026-05-12">
<meta name="description" content="declaration: package: dev.relism.flash.extension, class: FlashScope">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><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 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><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/FlashScope.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html#class">Help</a></li>
</ul>
<ul class="sub-nav-list-small">
<li>
<p>Summary:</p>
<ul>
<li>Nested</li>
<li>Field</li>
<li>Constr</li>
<li><a href="#method-summary">Method</a></li>
</ul>
</li>
<li>
<p>Detail:</p>
<ul>
<li>Field</li>
<li>Constr</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list">
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><a href="../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">dev.relism.flash.extension</a></div>
<h1 title="Class FlashScope" class="title">Class FlashScope</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/21/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="FlashRegistrar.html" title="class in dev.relism.flash.extension">dev.relism.flash.extension.FlashRegistrar</a>&lt;<a href="FlashScope.html" title="class in dev.relism.flash.extension">FlashScope</a>&gt;
<div class="inheritance">dev.relism.flash.extension.FlashScope</div>
</div>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">FlashScope</span>
<span class="extends-implements">extends <a href="FlashRegistrar.html" title="class in dev.relism.flash.extension">FlashRegistrar</a>&lt;<a href="FlashScope.html" title="class in dev.relism.flash.extension">FlashScope</a>&gt;</span></div>
<div class="block">Scoped builder for namespace-prefixed routes. Pure syntactic sugar —
does not own a router. Routes merge into <a href="FlashApp.html" title="class in dev.relism.flash.extension"><code>FlashApp</code></a>'s single flat router
at <a href="FlashApp.html#start()"><code>FlashApp.start()</code></a>.
<pre><code>
app.mount("/api", scope -&gt; {
scope.use(authMiddleware);
scope.get("/health", (req, res) -&gt; "ok"); // → GET /api/health
scope.get("/users", (req, res) -&gt; "...", rateLimiter); // → GET /api/users
scope.scan("dev.example.api.handlers");
});
</code></pre></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>protected void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addMiddleware(dev.relism.flash.routing.Middleware)" class="member-name-link">addMiddleware</a><wbr>(<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>&nbsp;mw)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Registers a middleware in this registrar's own scope (global or scope-level).</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addRoute(dev.relism.flash.http.HttpMethod,java.lang.String,dev.relism.flash.models.RequestHandler,java.util.List)" class="member-name-link">addRoute</a><wbr>(<a href="../http/HttpMethod.html" title="enum class in dev.relism.flash.http">HttpMethod</a>&nbsp;method,
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="../models/RequestHandler.html" title="class in dev.relism.flash.models">RequestHandler</a>&nbsp;handler,
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>&gt;&nbsp;mw)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds a route immediately to this registrar's deferred compilation list.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="FlashContext.html" title="class in dev.relism.flash.extension">FlashContext</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#ctx()" class="member-name-link">ctx</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the <a href="FlashContext.html" title="class in dev.relism.flash.extension"><code>FlashContext</code></a> for this registrar.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-dev.relism.flash.extension.FlashRegistrar">Methods inherited from class&nbsp;dev.relism.flash.extension.<a href="FlashRegistrar.html" title="class in dev.relism.flash.extension">FlashRegistrar</a></h3>
<code><a href="FlashRegistrar.html#connect(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">connect</a>, <a href="FlashRegistrar.html#delete(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">delete</a>, <a href="FlashRegistrar.html#get(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">get</a>, <a href="FlashRegistrar.html#head(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">head</a>, <a href="FlashRegistrar.html#instantiate(java.lang.Class)">instantiate</a>, <a href="FlashRegistrar.html#options(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">options</a>, <a href="FlashRegistrar.html#patch(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">patch</a>, <a href="FlashRegistrar.html#post(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">post</a>, <a href="FlashRegistrar.html#purge(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">purge</a>, <a href="FlashRegistrar.html#put(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">put</a>, <a href="FlashRegistrar.html#scan(java.lang.String)">scan</a>, <a href="FlashRegistrar.html#trace(java.lang.String,dev.relism.flash.models.SimpleHandler.FunctionalHandler,dev.relism.flash.routing.Middleware...)">trace</a>, <a href="FlashRegistrar.html#use(dev.relism.flash.routing.Middleware...)">use</a></code></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/21/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/21/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/21/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/21/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/21/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/21/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/21/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/21/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/21/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/21/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/21/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/21/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="ctx()">
<h3>ctx</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="FlashContext.html" title="class in dev.relism.flash.extension">FlashContext</a></span>&nbsp;<span class="element-name">ctx</span>()</div>
<div class="block"><span class="description-from-type-label">Description copied from class:&nbsp;<code><a href="FlashRegistrar.html#ctx()">FlashRegistrar</a></code></span></div>
<div class="block">Returns the <a href="FlashContext.html" title="class in dev.relism.flash.extension"><code>FlashContext</code></a> for this registrar.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="FlashRegistrar.html#ctx()">ctx</a></code>&nbsp;in class&nbsp;<code><a href="FlashRegistrar.html" title="class in dev.relism.flash.extension">FlashRegistrar</a>&lt;<a href="FlashScope.html" title="class in dev.relism.flash.extension">FlashScope</a>&gt;</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addRoute(dev.relism.flash.http.HttpMethod,java.lang.String,dev.relism.flash.models.RequestHandler,java.util.List)">
<h3>addRoute</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addRoute</span><wbr><span class="parameters">(<a href="../http/HttpMethod.html" title="enum class in dev.relism.flash.http">HttpMethod</a>&nbsp;method,
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="../models/RequestHandler.html" title="class in dev.relism.flash.models">RequestHandler</a>&nbsp;handler,
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>&gt;&nbsp;mw)</span></div>
<div class="block"><span class="description-from-type-label">Description copied from class:&nbsp;<code><a href="FlashRegistrar.html#addRoute(dev.relism.flash.http.HttpMethod,java.lang.String,dev.relism.flash.models.RequestHandler,java.util.List)">FlashRegistrar</a></code></span></div>
<div class="block">Adds a route immediately to this registrar's deferred compilation list.
Subclasses may prepend a namespace prefix and inject scope middlewares before storing.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="FlashRegistrar.html#addRoute(dev.relism.flash.http.HttpMethod,java.lang.String,dev.relism.flash.models.RequestHandler,java.util.List)">addRoute</a></code>&nbsp;in class&nbsp;<code><a href="FlashRegistrar.html" title="class in dev.relism.flash.extension">FlashRegistrar</a>&lt;<a href="FlashScope.html" title="class in dev.relism.flash.extension">FlashScope</a>&gt;</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addMiddleware(dev.relism.flash.routing.Middleware)">
<h3>addMiddleware</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addMiddleware</span><wbr><span class="parameters">(<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>&nbsp;mw)</span></div>
<div class="block"><span class="description-from-type-label">Description copied from class:&nbsp;<code><a href="FlashRegistrar.html#addMiddleware(dev.relism.flash.routing.Middleware)">FlashRegistrar</a></code></span></div>
<div class="block">Registers a middleware in this registrar's own scope (global or scope-level).</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="FlashRegistrar.html#addMiddleware(dev.relism.flash.routing.Middleware)">addMiddleware</a></code>&nbsp;in class&nbsp;<code><a href="FlashRegistrar.html" title="class in dev.relism.flash.extension">FlashRegistrar</a>&lt;<a href="FlashScope.html" title="class in dev.relism.flash.extension">FlashScope</a>&gt;</code></dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,373 @@
<!DOCTYPE HTML>
<html lang>
<head>
<!-- Generated by javadoc (21) on Tue May 12 13:57:37 UTC 2026 -->
<title>RouteEvent (flash-parent 2.0.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2026-05-12">
<meta name="description" content="declaration: package: dev.relism.flash.extension, record: RouteEvent">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><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 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><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/RouteEvent.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html#class">Help</a></li>
</ul>
<ul class="sub-nav-list-small">
<li>
<p>Summary:</p>
<ul>
<li>Nested</li>
<li>Field</li>
<li><a href="#constructor-summary">Constr</a></li>
<li><a href="#method-summary">Method</a></li>
</ul>
</li>
<li>
<p>Detail:</p>
<ul>
<li>Field</li>
<li><a href="#constructor-detail">Constr</a></li>
<li><a href="#method-detail">Method</a></li>
</ul>
</li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list">
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><a href="../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">dev.relism.flash.extension</a></div>
<h1 title="Record Class RouteEvent" class="title">Record Class RouteEvent</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/21/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="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Record.html" title="class or interface in java.lang" class="external-link">java.lang.Record</a>
<div class="inheritance">dev.relism.flash.extension.RouteEvent</div>
</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>Record Components:</dt>
<dd><code><span id="param-method">method</span></code> - HTTP method for this route</dd>
<dd><code><span id="param-path">path</span></code> - full path as declared (including namespace prefix for scoped routes)</dd>
<dd><code><span id="param-namespace">namespace</span></code> - namespace prefix of the router that owns this route (<code>"/"</code> for root)</dd>
<dd><code><span id="param-routerType">routerType</span></code> - simple class name of the owning router implementation</dd>
<dd><code><span id="param-handlerClass">handlerClass</span></code> - concrete handler class, or <code>null</code> for anonymous lambda handlers</dd>
<dd><code><span id="param-middlewareChain">middlewareChain</span></code> - ordered middleware classes, outermost first</dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public record </span><span class="element-name type-name-label">RouteEvent</span>(<a href="../http/HttpMethod.html" title="enum class in dev.relism.flash.http">HttpMethod</a>&nbsp;method, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;namespace, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;routerType, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;?&gt;&nbsp;handlerClass, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>&gt;&gt;&nbsp;middlewareChain)
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Record.html" title="class or interface in java.lang" class="external-link">Record</a></span></div>
<div class="block">Immutable snapshot of a route captured at registration time.
<p>Emitted by <a href="FlashApp.html" title="class in dev.relism.flash.extension"><code>FlashApp</code></a> and <a href="FlashScope.html" title="class in dev.relism.flash.extension"><code>FlashScope</code></a> to every registered
<a href="RouteListener.html" title="interface in dev.relism.flash.extension"><code>RouteListener</code></a> before the route is compiled into the routing engine.
All information is derived automatically — no annotations or declarations
are required from the developer.
<h3 id="middleware-chain-heading">Middleware chain</h3>
<code>middlewareChain</code> lists the <a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing"><code>Middleware</code></a> classes outermost-first:
<ol>
<li>Router-level middlewares (set on the router constructor)</li>
<li>Annotation-injected middlewares (e.g. from <code>@Authenticated</code>)</li>
<li>Handler-level explicit middlewares (passed inline: <code>app.get(path, h, mw...)</code>)</li>
</ol>
<h3 id="handler-abstraction-chain-heading">Handler abstraction chain</h3>
Walk <code>handlerClass</code> upward via <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Class.html#getSuperclass()" title="class or interface in java.lang" class="external-link"><code>Class.getSuperclass()</code></a> to reconstruct
the full inheritance chain (e.g. <code>EditPostPageHandler → HtmlHandler → RequestHandler</code>).
Read <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Class.html#getAnnotations()" title="class or interface in java.lang" class="external-link"><code>Class.getAnnotations()</code></a> on each level to discover declared pointcuts
(<code>@Authenticated</code>, <code>@RolesAllowed</code>, <code>@Route</code>/<code>@GET</code>, etc.).</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(dev.relism.flash.http.HttpMethod,java.lang.String,java.lang.String,java.lang.String,java.lang.Class,java.util.List)" class="member-name-link">RouteEvent</a><wbr>(<a href="../http/HttpMethod.html" title="enum class in dev.relism.flash.http">HttpMethod</a>&nbsp;method,
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;namespace,
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;routerType,
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;?&gt;&nbsp;handlerClass,
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>&gt;&gt;&nbsp;middlewareChain)</code></div>
<div class="col-last even-row-color">
<div class="block">Creates an instance of a <code>RouteEvent</code> record class.</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-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>final boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#equals(java.lang.Object)" class="member-name-link">equals</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;o)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Indicates whether some other object is "equal to" this one.</div>
</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/21/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a><wbr>&lt;?&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#handlerClass()" class="member-name-link">handlerClass</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 the value of the <a href="#param-handlerClass"><code>handlerClass</code></a> record component.</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="#hashCode()" class="member-name-link">hashCode</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a hash code value for this object.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../http/HttpMethod.html" title="enum class in dev.relism.flash.http">HttpMethod</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#method()" class="member-name-link">method</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 the value of the <a href="#param-method"><code>method</code></a> record component.</div>
</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/21/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a><wbr>&lt;<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>&gt;&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#middlewareChain()" class="member-name-link">middlewareChain</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the value of the <a href="#param-middlewareChain"><code>middlewareChain</code></a> record component.</div>
</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/21/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="#namespace()" class="member-name-link">namespace</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 the value of the <a href="#param-namespace"><code>namespace</code></a> record component.</div>
</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/21/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="#path()" class="member-name-link">path</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the value of the <a href="#param-path"><code>path</code></a> record component.</div>
</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/21/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="#routerType()" class="member-name-link">routerType</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 the value of the <a href="#param-routerType"><code>routerType</code></a> record component.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final <a href="https://docs.oracle.com/en/java/javase/21/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="#toString()" class="member-name-link">toString</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a string representation of this record class.</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/21/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/21/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/21/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/21/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/21/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/21/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/21/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/21/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/21/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;(dev.relism.flash.http.HttpMethod,java.lang.String,java.lang.String,java.lang.String,java.lang.Class,java.util.List)">
<h3>RouteEvent</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">RouteEvent</span><wbr><span class="parameters">(<a href="../http/HttpMethod.html" title="enum class in dev.relism.flash.http">HttpMethod</a>&nbsp;method,
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;namespace,
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;routerType,
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;?&gt;&nbsp;handlerClass,
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>&gt;&gt;&nbsp;middlewareChain)</span></div>
<div class="block">Creates an instance of a <code>RouteEvent</code> record class.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>method</code> - the value for the <a href="#param-method"><code>method</code></a> record component</dd>
<dd><code>path</code> - the value for the <a href="#param-path"><code>path</code></a> record component</dd>
<dd><code>namespace</code> - the value for the <a href="#param-namespace"><code>namespace</code></a> record component</dd>
<dd><code>routerType</code> - the value for the <a href="#param-routerType"><code>routerType</code></a> record component</dd>
<dd><code>handlerClass</code> - the value for the <a href="#param-handlerClass"><code>handlerClass</code></a> record component</dd>
<dd><code>middlewareChain</code> - the value for the <a href="#param-middlewareChain"><code>middlewareChain</code></a> record component</dd>
</dl>
</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="toString()">
<h3>toString</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/21/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">toString</span>()</div>
<div class="block">Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Record.html#toString()" title="class or interface in java.lang" class="external-link">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Record.html" title="class or interface in java.lang" class="external-link">Record</a></code></dd>
<dt>Returns:</dt>
<dd>a string representation of this object</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="hashCode()">
<h3>hashCode</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">hashCode</span>()</div>
<div class="block">Returns a hash code value for this object. The value is derived from the hash code of each of the record components.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Record.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Record.html" title="class or interface in java.lang" class="external-link">Record</a></code></dd>
<dt>Returns:</dt>
<dd>a hash code value for this object</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="equals(java.lang.Object)">
<h3>equals</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">equals</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;o)</span></div>
<div class="block">Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/Objects.html#equals(java.lang.Object,java.lang.Object)" title="class or interface in java.util" class="external-link"><code>Objects::equals(Object,Object)</code></a>.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Record.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Record.html" title="class or interface in java.lang" class="external-link">Record</a></code></dd>
<dt>Parameters:</dt>
<dd><code>o</code> - the object with which to compare</dd>
<dt>Returns:</dt>
<dd><code>true</code> if this object is the same as the <code>o</code> argument; <code>false</code> otherwise.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="method()">
<h3>method</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../http/HttpMethod.html" title="enum class in dev.relism.flash.http">HttpMethod</a></span>&nbsp;<span class="element-name">method</span>()</div>
<div class="block">Returns the value of the <a href="#param-method"><code>method</code></a> record component.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the value of the <a href="#param-method"><code>method</code></a> record component</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="path()">
<h3>path</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/21/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">path</span>()</div>
<div class="block">Returns the value of the <a href="#param-path"><code>path</code></a> record component.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the value of the <a href="#param-path"><code>path</code></a> record component</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="namespace()">
<h3>namespace</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/21/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">namespace</span>()</div>
<div class="block">Returns the value of the <a href="#param-namespace"><code>namespace</code></a> record component.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the value of the <a href="#param-namespace"><code>namespace</code></a> record component</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="routerType()">
<h3>routerType</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/21/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">routerType</span>()</div>
<div class="block">Returns the value of the <a href="#param-routerType"><code>routerType</code></a> record component.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the value of the <a href="#param-routerType"><code>routerType</code></a> record component</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="handlerClass()">
<h3>handlerClass</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;?&gt;</span>&nbsp;<span class="element-name">handlerClass</span>()</div>
<div class="block">Returns the value of the <a href="#param-handlerClass"><code>handlerClass</code></a> record component.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the value of the <a href="#param-handlerClass"><code>handlerClass</code></a> record component</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="middlewareChain()">
<h3>middlewareChain</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing">Middleware</a>&gt;&gt;</span>&nbsp;<span class="element-name">middlewareChain</span>()</div>
<div class="block">Returns the value of the <a href="#param-middlewareChain"><code>middlewareChain</code></a> record component.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the value of the <a href="#param-middlewareChain"><code>middlewareChain</code></a> record component</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,163 @@
<!DOCTYPE HTML>
<html lang>
<head>
<!-- Generated by javadoc (21) on Tue May 12 13:57:37 UTC 2026 -->
<title>RouteListener (flash-parent 2.0.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2026-05-12">
<meta name="description" content="declaration: package: dev.relism.flash.extension, interface: RouteListener">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><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 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><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/RouteListener.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html#class">Help</a></li>
</ul>
<ul class="sub-nav-list-small">
<li>
<p>Summary:</p>
<ul>
<li>Nested</li>
<li>Field</li>
<li>Constr</li>
<li><a href="#method-summary">Method</a></li>
</ul>
</li>
<li>
<p>Detail:</p>
<ul>
<li>Field</li>
<li>Constr</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list">
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><a href="../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">dev.relism.flash.extension</a></div>
<h1 title="Interface RouteListener" class="title">Interface RouteListener</h1>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>Functional Interface:</dt>
<dd>This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.</dd>
</dl>
<hr>
<div class="type-signature"><span class="annotations"><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/FunctionalInterface.html" title="class or interface in java.lang" class="external-link">@FunctionalInterface</a>
</span><span class="modifiers">public interface </span><span class="element-name type-name-label">RouteListener</span></div>
<div class="block">Observer notified once for each route registered on a <a href="FlashApp.html" title="class in dev.relism.flash.extension"><code>FlashApp</code></a> or <a href="FlashScope.html" title="class in dev.relism.flash.extension"><code>FlashScope</code></a>.
<p>Register via <a href="FlashContext.html#addRouteListener(dev.relism.flash.extension.RouteListener)"><code>FlashContext.addRouteListener(dev.relism.flash.extension.RouteListener)</code></a>. The listener is called
<em>once per route at boot time</em>, before the route is handed to the routing engine.
There is zero overhead on the request hot-path.
<p>Intended for extensions that need to introspect the route graph (e.g. a route viewer,
OpenAPI schema builder, etc.) without polluting the routing or middleware infrastructure.</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-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></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-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#onRoute(dev.relism.flash.extension.RouteEvent)" class="member-name-link">onRoute</a><wbr>(<a href="RouteEvent.html" title="class in dev.relism.flash.extension">RouteEvent</a>&nbsp;event)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Called once for every registered route, in registration order.</div>
</div>
</div>
</div>
</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="onRoute(dev.relism.flash.extension.RouteEvent)">
<h3>onRoute</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">onRoute</span><wbr><span class="parameters">(<a href="RouteEvent.html" title="class in dev.relism.flash.extension">RouteEvent</a>&nbsp;event)</span></div>
<div class="block">Called once for every registered route, in registration order.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>event</code> - immutable snapshot of the route's metadata at registration time</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,89 @@
<!DOCTYPE HTML>
<html lang>
<head>
<!-- Generated by javadoc (21) on Tue May 12 13:57:37 UTC 2026 -->
<title>Uses of Interface dev.relism.flash.extension.AnnotationProcessor (flash-parent 2.0.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2026-05-12">
<meta name="description" content="use: package: dev.relism.flash.extension, interface: AnnotationProcessor">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-use-page">
<script type="text/javascript">var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><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 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><a href="../package-summary.html">Package</a></li>
<li><a href="../AnnotationProcessor.html" title="interface in dev.relism.flash.extension">Class</a></li>
<li class="nav-bar-cell1-rev">Use</li>
<li><a href="../package-tree.html">Tree</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html#use">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list"></div>
<div class="nav-list-search"><a href="../../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="Uses of Interface dev.relism.flash.extension.AnnotationProcessor" class="title">Uses of Interface<br>dev.relism.flash.extension.AnnotationProcessor</h1>
</div>
<div class="caption"><span>Packages that use <a href="../AnnotationProcessor.html" title="interface in dev.relism.flash.extension">AnnotationProcessor</a></span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="#dev.relism.flash.extension">dev.relism.flash.extension</a></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
<section class="class-uses">
<ul class="block-list">
<li>
<section class="detail" id="dev.relism.flash.extension">
<h2>Uses of <a href="../AnnotationProcessor.html" title="interface in dev.relism.flash.extension">AnnotationProcessor</a> in <a href="../package-summary.html">dev.relism.flash.extension</a></h2>
<div class="caption"><span>Methods in <a href="../package-summary.html">dev.relism.flash.extension</a> with parameters of type <a href="../AnnotationProcessor.html" title="interface in dev.relism.flash.extension">AnnotationProcessor</a></span></div>
<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"><code>void</code></div>
<div class="col-second even-row-color"><span class="type-name-label">FlashContext.</span><code><a href="../FlashContext.html#addAnnotationProcessor(dev.relism.flash.extension.AnnotationProcessor)" class="member-name-link">addAnnotationProcessor</a><wbr>(<a href="../AnnotationProcessor.html" title="interface in dev.relism.flash.extension">AnnotationProcessor</a>&nbsp;processor)</code></div>
<div class="col-last even-row-color">
<div class="block">Registers an <a href="../AnnotationProcessor.html" title="interface in dev.relism.flash.extension"><code>AnnotationProcessor</code></a>.</div>
</div>
</div>
</section>
</li>
</ul>
</section>
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,95 @@
<!DOCTYPE HTML>
<html lang>
<head>
<!-- Generated by javadoc (21) on Tue May 12 13:57:37 UTC 2026 -->
<title>Uses of Enum Class dev.relism.flash.extension.ExtensionPhase (flash-parent 2.0.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2026-05-12">
<meta name="description" content="use: package: dev.relism.flash.extension, enum: ExtensionPhase">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-use-page">
<script type="text/javascript">var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><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 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><a href="../package-summary.html">Package</a></li>
<li><a href="../ExtensionPhase.html" title="enum class in dev.relism.flash.extension">Class</a></li>
<li class="nav-bar-cell1-rev">Use</li>
<li><a href="../package-tree.html">Tree</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html#use">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list"></div>
<div class="nav-list-search"><a href="../../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="Uses of Enum Class dev.relism.flash.extension.ExtensionPhase" class="title">Uses of Enum Class<br>dev.relism.flash.extension.ExtensionPhase</h1>
</div>
<div class="caption"><span>Packages that use <a href="../ExtensionPhase.html" title="enum class in dev.relism.flash.extension">ExtensionPhase</a></span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="#dev.relism.flash.extension">dev.relism.flash.extension</a></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
<section class="class-uses">
<ul class="block-list">
<li>
<section class="detail" id="dev.relism.flash.extension">
<h2>Uses of <a href="../ExtensionPhase.html" title="enum class in dev.relism.flash.extension">ExtensionPhase</a> in <a href="../package-summary.html">dev.relism.flash.extension</a></h2>
<div class="caption"><span>Methods in <a href="../package-summary.html">dev.relism.flash.extension</a> that return <a href="../ExtensionPhase.html" title="enum class in dev.relism.flash.extension">ExtensionPhase</a></span></div>
<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"><code>static <a href="../ExtensionPhase.html" title="enum class in dev.relism.flash.extension">ExtensionPhase</a></code></div>
<div class="col-second even-row-color"><span class="type-name-label">ExtensionPhase.</span><code><a href="../ExtensionPhase.html#valueOf(java.lang.String)" class="member-name-link">valueOf</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/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 even-row-color">
<div class="block">Returns the enum constant of this class with the specified name.</div>
</div>
<div class="col-first odd-row-color"><code>static <a href="../ExtensionPhase.html" title="enum class in dev.relism.flash.extension">ExtensionPhase</a>[]</code></div>
<div class="col-second odd-row-color"><span class="type-name-label">ExtensionPhase.</span><code><a href="../ExtensionPhase.html#values()" class="member-name-link">values</a>()</code></div>
<div class="col-last odd-row-color">
<div class="block">Returns an array containing the constants of this enum class, in
the order they are declared.</div>
</div>
</div>
</section>
</li>
</ul>
</section>
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,112 @@
<!DOCTYPE HTML>
<html lang>
<head>
<!-- Generated by javadoc (21) on Tue May 12 13:57:37 UTC 2026 -->
<title>Uses of Class dev.relism.flash.extension.FlashApp (flash-parent 2.0.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2026-05-12">
<meta name="description" content="use: package: dev.relism.flash.extension, class: FlashApp">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-use-page">
<script type="text/javascript">var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><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 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><a href="../package-summary.html">Package</a></li>
<li><a href="../FlashApp.html" title="class in dev.relism.flash.extension">Class</a></li>
<li class="nav-bar-cell1-rev">Use</li>
<li><a href="../package-tree.html">Tree</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html#use">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list"></div>
<div class="nav-list-search"><a href="../../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="Uses of Class dev.relism.flash.extension.FlashApp" class="title">Uses of Class<br>dev.relism.flash.extension.FlashApp</h1>
</div>
<div class="caption"><span>Packages that use <a href="../FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a></span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="#dev.relism.flash.extension">dev.relism.flash.extension</a></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
<section class="class-uses">
<ul class="block-list">
<li>
<section class="detail" id="dev.relism.flash.extension">
<h2>Uses of <a href="../FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a> in <a href="../package-summary.html">dev.relism.flash.extension</a></h2>
<div class="caption"><span>Methods in <a href="../package-summary.html">dev.relism.flash.extension</a> that return <a href="../FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a></span></div>
<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"><code>static <a href="../FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a></code></div>
<div class="col-second even-row-color"><span class="type-name-label">FlashApp.</span><code><a href="../FlashApp.html#create(int)" class="member-name-link">create</a><wbr>(int&nbsp;port)</code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>static <a href="../FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a></code></div>
<div class="col-second odd-row-color"><span class="type-name-label">FlashApp.</span><code><a href="../FlashApp.html#create(dev.relism.flash.extension.FlashConfiguration)" class="member-name-link">create</a><wbr>(<a href="../FlashConfiguration.html" title="class in dev.relism.flash.extension">FlashConfiguration</a>&nbsp;cfg)</code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code><a href="../FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a></code></div>
<div class="col-second even-row-color"><span class="type-name-label">FlashApp.</span><code><a href="../FlashApp.html#install(dev.relism.flash.extension.FlashExtension)" class="member-name-link">install</a><wbr>(<a href="../FlashExtension.html" title="interface in dev.relism.flash.extension">FlashExtension</a>&nbsp;ext)</code></div>
<div class="col-last even-row-color">
<div class="block">Registers an extension for two-phase installation at startup.</div>
</div>
<div class="col-first odd-row-color"><code><a href="../FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a></code></div>
<div class="col-second odd-row-color"><span class="type-name-label">FlashApp.</span><code><a href="../FlashApp.html#mount(java.lang.String,java.util.function.Consumer)" class="member-name-link">mount</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;namespace,
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/function/Consumer.html" title="class or interface in java.util.function" class="external-link">Consumer</a>&lt;<a href="../FlashScope.html" title="class in dev.relism.flash.extension">FlashScope</a>&gt;&nbsp;configure)</code></div>
<div class="col-last odd-row-color">
<div class="block">Mounts a scoped group of routes under <code>namespace</code>.</div>
</div>
<div class="col-first even-row-color"><code><a href="../FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a></code></div>
<div class="col-second even-row-color"><span class="type-name-label">FlashApp.</span><code><a href="../FlashApp.html#onException(dev.relism.flash.routing.AbstractRouter.ExceptionHandler)" class="member-name-link">onException</a><wbr>(<a href="../../routing/AbstractRouter.ExceptionHandler.html" title="interface in dev.relism.flash.routing">AbstractRouter.ExceptionHandler</a>&nbsp;handler)</code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code><a href="../FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a></code></div>
<div class="col-second odd-row-color"><span class="type-name-label">FlashApp.</span><code><a href="../FlashApp.html#onNotFound(dev.relism.flash.models.SimpleHandler.FunctionalHandler)" class="member-name-link">onNotFound</a><wbr>(<a href="../../models/SimpleHandler.FunctionalHandler.html" title="interface in dev.relism.flash.models">SimpleHandler.FunctionalHandler</a>&nbsp;handler)</code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code><a href="../FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a></code></div>
<div class="col-second even-row-color"><span class="type-name-label">FlashApp.</span><code><a href="../FlashApp.html#start()" class="member-name-link">start</a>()</code></div>
<div class="col-last even-row-color">
<div class="block">Boots the server and starts accepting connections.</div>
</div>
</div>
</section>
</li>
</ul>
</section>
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,104 @@
<!DOCTYPE HTML>
<html lang>
<head>
<!-- Generated by javadoc (21) on Tue May 12 13:57:37 UTC 2026 -->
<title>Uses of Class dev.relism.flash.extension.FlashConfiguration (flash-parent 2.0.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2026-05-12">
<meta name="description" content="use: package: dev.relism.flash.extension, class: FlashConfiguration">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-use-page">
<script type="text/javascript">var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><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 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><a href="../package-summary.html">Package</a></li>
<li><a href="../FlashConfiguration.html" title="class in dev.relism.flash.extension">Class</a></li>
<li class="nav-bar-cell1-rev">Use</li>
<li><a href="../package-tree.html">Tree</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html#use">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list"></div>
<div class="nav-list-search"><a href="../../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="Uses of Class dev.relism.flash.extension.FlashConfiguration" class="title">Uses of Class<br>dev.relism.flash.extension.FlashConfiguration</h1>
</div>
<div class="caption"><span>Packages that use <a href="../FlashConfiguration.html" title="class in dev.relism.flash.extension">FlashConfiguration</a></span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="#dev.relism.flash">dev.relism.flash</a></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><a href="#dev.relism.flash.extension">dev.relism.flash.extension</a></div>
<div class="col-last odd-row-color">&nbsp;</div>
</div>
<section class="class-uses">
<ul class="block-list">
<li>
<section class="detail" id="dev.relism.flash">
<h2>Uses of <a href="../FlashConfiguration.html" title="class in dev.relism.flash.extension">FlashConfiguration</a> in <a href="../../package-summary.html">dev.relism.flash</a></h2>
<div class="caption"><span>Methods in <a href="../../package-summary.html">dev.relism.flash</a> with parameters of type <a href="../FlashConfiguration.html" title="class in dev.relism.flash.extension">FlashConfiguration</a></span></div>
<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"><code>static <a href="../../ServerHandle.html" title="interface in dev.relism.flash">ServerHandle</a></code></div>
<div class="col-second even-row-color"><span class="type-name-label">ServerHandle.</span><code><a href="../../ServerHandle.html#create(dev.relism.flash.extension.FlashConfiguration,dev.relism.flash.routing.AbstractRouter)" class="member-name-link">create</a><wbr>(<a href="../FlashConfiguration.html" title="class in dev.relism.flash.extension">FlashConfiguration</a>&nbsp;config,
<a href="../../routing/AbstractRouter.html" title="class in dev.relism.flash.routing">AbstractRouter</a>&nbsp;router)</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<li>
<section class="detail" id="dev.relism.flash.extension">
<h2>Uses of <a href="../FlashConfiguration.html" title="class in dev.relism.flash.extension">FlashConfiguration</a> in <a href="../package-summary.html">dev.relism.flash.extension</a></h2>
<div class="caption"><span>Methods in <a href="../package-summary.html">dev.relism.flash.extension</a> with parameters of type <a href="../FlashConfiguration.html" title="class in dev.relism.flash.extension">FlashConfiguration</a></span></div>
<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"><code>static <a href="../FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a></code></div>
<div class="col-second even-row-color"><span class="type-name-label">FlashApp.</span><code><a href="../FlashApp.html#create(dev.relism.flash.extension.FlashConfiguration)" class="member-name-link">create</a><wbr>(<a href="../FlashConfiguration.html" title="class in dev.relism.flash.extension">FlashConfiguration</a>&nbsp;cfg)</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
</ul>
</section>
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,135 @@
<!DOCTYPE HTML>
<html lang>
<head>
<!-- Generated by javadoc (21) on Tue May 12 13:57:37 UTC 2026 -->
<title>Uses of Class dev.relism.flash.extension.FlashContext (flash-parent 2.0.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2026-05-12">
<meta name="description" content="use: package: dev.relism.flash.extension, class: FlashContext">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-use-page">
<script type="text/javascript">var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><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 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><a href="../package-summary.html">Package</a></li>
<li><a href="../FlashContext.html" title="class in dev.relism.flash.extension">Class</a></li>
<li class="nav-bar-cell1-rev">Use</li>
<li><a href="../package-tree.html">Tree</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html#use">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list"></div>
<div class="nav-list-search"><a href="../../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="Uses of Class dev.relism.flash.extension.FlashContext" class="title">Uses of Class<br>dev.relism.flash.extension.FlashContext</h1>
</div>
<div class="caption"><span>Packages that use <a href="../FlashContext.html" title="class in dev.relism.flash.extension">FlashContext</a></span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="#dev.relism.flash.extension">dev.relism.flash.extension</a></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><a href="#dev.relism.flash.models">dev.relism.flash.models</a></div>
<div class="col-last odd-row-color">&nbsp;</div>
</div>
<section class="class-uses">
<ul class="block-list">
<li>
<section class="detail" id="dev.relism.flash.extension">
<h2>Uses of <a href="../FlashContext.html" title="class in dev.relism.flash.extension">FlashContext</a> in <a href="../package-summary.html">dev.relism.flash.extension</a></h2>
<div class="caption"><span>Methods in <a href="../package-summary.html">dev.relism.flash.extension</a> that return <a href="../FlashContext.html" title="class in dev.relism.flash.extension">FlashContext</a></span></div>
<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"><code><a href="../FlashContext.html" title="class in dev.relism.flash.extension">FlashContext</a></code></div>
<div class="col-second even-row-color"><span class="type-name-label">FlashContext.</span><code><a href="../FlashContext.html#child()" class="member-name-link">child</a>()</code></div>
<div class="col-last even-row-color">
<div class="block">Creates a child context that inherits this context's services and processors.</div>
</div>
<div class="col-first odd-row-color"><code><a href="../FlashContext.html" title="class in dev.relism.flash.extension">FlashContext</a></code></div>
<div class="col-second odd-row-color"><span class="type-name-label">FlashApp.</span><code><a href="../FlashApp.html#ctx()" class="member-name-link">ctx</a>()</code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>abstract <a href="../FlashContext.html" title="class in dev.relism.flash.extension">FlashContext</a></code></div>
<div class="col-second even-row-color"><span class="type-name-label">FlashRegistrar.</span><code><a href="../FlashRegistrar.html#ctx()" class="member-name-link">ctx</a>()</code></div>
<div class="col-last even-row-color">
<div class="block">Returns the <a href="../FlashContext.html" title="class in dev.relism.flash.extension"><code>FlashContext</code></a> for this registrar.</div>
</div>
<div class="col-first odd-row-color"><code><a href="../FlashContext.html" title="class in dev.relism.flash.extension">FlashContext</a></code></div>
<div class="col-second odd-row-color"><span class="type-name-label">FlashScope.</span><code><a href="../FlashScope.html#ctx()" class="member-name-link">ctx</a>()</code></div>
<div class="col-last odd-row-color">&nbsp;</div>
</div>
<div class="caption"><span>Methods in <a href="../package-summary.html">dev.relism.flash.extension</a> with parameters of type <a href="../FlashContext.html" title="class in dev.relism.flash.extension">FlashContext</a></span></div>
<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"><code>default void</code></div>
<div class="col-second even-row-color"><span class="type-name-label">FlashExtension.</span><code><a href="../FlashExtension.html#provide(dev.relism.flash.extension.FlashContext)" class="member-name-link">provide</a><wbr>(<a href="../FlashContext.html" title="class in dev.relism.flash.extension">FlashContext</a>&nbsp;ctx)</code></div>
<div class="col-last even-row-color">
<div class="block">Phase 1 — register services and processors.</div>
</div>
<div class="col-first odd-row-color"><code>default void</code></div>
<div class="col-second odd-row-color"><span class="type-name-label">FlashExtension.</span><code><a href="../FlashExtension.html#routes(dev.relism.flash.extension.FlashRegistrar,dev.relism.flash.extension.FlashContext)" class="member-name-link">routes</a><wbr>(<a href="../FlashRegistrar.html" title="class in dev.relism.flash.extension">FlashRegistrar</a>&lt;?&gt;&nbsp;app,
<a href="../FlashContext.html" title="class in dev.relism.flash.extension">FlashContext</a>&nbsp;ctx)</code></div>
<div class="col-last odd-row-color">
<div class="block">Phase 2 — register routes.</div>
</div>
</div>
</section>
</li>
<li>
<section class="detail" id="dev.relism.flash.models">
<h2>Uses of <a href="../FlashContext.html" title="class in dev.relism.flash.extension">FlashContext</a> in <a href="../../models/package-summary.html">dev.relism.flash.models</a></h2>
<div class="caption"><span>Methods in <a href="../../models/package-summary.html">dev.relism.flash.models</a> with parameters of type <a href="../FlashContext.html" title="class in dev.relism.flash.extension">FlashContext</a></span></div>
<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"><code>final void</code></div>
<div class="col-second even-row-color"><span class="type-name-label">RequestHandler.</span><code><a href="../../models/RequestHandler.html#bind(dev.relism.flash.extension.FlashContext)" class="member-name-link">bind</a><wbr>(<a href="../FlashContext.html" title="class in dev.relism.flash.extension">FlashContext</a>&nbsp;ctx)</code></div>
<div class="col-last even-row-color">
<div class="block">Called once by the framework after instantiation, before the first request.</div>
</div>
</div>
</section>
</li>
</ul>
</section>
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,89 @@
<!DOCTYPE HTML>
<html lang>
<head>
<!-- Generated by javadoc (21) on Tue May 12 13:57:37 UTC 2026 -->
<title>Uses of Interface dev.relism.flash.extension.FlashExtension (flash-parent 2.0.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2026-05-12">
<meta name="description" content="use: package: dev.relism.flash.extension, interface: FlashExtension">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-use-page">
<script type="text/javascript">var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><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 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><a href="../package-summary.html">Package</a></li>
<li><a href="../FlashExtension.html" title="interface in dev.relism.flash.extension">Class</a></li>
<li class="nav-bar-cell1-rev">Use</li>
<li><a href="../package-tree.html">Tree</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html#use">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list"></div>
<div class="nav-list-search"><a href="../../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="Uses of Interface dev.relism.flash.extension.FlashExtension" class="title">Uses of Interface<br>dev.relism.flash.extension.FlashExtension</h1>
</div>
<div class="caption"><span>Packages that use <a href="../FlashExtension.html" title="interface in dev.relism.flash.extension">FlashExtension</a></span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="#dev.relism.flash.extension">dev.relism.flash.extension</a></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
<section class="class-uses">
<ul class="block-list">
<li>
<section class="detail" id="dev.relism.flash.extension">
<h2>Uses of <a href="../FlashExtension.html" title="interface in dev.relism.flash.extension">FlashExtension</a> in <a href="../package-summary.html">dev.relism.flash.extension</a></h2>
<div class="caption"><span>Methods in <a href="../package-summary.html">dev.relism.flash.extension</a> with parameters of type <a href="../FlashExtension.html" title="interface in dev.relism.flash.extension">FlashExtension</a></span></div>
<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"><code><a href="../FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a></code></div>
<div class="col-second even-row-color"><span class="type-name-label">FlashApp.</span><code><a href="../FlashApp.html#install(dev.relism.flash.extension.FlashExtension)" class="member-name-link">install</a><wbr>(<a href="../FlashExtension.html" title="interface in dev.relism.flash.extension">FlashExtension</a>&nbsp;ext)</code></div>
<div class="col-last even-row-color">
<div class="block">Registers an extension for two-phase installation at startup.</div>
</div>
</div>
</section>
</li>
</ul>
</section>
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,117 @@
<!DOCTYPE HTML>
<html lang>
<head>
<!-- Generated by javadoc (21) on Tue May 12 13:57:37 UTC 2026 -->
<title>Uses of Class dev.relism.flash.extension.FlashRegistrar (flash-parent 2.0.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2026-05-12">
<meta name="description" content="use: package: dev.relism.flash.extension, class: FlashRegistrar">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-use-page">
<script type="text/javascript">var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><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 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><a href="../package-summary.html">Package</a></li>
<li><a href="../FlashRegistrar.html" title="class in dev.relism.flash.extension">Class</a></li>
<li class="nav-bar-cell1-rev">Use</li>
<li><a href="../package-tree.html">Tree</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html#use">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list"></div>
<div class="nav-list-search"><a href="../../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="Uses of Class dev.relism.flash.extension.FlashRegistrar" class="title">Uses of Class<br>dev.relism.flash.extension.FlashRegistrar</h1>
</div>
<div class="caption"><span>Packages that use <a href="../FlashRegistrar.html" title="class in dev.relism.flash.extension">FlashRegistrar</a></span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="#dev.relism.flash.extension">dev.relism.flash.extension</a></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
<section class="class-uses">
<ul class="block-list">
<li>
<section class="detail" id="dev.relism.flash.extension">
<h2>Uses of <a href="../FlashRegistrar.html" title="class in dev.relism.flash.extension">FlashRegistrar</a> in <a href="../package-summary.html">dev.relism.flash.extension</a></h2>
<div class="caption"><span>Classes in <a href="../package-summary.html">dev.relism.flash.extension</a> with type parameters of type <a href="../FlashRegistrar.html" title="class in dev.relism.flash.extension">FlashRegistrar</a></span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>class&nbsp;</code></div>
<div class="col-second even-row-color"><code><a href="../FlashRegistrar.html" class="type-name-link" title="class in dev.relism.flash.extension">FlashRegistrar</a>&lt;SELF extends <a href="../FlashRegistrar.html" title="class in dev.relism.flash.extension">FlashRegistrar</a>&lt;SELF&gt;&gt;</code></div>
<div class="col-last even-row-color">
<div class="block">Common route-registration surface shared by <a href="../FlashApp.html" title="class in dev.relism.flash.extension"><code>FlashApp</code></a> and <a href="../FlashScope.html" title="class in dev.relism.flash.extension"><code>FlashScope</code></a>.</div>
</div>
</div>
<div class="caption"><span>Subclasses of <a href="../FlashRegistrar.html" title="class in dev.relism.flash.extension">FlashRegistrar</a> in <a href="../package-summary.html">dev.relism.flash.extension</a></span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>final class&nbsp;</code></div>
<div class="col-second even-row-color"><code><a href="../FlashApp.html" class="type-name-link" title="class in dev.relism.flash.extension">FlashApp</a></code></div>
<div class="col-last even-row-color">
<div class="block">Single entry point for Flash.</div>
</div>
<div class="col-first odd-row-color"><code>final class&nbsp;</code></div>
<div class="col-second odd-row-color"><code><a href="../FlashScope.html" class="type-name-link" title="class in dev.relism.flash.extension">FlashScope</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Scoped builder for namespace-prefixed routes.</div>
</div>
</div>
<div class="caption"><span>Methods in <a href="../package-summary.html">dev.relism.flash.extension</a> with parameters of type <a href="../FlashRegistrar.html" title="class in dev.relism.flash.extension">FlashRegistrar</a></span></div>
<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"><code>default void</code></div>
<div class="col-second even-row-color"><span class="type-name-label">FlashExtension.</span><code><a href="../FlashExtension.html#routes(dev.relism.flash.extension.FlashRegistrar,dev.relism.flash.extension.FlashContext)" class="member-name-link">routes</a><wbr>(<a href="../FlashRegistrar.html" title="class in dev.relism.flash.extension">FlashRegistrar</a>&lt;?&gt;&nbsp;app,
<a href="../FlashContext.html" title="class in dev.relism.flash.extension">FlashContext</a>&nbsp;ctx)</code></div>
<div class="col-last even-row-color">
<div class="block">Phase 2 — register routes.</div>
</div>
</div>
</section>
</li>
</ul>
</section>
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,90 @@
<!DOCTYPE HTML>
<html lang>
<head>
<!-- Generated by javadoc (21) on Tue May 12 13:57:37 UTC 2026 -->
<title>Uses of Class dev.relism.flash.extension.FlashScope (flash-parent 2.0.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2026-05-12">
<meta name="description" content="use: package: dev.relism.flash.extension, class: FlashScope">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-use-page">
<script type="text/javascript">var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><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 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><a href="../package-summary.html">Package</a></li>
<li><a href="../FlashScope.html" title="class in dev.relism.flash.extension">Class</a></li>
<li class="nav-bar-cell1-rev">Use</li>
<li><a href="../package-tree.html">Tree</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html#use">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list"></div>
<div class="nav-list-search"><a href="../../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="Uses of Class dev.relism.flash.extension.FlashScope" class="title">Uses of Class<br>dev.relism.flash.extension.FlashScope</h1>
</div>
<div class="caption"><span>Packages that use <a href="../FlashScope.html" title="class in dev.relism.flash.extension">FlashScope</a></span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="#dev.relism.flash.extension">dev.relism.flash.extension</a></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
<section class="class-uses">
<ul class="block-list">
<li>
<section class="detail" id="dev.relism.flash.extension">
<h2>Uses of <a href="../FlashScope.html" title="class in dev.relism.flash.extension">FlashScope</a> in <a href="../package-summary.html">dev.relism.flash.extension</a></h2>
<div class="caption"><span>Method parameters in <a href="../package-summary.html">dev.relism.flash.extension</a> with type arguments of type <a href="../FlashScope.html" title="class in dev.relism.flash.extension">FlashScope</a></span></div>
<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"><code><a href="../FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a></code></div>
<div class="col-second even-row-color"><span class="type-name-label">FlashApp.</span><code><a href="../FlashApp.html#mount(java.lang.String,java.util.function.Consumer)" class="member-name-link">mount</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;namespace,
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/function/Consumer.html" title="class or interface in java.util.function" class="external-link">Consumer</a>&lt;<a href="../FlashScope.html" title="class in dev.relism.flash.extension">FlashScope</a>&gt;&nbsp;configure)</code></div>
<div class="col-last even-row-color">
<div class="block">Mounts a scoped group of routes under <code>namespace</code>.</div>
</div>
</div>
</section>
</li>
</ul>
</section>
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,89 @@
<!DOCTYPE HTML>
<html lang>
<head>
<!-- Generated by javadoc (21) on Tue May 12 13:57:37 UTC 2026 -->
<title>Uses of Record Class dev.relism.flash.extension.RouteEvent (flash-parent 2.0.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2026-05-12">
<meta name="description" content="use: package: dev.relism.flash.extension, record: RouteEvent">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-use-page">
<script type="text/javascript">var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><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 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><a href="../package-summary.html">Package</a></li>
<li><a href="../RouteEvent.html" title="class in dev.relism.flash.extension">Class</a></li>
<li class="nav-bar-cell1-rev">Use</li>
<li><a href="../package-tree.html">Tree</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html#use">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list"></div>
<div class="nav-list-search"><a href="../../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="Uses of Record Class dev.relism.flash.extension.RouteEvent" class="title">Uses of Record Class<br>dev.relism.flash.extension.RouteEvent</h1>
</div>
<div class="caption"><span>Packages that use <a href="../RouteEvent.html" title="class in dev.relism.flash.extension">RouteEvent</a></span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="#dev.relism.flash.extension">dev.relism.flash.extension</a></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
<section class="class-uses">
<ul class="block-list">
<li>
<section class="detail" id="dev.relism.flash.extension">
<h2>Uses of <a href="../RouteEvent.html" title="class in dev.relism.flash.extension">RouteEvent</a> in <a href="../package-summary.html">dev.relism.flash.extension</a></h2>
<div class="caption"><span>Methods in <a href="../package-summary.html">dev.relism.flash.extension</a> with parameters of type <a href="../RouteEvent.html" title="class in dev.relism.flash.extension">RouteEvent</a></span></div>
<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"><code>void</code></div>
<div class="col-second even-row-color"><span class="type-name-label">RouteListener.</span><code><a href="../RouteListener.html#onRoute(dev.relism.flash.extension.RouteEvent)" class="member-name-link">onRoute</a><wbr>(<a href="../RouteEvent.html" title="class in dev.relism.flash.extension">RouteEvent</a>&nbsp;event)</code></div>
<div class="col-last even-row-color">
<div class="block">Called once for every registered route, in registration order.</div>
</div>
</div>
</section>
</li>
</ul>
</section>
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,89 @@
<!DOCTYPE HTML>
<html lang>
<head>
<!-- Generated by javadoc (21) on Tue May 12 13:57:37 UTC 2026 -->
<title>Uses of Interface dev.relism.flash.extension.RouteListener (flash-parent 2.0.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2026-05-12">
<meta name="description" content="use: package: dev.relism.flash.extension, interface: RouteListener">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-use-page">
<script type="text/javascript">var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><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 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><a href="../package-summary.html">Package</a></li>
<li><a href="../RouteListener.html" title="interface in dev.relism.flash.extension">Class</a></li>
<li class="nav-bar-cell1-rev">Use</li>
<li><a href="../package-tree.html">Tree</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html#use">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list"></div>
<div class="nav-list-search"><a href="../../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="Uses of Interface dev.relism.flash.extension.RouteListener" class="title">Uses of Interface<br>dev.relism.flash.extension.RouteListener</h1>
</div>
<div class="caption"><span>Packages that use <a href="../RouteListener.html" title="interface in dev.relism.flash.extension">RouteListener</a></span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="#dev.relism.flash.extension">dev.relism.flash.extension</a></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
<section class="class-uses">
<ul class="block-list">
<li>
<section class="detail" id="dev.relism.flash.extension">
<h2>Uses of <a href="../RouteListener.html" title="interface in dev.relism.flash.extension">RouteListener</a> in <a href="../package-summary.html">dev.relism.flash.extension</a></h2>
<div class="caption"><span>Methods in <a href="../package-summary.html">dev.relism.flash.extension</a> with parameters of type <a href="../RouteListener.html" title="interface in dev.relism.flash.extension">RouteListener</a></span></div>
<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"><code>void</code></div>
<div class="col-second even-row-color"><span class="type-name-label">FlashContext.</span><code><a href="../FlashContext.html#addRouteListener(dev.relism.flash.extension.RouteListener)" class="member-name-link">addRouteListener</a><wbr>(<a href="../RouteListener.html" title="interface in dev.relism.flash.extension">RouteListener</a>&nbsp;listener)</code></div>
<div class="col-last even-row-color">
<div class="block">Registers a boot-time <a href="../RouteListener.html" title="interface in dev.relism.flash.extension"><code>RouteListener</code></a>.</div>
</div>
</div>
</section>
</li>
</ul>
</section>
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,158 @@
<!DOCTYPE HTML>
<html lang>
<head>
<!-- Generated by javadoc (21) on Tue May 12 13:57:37 UTC 2026 -->
<title>dev.relism.flash.extension (flash-parent 2.0.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2026-05-12">
<meta name="description" content="declaration: package: dev.relism.flash.extension">
<meta name="generator" content="javadoc/PackageWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="package-declaration-page">
<script type="text/javascript">var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><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 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">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html#package">Help</a></li>
</ul>
<ul class="sub-nav-list-small">
<li>
<p>Package:</p>
<ul>
<li>Description</li>
<li><a href="#related-package-summary">Related Packages</a></li>
<li><a href="#class-summary">Classes and Interfaces</a></li>
</ul>
</li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list">
<ul class="sub-nav-list">
<li>Package:&nbsp;</li>
<li>Description&nbsp;|&nbsp;</li>
<li><a href="#related-package-summary">Related Packages</a>&nbsp;|&nbsp;</li>
<li><a href="#class-summary">Classes and Interfaces</a></li>
</ul>
</div>
<div class="nav-list-search"><a href="../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="Package dev.relism.flash.extension" class="title">Package dev.relism.flash.extension</h1>
</div>
<hr>
<div class="package-signature">package <span class="element-name">dev.relism.flash.extension</span></div>
<section class="summary">
<ul class="summary-list">
<li>
<div id="related-package-summary">
<div class="caption"><span>Related Packages</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="../package-summary.html">dev.relism.flash</a></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><a href="../exceptions/package-summary.html">dev.relism.flash.exceptions</a></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><a href="../http/package-summary.html">dev.relism.flash.http</a></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><a href="../models/package-summary.html">dev.relism.flash.models</a></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><a href="../routing/package-summary.html">dev.relism.flash.routing</a></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><a href="../template/package-summary.html">dev.relism.flash.template</a></div>
<div class="col-last odd-row-color">&nbsp;</div>
</div>
</div>
</li>
<li>
<div id="class-summary">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="class-summary-tab0" role="tab" aria-selected="true" aria-controls="class-summary.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary', 2)" class="active-table-tab">All Classes and Interfaces</button><button id="class-summary-tab1" role="tab" aria-selected="false" aria-controls="class-summary.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary-tab1', 2)" class="table-tab">Interfaces</button><button id="class-summary-tab2" role="tab" aria-selected="false" aria-controls="class-summary.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary-tab2', 2)" class="table-tab">Classes</button><button id="class-summary-tab3" role="tab" aria-selected="false" aria-controls="class-summary.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary-tab3', 2)" class="table-tab">Enum Classes</button><button id="class-summary-tab4" role="tab" aria-selected="false" aria-controls="class-summary.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary-tab4', 2)" class="table-tab">Record Classes</button></div>
<div id="class-summary.tabpanel" role="tabpanel" aria-labelledby="class-summary-tab0">
<div class="summary-table two-column-summary">
<div class="table-header col-first">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color class-summary class-summary-tab1"><a href="AnnotationProcessor.html" title="interface in dev.relism.flash.extension">AnnotationProcessor</a></div>
<div class="col-last even-row-color class-summary class-summary-tab1">
<div class="block">Inspects a handler class at registration time and returns zero or more
<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing"><code>middlewares</code></a> to inject automatically.</div>
</div>
<div class="col-first odd-row-color class-summary class-summary-tab3"><a href="ExtensionPhase.html" title="enum class in dev.relism.flash.extension">ExtensionPhase</a></div>
<div class="col-last odd-row-color class-summary class-summary-tab3">
<div class="block">Semantic execution phases for <a href="FlashExtension.html#priority()"><code>FlashExtension.priority()</code></a>.</div>
</div>
<div class="col-first even-row-color class-summary class-summary-tab2"><a href="FlashApp.html" title="class in dev.relism.flash.extension">FlashApp</a></div>
<div class="col-last even-row-color class-summary class-summary-tab2">
<div class="block">Single entry point for Flash.</div>
</div>
<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="FlashConfiguration.html" title="class in dev.relism.flash.extension">FlashConfiguration</a></div>
<div class="col-last odd-row-color class-summary class-summary-tab2">
<div class="block">Configuration for a <a href="FlashApp.html" title="class in dev.relism.flash.extension"><code>FlashApp</code></a> instance.</div>
</div>
<div class="col-first even-row-color class-summary class-summary-tab2"><a href="FlashContext.html" title="class in dev.relism.flash.extension">FlashContext</a></div>
<div class="col-last even-row-color class-summary class-summary-tab2">
<div class="block">Central service registry and boot-time hook coordinator.</div>
</div>
<div class="col-first odd-row-color class-summary class-summary-tab1"><a href="FlashExtension.html" title="interface in dev.relism.flash.extension">FlashExtension</a></div>
<div class="col-last odd-row-color class-summary class-summary-tab1">
<div class="block">Two-phase contract for all Flash extensions.</div>
</div>
<div class="col-first even-row-color class-summary class-summary-tab2"><a href="FlashRegistrar.html" title="class in dev.relism.flash.extension">FlashRegistrar</a>&lt;SELF extends <a href="FlashRegistrar.html" title="class in dev.relism.flash.extension">FlashRegistrar</a>&lt;SELF&gt;&gt;</div>
<div class="col-last even-row-color class-summary class-summary-tab2">
<div class="block">Common route-registration surface shared by <a href="FlashApp.html" title="class in dev.relism.flash.extension"><code>FlashApp</code></a> and <a href="FlashScope.html" title="class in dev.relism.flash.extension"><code>FlashScope</code></a>.</div>
</div>
<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="FlashScope.html" title="class in dev.relism.flash.extension">FlashScope</a></div>
<div class="col-last odd-row-color class-summary class-summary-tab2">
<div class="block">Scoped builder for namespace-prefixed routes.</div>
</div>
<div class="col-first even-row-color class-summary class-summary-tab4"><a href="RouteEvent.html" title="class in dev.relism.flash.extension">RouteEvent</a></div>
<div class="col-last even-row-color class-summary class-summary-tab4">
<div class="block">Immutable snapshot of a route captured at registration time.</div>
</div>
<div class="col-first odd-row-color class-summary class-summary-tab1"><a href="RouteListener.html" title="interface in dev.relism.flash.extension">RouteListener</a></div>
<div class="col-last odd-row-color class-summary class-summary-tab1">
<div class="block">Observer notified once for each route registered on a <a href="FlashApp.html" title="class in dev.relism.flash.extension"><code>FlashApp</code></a> or <a href="FlashScope.html" title="class in dev.relism.flash.extension"><code>FlashScope</code></a>.</div>
</div>
</div>
</div>
</div>
</li>
</ul>
</section>
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,119 @@
<!DOCTYPE HTML>
<html lang>
<head>
<!-- Generated by javadoc (21) on Tue May 12 13:57:37 UTC 2026 -->
<title>dev.relism.flash.extension Class Hierarchy (flash-parent 2.0.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2026-05-12">
<meta name="description" content="tree: package: dev.relism.flash.extension">
<meta name="generator" content="javadoc/PackageTreeWriter">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="package-tree-page">
<script type="text/javascript">var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><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 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><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li>Use</li>
<li class="nav-bar-cell1-rev">Tree</li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html#tree">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list"></div>
<div class="nav-list-search"><a href="../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 class="title">Hierarchy For Package dev.relism.flash.extension</h1>
</div>
<span class="package-hierarchy-label">Package Hierarchies:</span>
<ul class="horizontal contents-list">
<li><a href="../../../../overview-tree.html">All Packages</a></li>
</ul>
<section class="hierarchy">
<h2 title="Class Hierarchy">Class Hierarchy</h2>
<ul>
<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html" class="type-name-link external-link" title="class or interface in java.lang">Object</a>
<ul>
<li class="circle">dev.relism.flash.extension.<a href="FlashConfiguration.html" class="type-name-link" title="class in dev.relism.flash.extension">FlashConfiguration</a></li>
<li class="circle">dev.relism.flash.extension.<a href="FlashContext.html" class="type-name-link" title="class in dev.relism.flash.extension">FlashContext</a></li>
<li class="circle">dev.relism.flash.extension.<a href="FlashRegistrar.html" class="type-name-link" title="class in dev.relism.flash.extension">FlashRegistrar</a>&lt;SELF&gt;
<ul>
<li class="circle">dev.relism.flash.extension.<a href="FlashApp.html" class="type-name-link" title="class in dev.relism.flash.extension">FlashApp</a></li>
<li class="circle">dev.relism.flash.extension.<a href="FlashScope.html" class="type-name-link" title="class in dev.relism.flash.extension">FlashScope</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</section>
<section class="hierarchy">
<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
<ul>
<li class="circle">dev.relism.flash.extension.<a href="AnnotationProcessor.html" class="type-name-link" title="interface in dev.relism.flash.extension">AnnotationProcessor</a></li>
<li class="circle">dev.relism.flash.extension.<a href="FlashExtension.html" class="type-name-link" title="interface in dev.relism.flash.extension">FlashExtension</a></li>
<li class="circle">dev.relism.flash.extension.<a href="RouteListener.html" class="type-name-link" title="interface in dev.relism.flash.extension">RouteListener</a></li>
</ul>
</section>
<section class="hierarchy">
<h2 title="Enum Class Hierarchy">Enum Class Hierarchy</h2>
<ul>
<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html" class="type-name-link external-link" title="class or interface in java.lang">Object</a>
<ul>
<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Enum.html" class="type-name-link external-link" title="class or interface in java.lang">Enum</a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a>&lt;T&gt;, java.lang.constant.<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/constant/Constable.html" title="class or interface in java.lang.constant" class="external-link">Constable</a>, java.io.<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a>)
<ul>
<li class="circle">dev.relism.flash.extension.<a href="ExtensionPhase.html" class="type-name-link" title="enum class in dev.relism.flash.extension">ExtensionPhase</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</section>
<section class="hierarchy">
<h2 title="Record Class Hierarchy">Record Class Hierarchy</h2>
<ul>
<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html" class="type-name-link external-link" title="class or interface in java.lang">Object</a>
<ul>
<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Record.html" class="type-name-link external-link" title="class or interface in java.lang">Record</a>
<ul>
<li class="circle">dev.relism.flash.extension.<a href="RouteEvent.html" class="type-name-link" title="class in dev.relism.flash.extension">RouteEvent</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</section>
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,153 @@
<!DOCTYPE HTML>
<html lang>
<head>
<!-- Generated by javadoc (21) on Tue May 12 13:57:37 UTC 2026 -->
<title>Uses of Package dev.relism.flash.extension (flash-parent 2.0.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2026-05-12">
<meta name="description" content="use: package: dev.relism.flash.extension">
<meta name="generator" content="javadoc/PackageUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="package-use-page">
<script type="text/javascript">var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><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 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><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li class="nav-bar-cell1-rev">Use</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html#use">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list"></div>
<div class="nav-list-search"><a href="../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="Uses of Package dev.relism.flash.extension" class="title">Uses of Package<br>dev.relism.flash.extension</h1>
</div>
<div class="caption"><span>Packages that use <a href="package-summary.html">dev.relism.flash.extension</a></span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="#dev.relism.flash">dev.relism.flash</a></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><a href="#dev.relism.flash.extension">dev.relism.flash.extension</a></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><a href="#dev.relism.flash.models">dev.relism.flash.models</a></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
<section class="package-uses">
<ul class="block-list">
<li>
<section class="detail" id="dev.relism.flash">
<div class="caption"><span>Classes in <a href="package-summary.html">dev.relism.flash.extension</a> used by <a href="../package-summary.html">dev.relism.flash</a></span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="class-use/FlashConfiguration.html#dev.relism.flash">FlashConfiguration</a></div>
<div class="col-last even-row-color">
<div class="block">Configuration for a <a href="FlashApp.html" title="class in dev.relism.flash.extension"><code>FlashApp</code></a> instance.</div>
</div>
</div>
</section>
</li>
<li>
<section class="detail" id="dev.relism.flash.extension">
<div class="caption"><span>Classes in <a href="package-summary.html">dev.relism.flash.extension</a> used by <a href="package-summary.html">dev.relism.flash.extension</a></span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="class-use/AnnotationProcessor.html#dev.relism.flash.extension">AnnotationProcessor</a></div>
<div class="col-last even-row-color">
<div class="block">Inspects a handler class at registration time and returns zero or more
<a href="../routing/Middleware.html" title="interface in dev.relism.flash.routing"><code>middlewares</code></a> to inject automatically.</div>
</div>
<div class="col-first odd-row-color"><a href="class-use/ExtensionPhase.html#dev.relism.flash.extension">ExtensionPhase</a></div>
<div class="col-last odd-row-color">
<div class="block">Semantic execution phases for <a href="FlashExtension.html#priority()"><code>FlashExtension.priority()</code></a>.</div>
</div>
<div class="col-first even-row-color"><a href="class-use/FlashApp.html#dev.relism.flash.extension">FlashApp</a></div>
<div class="col-last even-row-color">
<div class="block">Single entry point for Flash.</div>
</div>
<div class="col-first odd-row-color"><a href="class-use/FlashConfiguration.html#dev.relism.flash.extension">FlashConfiguration</a></div>
<div class="col-last odd-row-color">
<div class="block">Configuration for a <a href="FlashApp.html" title="class in dev.relism.flash.extension"><code>FlashApp</code></a> instance.</div>
</div>
<div class="col-first even-row-color"><a href="class-use/FlashContext.html#dev.relism.flash.extension">FlashContext</a></div>
<div class="col-last even-row-color">
<div class="block">Central service registry and boot-time hook coordinator.</div>
</div>
<div class="col-first odd-row-color"><a href="class-use/FlashExtension.html#dev.relism.flash.extension">FlashExtension</a></div>
<div class="col-last odd-row-color">
<div class="block">Two-phase contract for all Flash extensions.</div>
</div>
<div class="col-first even-row-color"><a href="class-use/FlashRegistrar.html#dev.relism.flash.extension">FlashRegistrar</a></div>
<div class="col-last even-row-color">
<div class="block">Common route-registration surface shared by <a href="FlashApp.html" title="class in dev.relism.flash.extension"><code>FlashApp</code></a> and <a href="FlashScope.html" title="class in dev.relism.flash.extension"><code>FlashScope</code></a>.</div>
</div>
<div class="col-first odd-row-color"><a href="class-use/FlashScope.html#dev.relism.flash.extension">FlashScope</a></div>
<div class="col-last odd-row-color">
<div class="block">Scoped builder for namespace-prefixed routes.</div>
</div>
<div class="col-first even-row-color"><a href="class-use/RouteEvent.html#dev.relism.flash.extension">RouteEvent</a></div>
<div class="col-last even-row-color">
<div class="block">Immutable snapshot of a route captured at registration time.</div>
</div>
<div class="col-first odd-row-color"><a href="class-use/RouteListener.html#dev.relism.flash.extension">RouteListener</a></div>
<div class="col-last odd-row-color">
<div class="block">Observer notified once for each route registered on a <a href="FlashApp.html" title="class in dev.relism.flash.extension"><code>FlashApp</code></a> or <a href="FlashScope.html" title="class in dev.relism.flash.extension"><code>FlashScope</code></a>.</div>
</div>
</div>
</section>
</li>
<li>
<section class="detail" id="dev.relism.flash.models">
<div class="caption"><span>Classes in <a href="package-summary.html">dev.relism.flash.extension</a> used by <a href="../models/package-summary.html">dev.relism.flash.models</a></span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="class-use/FlashContext.html#dev.relism.flash.models">FlashContext</a></div>
<div class="col-last even-row-color">
<div class="block">Central service registry and boot-time hook coordinator.</div>
</div>
</div>
</section>
</li>
</ul>
</section>
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2026. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>