<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Uses of Class org.apache.qpid.protonj2.types.Decimal128 (Qpid ProtonJ2 Parent 1.0.0-M9 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="Uses of Class org.apache.qpid.protonj2.types.Decimal128 (Qpid ProtonJ2 Parent 1.0.0-M9 API)";
        }
    }
    catch(err) {
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="../package-summary.html">Package</a></li>
<li><a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Class</a></li>
<li class="navBarCell1Rev">Use</li>
<li><a href="../package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="header">
<h2 title="Uses of Class org.apache.qpid.protonj2.types.Decimal128" class="title">Uses of Class<br>org.apache.qpid.protonj2.types.Decimal128</h2>
</div>
<div class="classUseContainer">
<ul class="blockList">
<li class="blockList">
<table class="useSummary">
<caption><span>Packages that use <a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Package</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="#org.apache.qpid.protonj2.codec">org.apache.qpid.protonj2.codec</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="#org.apache.qpid.protonj2.codec.decoders">org.apache.qpid.protonj2.codec.decoders</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="#org.apache.qpid.protonj2.codec.decoders.primitives">org.apache.qpid.protonj2.codec.decoders.primitives</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="#org.apache.qpid.protonj2.codec.encoders">org.apache.qpid.protonj2.codec.encoders</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="#org.apache.qpid.protonj2.codec.encoders.primitives">org.apache.qpid.protonj2.codec.encoders.primitives</a></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<ul class="blockList">
<li class="blockList">
<section role="region"><a id="org.apache.qpid.protonj2.codec">
<!--   -->
</a>
<h3>Uses of <a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a> in <a href="../../codec/package-summary.html">org.apache.qpid.protonj2.codec</a></h3>
<table class="useSummary">
<caption><span>Methods in <a href="../../codec/package-summary.html">org.apache.qpid.protonj2.codec</a> that return <a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Decoder.</span><code><span class="memberNameLink"><a href="../../codec/Decoder.html#readDecimal128(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readDecimal128</a></span>&#8203;(<a href="../../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
              <a href="../../codec/DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types"><code>Decimal128</code></a> value from the given <a href="../../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">StreamDecoder.</span><code><span class="memberNameLink"><a href="../../codec/StreamDecoder.html#readDecimal128(java.io.InputStream,org.apache.qpid.protonj2.codec.StreamDecoderState)">readDecimal128</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;stream,
              <a href="../../codec/StreamDecoderState.html" title="interface in org.apache.qpid.protonj2.codec">StreamDecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types"><code>Decimal128</code></a> value from the given <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../../codec/package-summary.html">org.apache.qpid.protonj2.codec</a> with parameters of type <a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Encoder.</span><code><span class="memberNameLink"><a href="../../codec/Encoder.html#writeArray(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.EncoderState,org.apache.qpid.protonj2.types.Decimal128%5B%5D)">writeArray</a></span>&#8203;(<a href="../../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
          <a href="../../codec/EncoderState.html" title="interface in org.apache.qpid.protonj2.codec">EncoderState</a>&nbsp;state,
          <a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a>[]&nbsp;value)</code></th>
<td class="colLast">
<div class="block">Write the given array as with the proper array type encoding to the given buffer.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Encoder.</span><code><span class="memberNameLink"><a href="../../codec/Encoder.html#writeDecimal128(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.EncoderState,org.apache.qpid.protonj2.types.Decimal128)">writeDecimal128</a></span>&#8203;(<a href="../../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
               <a href="../../codec/EncoderState.html" title="interface in org.apache.qpid.protonj2.codec">EncoderState</a>&nbsp;state,
               <a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a>&nbsp;value)</code></th>
<td class="colLast">
<div class="block">Write a <a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types"><code>Decimal128</code></a> type encoding to the given buffer.</div>
</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.qpid.protonj2.codec.decoders">
<!--   -->
</a>
<h3>Uses of <a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a> in <a href="../../codec/decoders/package-summary.html">org.apache.qpid.protonj2.codec.decoders</a></h3>
<table class="useSummary">
<caption><span>Methods in <a href="../../codec/decoders/package-summary.html">org.apache.qpid.protonj2.codec.decoders</a> that return <a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">ProtonDecoder.</span><code><span class="memberNameLink"><a href="../../codec/decoders/ProtonDecoder.html#readDecimal128(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readDecimal128</a></span>&#8203;(<a href="../../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
              <a href="../../codec/DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">ProtonStreamDecoder.</span><code><span class="memberNameLink"><a href="../../codec/decoders/ProtonStreamDecoder.html#readDecimal128(java.io.InputStream,org.apache.qpid.protonj2.codec.StreamDecoderState)">readDecimal128</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;stream,
              <a href="../../codec/StreamDecoderState.html" title="interface in org.apache.qpid.protonj2.codec">StreamDecoderState</a>&nbsp;state)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.qpid.protonj2.codec.decoders.primitives">
