blob: 08a949aa7c7bcf1832040a9370176b5e13390b7c [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>ProtonScanningContext (Qpid ProtonJ2 Parent 1.0.0-M18 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="description" content="declaration: package: org.apache.qpid.protonj2.codec.decoders, class: ProtonScanningContext">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
</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">
<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/ProtonScanningContext.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<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>
<!-- ========= 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">org.apache.qpid.protonj2.codec.decoders</a></div>
<h1 title="Class ProtonScanningContext" class="title">Class ProtonScanningContext&lt;Type&gt;</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">org.apache.qpid.protonj2.codec.decoders.ProtonScanningContext&lt;Type&gt;</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="ScanningContext.html" title="interface in org.apache.qpid.protonj2.codec.decoders">ScanningContext</a>&lt;Type&gt;</code>, <code><a href="StreamScanningContext.html" title="interface in org.apache.qpid.protonj2.codec.decoders">StreamScanningContext</a>&lt;Type&gt;</code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">ProtonScanningContext&lt;Type&gt;</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>
implements <a href="ScanningContext.html" title="interface in org.apache.qpid.protonj2.codec.decoders">ScanningContext</a>&lt;Type&gt;, <a href="StreamScanningContext.html" title="interface in org.apache.qpid.protonj2.codec.decoders">StreamScanningContext</a>&lt;Type&gt;</span></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(java.lang.Class,java.util.List,java.util.List)" class="member-name-link">ProtonScanningContext</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;?&gt;&nbsp;expectedType,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="ProtonScanningContext.html" title="type parameter in ProtonScanningContext">Type</a>&gt;&nbsp;entries,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&gt;&nbsp;encodedEntries)</code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-constructor-name odd-row-color"><code><a href="#%3Cinit%3E(java.lang.Class,Type,org.apache.qpid.protonj2.buffer.ProtonBuffer)" class="member-name-link">ProtonScanningContext</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;?&gt;&nbsp;expectedType,
<a href="ProtonScanningContext.html" title="type parameter in ProtonScanningContext">Type</a>&nbsp;entry,
<a href="../../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;encodedEntry)</code></div>
<div class="col-last odd-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-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">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<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="ProtonScanningContext.html" title="class in org.apache.qpid.protonj2.codec.decoders">ProtonScanningContext</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#createStringScanContext(java.lang.String...)" class="member-name-link">createStringScanContext</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>...&nbsp;entries)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Creates a new scanning context for the given collection of <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link"><code>String</code></a> values.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="ProtonScanningContext.html" title="class in org.apache.qpid.protonj2.codec.decoders">ProtonScanningContext</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#createStringScanContext(java.util.Collection)" class="member-name-link">createStringScanContext</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Collection.html" title="class or interface in java.util" class="external-link">Collection</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;&nbsp;entries)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Creates a new scanning context for the given collection of <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link"><code>String</code></a> values.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="ProtonScanningContext.html" title="class in org.apache.qpid.protonj2.codec.decoders">ProtonScanningContext</a>&lt;<a href="../../types/Symbol.html" title="class in org.apache.qpid.protonj2.types">Symbol</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#createSymbolScanContext(java.util.Collection)" class="member-name-link">createSymbolScanContext</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Collection.html" title="class or interface in java.util" class="external-link">Collection</a>&lt;<a href="../../types/Symbol.html" title="class in org.apache.qpid.protonj2.types">Symbol</a>&gt;&nbsp;entries)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Creates a new scanning context for the given collection of <a href="../../types/Symbol.html" title="class in org.apache.qpid.protonj2.types"><code>Symbol</code></a> values.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="ProtonScanningContext.html" title="class in org.apache.qpid.protonj2.codec.decoders">ProtonScanningContext</a>&lt;<a href="../../types/Symbol.html" title="class in org.apache.qpid.protonj2.types">Symbol</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#createSymbolScanContext(org.apache.qpid.protonj2.types.Symbol...)" class="member-name-link">createSymbolScanContext</a><wbr>(<a href="../../types/Symbol.html" title="class in org.apache.qpid.protonj2.types">Symbol</a>...&nbsp;entries)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Creates a new scanning context for the given collection of <a href="../../types/Symbol.html" title="class in org.apache.qpid.protonj2.types"><code>Symbol</code></a> values.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isComplete()" class="member-name-link">isComplete</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Allows for the scanner to optimize reading of encoded data by determining if
the target of the matching context has been found in which case the scanner
can consume any remaining encoded bytes without regard for the matcher.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#matches(org.apache.qpid.protonj2.codec.StreamTypeDecoder,java.io.InputStream,int,java.util.function.Consumer)" class="member-name-link">matches</a><wbr>(<a href="../StreamTypeDecoder.html" title="interface in org.apache.qpid.protonj2.codec">StreamTypeDecoder</a>&lt;?&gt;&nbsp;typeDecoder,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/InputStream.html" title="class or interface in java.io" class="external-link">InputStream</a>&nbsp;stream,
int&nbsp;encodedSize,
<a href="https://docs.oracle.com/en/java/javase/11/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="ProtonScanningContext.html" title="type parameter in ProtonScanningContext">Type</a>&gt;&nbsp;matchConsumer)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns true if the encoded entry bytes match against the search domain
of the scan matching context and calls the provided match <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/function/Consumer.html" title="class or interface in java.util.function" class="external-link"><code>Consumer</code></a>
with the original unencoded form of the matched entry.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#matches(org.apache.qpid.protonj2.codec.TypeDecoder,org.apache.qpid.protonj2.buffer.ProtonBuffer,int,java.util.function.Consumer)" class="member-name-link">matches</a><wbr>(<a href="../TypeDecoder.html" title="interface in org.apache.qpid.protonj2.codec">TypeDecoder</a>&lt;?&gt;&nbsp;typeDecoder,
<a href="../../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;candidate,
int&nbsp;candidateLength,
<a href="https://docs.oracle.com/en/java/javase/11/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="ProtonScanningContext.html" title="type parameter in ProtonScanningContext">Type</a>&gt;&nbsp;matchConsumer)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns true if the encoded entry bytes match against the search domain
of the scan matching context and calls the provided match <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/function/Consumer.html" title="class or interface in java.util.function" class="external-link"><code>Consumer</code></a>
with the original unencoded form of the matched entry.</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="#reset()" class="member-name-link">reset</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Reset the context to its original state at the end of a complete scan
which should allow the context to be used again when a new scan is
started (e.g.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(java.lang.Class,Type,org.apache.qpid.protonj2.buffer.ProtonBuffer)">
<h3 id="&lt;init&gt;(java.lang.Class,java.lang.Object,org.apache.qpid.protonj2.buffer.ProtonBuffer)">ProtonScanningContext</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">ProtonScanningContext</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;?&gt;&nbsp;expectedType,
<a href="ProtonScanningContext.html" title="type parameter in ProtonScanningContext">Type</a>&nbsp;entry,
<a href="../../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;encodedEntry)</span></div>
</section>
</li>
<li>
<section class="detail" id="&lt;init&gt;(java.lang.Class,java.util.List,java.util.List)">
<h3>ProtonScanningContext</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">ProtonScanningContext</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;?&gt;&nbsp;expectedType,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="ProtonScanningContext.html" title="type parameter in ProtonScanningContext">Type</a>&gt;&nbsp;entries,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&gt;&nbsp;encodedEntries)</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="reset()">
<h3>reset</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">reset</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ScanningContext.html#reset()">ScanningContext</a></code></span></div>
<div class="block">Reset the context to its original state at the end of a complete scan
which should allow the context to be used again when a new scan is
started (e.g. <a href="ScanningContext.html#isComplete()"><code>ScanningContext.isComplete()</code></a> should start returning false).</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ScanningContext.html#reset()">reset</a></code>&nbsp;in interface&nbsp;<code><a href="ScanningContext.html" title="interface in org.apache.qpid.protonj2.codec.decoders">ScanningContext</a>&lt;<a href="ProtonScanningContext.html" title="type parameter in ProtonScanningContext">Type</a>&gt;</code></dd>
<dt>Specified by:</dt>
<dd><code><a href="StreamScanningContext.html#reset()">reset</a></code>&nbsp;in interface&nbsp;<code><a href="StreamScanningContext.html" title="interface in org.apache.qpid.protonj2.codec.decoders">StreamScanningContext</a>&lt;<a href="ProtonScanningContext.html" title="type parameter in ProtonScanningContext">Type</a>&gt;</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isComplete()">
<h3>isComplete</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isComplete</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ScanningContext.html#isComplete()">ScanningContext</a></code></span></div>
<div class="block">Allows for the scanner to optimize reading of encoded data by determining if
the target of the matching context has been found in which case the scanner
can consume any remaining encoded bytes without regard for the matcher. In
this state any call to <a href="ScanningContext.html#matches(org.apache.qpid.protonj2.codec.TypeDecoder,org.apache.qpid.protonj2.buffer.ProtonBuffer,int,java.util.function.Consumer)"><code>ScanningContext.matches(TypeDecoder, ProtonBuffer, int, Consumer)</code></a>
should return false as the target has already been found.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ScanningContext.html#isComplete()">isComplete</a></code>&nbsp;in interface&nbsp;<code><a href="ScanningContext.html" title="interface in org.apache.qpid.protonj2.codec.decoders">ScanningContext</a>&lt;<a href="ProtonScanningContext.html" title="type parameter in ProtonScanningContext">Type</a>&gt;</code></dd>
<dt>Specified by:</dt>
<dd><code><a href="StreamScanningContext.html#isComplete()">isComplete</a></code>&nbsp;in interface&nbsp;<code><a href="StreamScanningContext.html" title="interface in org.apache.qpid.protonj2.codec.decoders">StreamScanningContext</a>&lt;<a href="ProtonScanningContext.html" title="type parameter in ProtonScanningContext">Type</a>&gt;</code></dd>
<dt>Returns:</dt>
<dd>true if the target of the matching context has already been found.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="matches(org.apache.qpid.protonj2.codec.TypeDecoder,org.apache.qpid.protonj2.buffer.ProtonBuffer,int,java.util.function.Consumer)">
<h3>matches</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">matches</span><wbr><span class="parameters">(<a href="../TypeDecoder.html" title="interface in org.apache.qpid.protonj2.codec">TypeDecoder</a>&lt;?&gt;&nbsp;typeDecoder,
<a href="../../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;candidate,
int&nbsp;candidateLength,
<a href="https://docs.oracle.com/en/java/javase/11/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="ProtonScanningContext.html" title="type parameter in ProtonScanningContext">Type</a>&gt;&nbsp;matchConsumer)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ScanningContext.html#matches(org.apache.qpid.protonj2.codec.TypeDecoder,org.apache.qpid.protonj2.buffer.ProtonBuffer,int,java.util.function.Consumer)">ScanningContext</a></code></span></div>
<div class="block">Returns true if the encoded entry bytes match against the search domain
of the scan matching context and calls the provided match <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/function/Consumer.html" title="class or interface in java.util.function" class="external-link"><code>Consumer</code></a>
with the original unencoded form of the matched entry. The caller must
provide the size of the encoded value being checked to allow for pass of
the source bytes without copying which could contain more entries following
the candidate value in question.
<p>
The matcher must not alter the read offset of the provided buffer, doing so
can corrupt the buffer state and likely cause decode exceptions on follow
on decode operations.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ScanningContext.html#matches(org.apache.qpid.protonj2.codec.TypeDecoder,org.apache.qpid.protonj2.buffer.ProtonBuffer,int,java.util.function.Consumer)">matches</a></code>&nbsp;in interface&nbsp;<code><a href="ScanningContext.html" title="interface in org.apache.qpid.protonj2.codec.decoders">ScanningContext</a>&lt;<a href="ProtonScanningContext.html" title="type parameter in ProtonScanningContext">Type</a>&gt;</code></dd>
<dt>Parameters:</dt>
<dd><code>typeDecoder</code> - The type decoder of the encoded type that is contained in the buffer.</dd>
<dd><code>candidate</code> - Buffer whose first read index is the start of the encoded bytes.</dd>
<dd><code>candidateLength</code> - The region of the candidate buffer that contains the encoded bytes</dd>
<dd><code>matchConsumer</code> - An optional consumer that should be called if a match is found.</dd>
<dt>Returns:</dt>
<dd>true if the candidate matches a target in the search domain.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="matches(org.apache.qpid.protonj2.codec.StreamTypeDecoder,java.io.InputStream,int,java.util.function.Consumer)">
<h3>matches</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">matches</span><wbr><span class="parameters">(<a href="../StreamTypeDecoder.html" title="interface in org.apache.qpid.protonj2.codec">StreamTypeDecoder</a>&lt;?&gt;&nbsp;typeDecoder,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/InputStream.html" title="class or interface in java.io" class="external-link">InputStream</a>&nbsp;stream,
int&nbsp;encodedSize,
<a href="https://docs.oracle.com/en/java/javase/11/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="ProtonScanningContext.html" title="type parameter in ProtonScanningContext">Type</a>&gt;&nbsp;matchConsumer)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="StreamScanningContext.html#matches(org.apache.qpid.protonj2.codec.StreamTypeDecoder,java.io.InputStream,int,java.util.function.Consumer)">StreamScanningContext</a></code></span></div>
<div class="block">Returns true if the encoded entry bytes match against the search domain
of the scan matching context and calls the provided match <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/function/Consumer.html" title="class or interface in java.util.function" class="external-link"><code>Consumer</code></a>
with the original unencoded form of the matched entry. The caller must
provide the size of the encoded value being checked to allow for pass of
the source bytes without copying which could contain more entries following
the candidate value in question.
<p>
The implementation must not consume the encoded bytes which requires that the
provided <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/InputStream.html" title="class or interface in java.io" class="external-link"><code>InputStream</code></a> support mark and reset of the stream position.
The implementation should check for mark support in the provided stream and
throw an <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/UnsupportedOperationException.html" title="class or interface in java.lang" class="external-link"><code>UnsupportedOperationException</code></a> if it is not supported.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="StreamScanningContext.html#matches(org.apache.qpid.protonj2.codec.StreamTypeDecoder,java.io.InputStream,int,java.util.function.Consumer)">matches</a></code>&nbsp;in interface&nbsp;<code><a href="StreamScanningContext.html" title="interface in org.apache.qpid.protonj2.codec.decoders">StreamScanningContext</a>&lt;<a href="ProtonScanningContext.html" title="type parameter in ProtonScanningContext">Type</a>&gt;</code></dd>
<dt>Parameters:</dt>
<dd><code>typeDecoder</code> - The stream type decoder of the encoded type that is contained in the buffer.</dd>
<dd><code>stream</code> - Buffer whose first read index is the start of the encoded bytes.</dd>
<dd><code>encodedSize</code> - The region of the candidate buffer that contains the encoded bytes</dd>
<dd><code>matchConsumer</code> - An optional consumer that should be called if a match is found.</dd>
<dt>Returns:</dt>
<dd>true if the candidate matches a target in the search domain.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="createStringScanContext(java.lang.String...)">
<h3>createStringScanContext</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="ProtonScanningContext.html" title="class in org.apache.qpid.protonj2.codec.decoders">ProtonScanningContext</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;</span>&nbsp;<span class="element-name">createStringScanContext</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>...&nbsp;entries)</span></div>
<div class="block">Creates a new scanning context for the given collection of <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link"><code>String</code></a> values.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>entries</code> - The <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link"><code>String</code></a> entries that will be scanned for in the encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link"><code>Map</code></a></dd>
<dt>Returns:</dt>
<dd>a <a href="StreamScanningContext.html" title="interface in org.apache.qpid.protonj2.codec.decoders"><code>StreamScanningContext</code></a> for the collection of string entries.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="createStringScanContext(java.util.Collection)">
<h3>createStringScanContext</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="ProtonScanningContext.html" title="class in org.apache.qpid.protonj2.codec.decoders">ProtonScanningContext</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;</span>&nbsp;<span class="element-name">createStringScanContext</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Collection.html" title="class or interface in java.util" class="external-link">Collection</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;&nbsp;entries)</span></div>
<div class="block">Creates a new scanning context for the given collection of <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link"><code>String</code></a> values.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>entries</code> - The <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link"><code>String</code></a> entries that will be scanned for in the encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link"><code>Map</code></a></dd>
<dt>Returns:</dt>
<dd>a <a href="StreamScanningContext.html" title="interface in org.apache.qpid.protonj2.codec.decoders"><code>StreamScanningContext</code></a> for the collection of string entries.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="createSymbolScanContext(org.apache.qpid.protonj2.types.Symbol...)">
<h3>createSymbolScanContext</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="ProtonScanningContext.html" title="class in org.apache.qpid.protonj2.codec.decoders">ProtonScanningContext</a>&lt;<a href="../../types/Symbol.html" title="class in org.apache.qpid.protonj2.types">Symbol</a>&gt;</span>&nbsp;<span class="element-name">createSymbolScanContext</span><wbr><span class="parameters">(<a href="../../types/Symbol.html" title="class in org.apache.qpid.protonj2.types">Symbol</a>...&nbsp;entries)</span></div>
<div class="block">Creates a new scanning context for the given collection of <a href="../../types/Symbol.html" title="class in org.apache.qpid.protonj2.types"><code>Symbol</code></a> values.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>entries</code> - The <a href="../../types/Symbol.html" title="class in org.apache.qpid.protonj2.types"><code>Symbol</code></a> entries that will be scanned for in the encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link"><code>Map</code></a></dd>
<dt>Returns:</dt>
<dd>a <a href="StreamScanningContext.html" title="interface in org.apache.qpid.protonj2.codec.decoders"><code>StreamScanningContext</code></a> for the collection of symbol entries.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="createSymbolScanContext(java.util.Collection)">
<h3>createSymbolScanContext</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="ProtonScanningContext.html" title="class in org.apache.qpid.protonj2.codec.decoders">ProtonScanningContext</a>&lt;<a href="../../types/Symbol.html" title="class in org.apache.qpid.protonj2.types">Symbol</a>&gt;</span>&nbsp;<span class="element-name">createSymbolScanContext</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Collection.html" title="class or interface in java.util" class="external-link">Collection</a>&lt;<a href="../../types/Symbol.html" title="class in org.apache.qpid.protonj2.types">Symbol</a>&gt;&nbsp;entries)</span></div>
<div class="block">Creates a new scanning context for the given collection of <a href="../../types/Symbol.html" title="class in org.apache.qpid.protonj2.types"><code>Symbol</code></a> values.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>entries</code> - The <a href="../../types/Symbol.html" title="class in org.apache.qpid.protonj2.types"><code>Symbol</code></a> entries that will be scanned for in the encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link"><code>Map</code></a></dd>
<dt>Returns:</dt>
<dd>a <a href="StreamScanningContext.html" title="interface in org.apache.qpid.protonj2.codec.decoders"><code>StreamScanningContext</code></a> for the collection of symbol entries.</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; 2023 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>