<!--   -->
</a>
<h3>Uses of <a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a> in <a href="../../codec/decoders/primitives/package-summary.html">org.apache.qpid.protonj2.codec.decoders.primitives</a></h3>
<table class="useSummary">
<caption><span>Methods in <a href="../../codec/decoders/primitives/package-summary.html">org.apache.qpid.protonj2.codec.decoders.primitives</a> that return <a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Decimal128TypeDecoder.</span><code><span class="memberNameLink"><a href="../../codec/decoders/primitives/Decimal128TypeDecoder.html#readValue(java.io.InputStream,org.apache.qpid.protonj2.codec.StreamDecoderState)">readValue</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;stream,
         <a href="../../codec/StreamDecoderState.html" title="interface in org.apache.qpid.protonj2.codec">StreamDecoderState</a>&nbsp;state)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Decimal128TypeDecoder.</span><code><span class="memberNameLink"><a href="../../codec/decoders/primitives/Decimal128TypeDecoder.html#readValue(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readValue</a></span>&#8203;(<a href="../../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
         <a href="../../codec/DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../../codec/decoders/primitives/package-summary.html">org.apache.qpid.protonj2.codec.decoders.primitives</a> that return types with arguments of type <a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;<a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Decimal128TypeDecoder.</span><code><span class="memberNameLink"><a href="../../codec/decoders/primitives/Decimal128TypeDecoder.html#getTypeClass()">getTypeClass</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.qpid.protonj2.codec.encoders">
<!--   -->
</a>
<h3>Uses of <a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a> in <a href="../../codec/encoders/package-summary.html">org.apache.qpid.protonj2.codec.encoders</a></h3>
<table class="useSummary">
<caption><span>Methods in <a href="../../codec/encoders/package-summary.html">org.apache.qpid.protonj2.codec.encoders</a> with parameters of type <a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">ProtonEncoder.</span><code><span class="memberNameLink"><a href="../../codec/encoders/ProtonEncoder.html#writeArray(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.EncoderState,org.apache.qpid.protonj2.types.Decimal128%5B%5D)">writeArray</a></span>&#8203;(<a href="../../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
          <a href="../../codec/EncoderState.html" title="interface in org.apache.qpid.protonj2.codec">EncoderState</a>&nbsp;state,
          <a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a>[]&nbsp;value)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">ProtonEncoder.</span><code><span class="memberNameLink"><a href="../../codec/encoders/ProtonEncoder.html#writeDecimal128(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.EncoderState,org.apache.qpid.protonj2.types.Decimal128)">writeDecimal128</a></span>&#8203;(<a href="../../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
               <a href="../../codec/EncoderState.html" title="interface in org.apache.qpid.protonj2.codec">EncoderState</a>&nbsp;state,
               <a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a>&nbsp;value)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.qpid.protonj2.codec.encoders.primitives">
<!--   -->
</a>
<h3>Uses of <a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a> in <a href="../../codec/encoders/primitives/package-summary.html">org.apache.qpid.protonj2.codec.encoders.primitives</a></h3>
<table class="useSummary">
<caption><span>Methods in <a href="../../codec/encoders/primitives/package-summary.html">org.apache.qpid.protonj2.codec.encoders.primitives</a> that return types with arguments of type <a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;<a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Decimal128TypeEncoder.</span><code><span class="memberNameLink"><a href="../../codec/encoders/primitives/Decimal128TypeEncoder.html#getTypeClass()">getTypeClass</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../../codec/encoders/primitives/package-summary.html">org.apache.qpid.protonj2.codec.encoders.primitives</a> with parameters of type <a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Decimal128TypeEncoder.</span><code><span class="memberNameLink"><a href="../../codec/encoders/primitives/Decimal128TypeEncoder.html#writeType(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.EncoderState,org.apache.qpid.protonj2.types.Decimal128)">writeType</a></span>&#8203;(<a href="../../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
         <a href="../../codec/EncoderState.html" title="interface in org.apache.qpid.protonj2.codec">EncoderState</a>&nbsp;state,
         <a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a>&nbsp;value)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</section>
</li>
</ul>
</li>
</ul>
</div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="../package-summary.html">Package</a></li>
<li><a href="../Decimal128.html" title="class in org.apache.qpid.protonj2.types">Class</a></li>
<li class="navBarCell1Rev">Use</li>
<li><a href="../package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>
