<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>org.apache.qpid.protonj2.types.messaging Class Hierarchy (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="org.apache.qpid.protonj2.types.messaging Class Hierarchy (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>Class</li>
<li>Use</li>
<li class="navBarCell1Rev">Tree</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">
<h1 class="title">Hierarchy For Package org.apache.qpid.protonj2.types.messaging</h1>
<span class="packageHierarchyLabel">Package Hierarchies:</span>
<ul class="horizontal">
<li><a href="../../../../../../overview-tree.html">All Packages</a></li>
</ul>
</div>
<div class="contentContainer">
<section role="region">
<h2 title="Class Hierarchy">Class Hierarchy</h2>
<ul>
<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Object</span></a>
<ul>
<li class="circle">org.apache.qpid.protonj2.types.messaging.<a href="Accepted.html" title="class in org.apache.qpid.protonj2.types.messaging"><span class="typeNameLink">Accepted</span></a> (implements org.apache.qpid.protonj2.types.transport.<a href="../transport/DeliveryState.html" title="interface in org.apache.qpid.protonj2.types.transport">DeliveryState</a>, org.apache.qpid.protonj2.types.messaging.<a href="Outcome.html" title="interface in org.apache.qpid.protonj2.types.messaging">Outcome</a>)</li>
<li class="circle">org.apache.qpid.protonj2.types.messaging.<a href="AmqpSequence.html" title="class in org.apache.qpid.protonj2.types.messaging"><span class="typeNameLink">AmqpSequence</span></a>&lt;E&gt; (implements org.apache.qpid.protonj2.types.messaging.<a href="Section.html" title="interface in org.apache.qpid.protonj2.types.messaging">Section</a>&lt;E&gt;)</li>
<li class="circle">org.apache.qpid.protonj2.types.messaging.<a href="AmqpValue.html" title="class in org.apache.qpid.protonj2.types.messaging"><span class="typeNameLink">AmqpValue</span></a>&lt;E&gt; (implements org.apache.qpid.protonj2.types.messaging.<a href="Section.html" title="interface in org.apache.qpid.protonj2.types.messaging">Section</a>&lt;E&gt;)</li>
<li class="circle">org.apache.qpid.protonj2.types.messaging.<a href="ApplicationProperties.html" title="class in org.apache.qpid.protonj2.types.messaging"><span class="typeNameLink">ApplicationProperties</span></a> (implements org.apache.qpid.protonj2.types.messaging.<a href="Section.html" title="interface in org.apache.qpid.protonj2.types.messaging">Section</a>&lt;E&gt;)</li>
<li class="circle">org.apache.qpid.protonj2.types.messaging.<a href="Data.html" title="class in org.apache.qpid.protonj2.types.messaging"><span class="typeNameLink">Data</span></a> (implements org.apache.qpid.protonj2.types.messaging.<a href="Section.html" title="interface in org.apache.qpid.protonj2.types.messaging">Section</a>&lt;E&gt;)</li>
<li class="circle">org.apache.qpid.protonj2.types.messaging.<a href="DeleteOnClose.html" title="class in org.apache.qpid.protonj2.types.messaging"><span class="typeNameLink">DeleteOnClose</span></a> (implements org.apache.qpid.protonj2.types.messaging.<a href="LifetimePolicy.html" title="interface in org.apache.qpid.protonj2.types.messaging">LifetimePolicy</a>)</li>
<li class="circle">org.apache.qpid.protonj2.types.messaging.<a href="DeleteOnNoLinks.html" title="class in org.apache.qpid.protonj2.types.messaging"><span class="typeNameLink">DeleteOnNoLinks</span></a> (implements org.apache.qpid.protonj2.types.messaging.<a href="LifetimePolicy.html" title="interface in org.apache.qpid.protonj2.types.messaging">LifetimePolicy</a>)</li>
<li class="circle">org.apache.qpid.protonj2.types.messaging.<a href="DeleteOnNoLinksOrMessages.html" title="class in org.apache.qpid.protonj2.types.messaging"><span class="typeNameLink">DeleteOnNoLinksOrMessages</span></a> (implements org.apache.qpid.protonj2.types.messaging.<a href="LifetimePolicy.html" title="interface in org.apache.qpid.protonj2.types.messaging">LifetimePolicy</a>)</li>
<li class="circle">org.apache.qpid.protonj2.types.messaging.<a href="DeleteOnNoMessages.html" title="class in org.apache.qpid.protonj2.types.messaging"><span class="typeNameLink">DeleteOnNoMessages</span></a> (implements org.apache.qpid.protonj2.types.messaging.<a href="LifetimePolicy.html" title="interface in org.apache.qpid.protonj2.types.messaging">LifetimePolicy</a>)</li>
<li class="circle">org.apache.qpid.protonj2.types.messaging.<a href="DeliveryAnnotations.html" title="class in org.apache.qpid.protonj2.types.messaging"><span class="typeNameLink">DeliveryAnnotations</span></a> (implements org.apache.qpid.protonj2.types.messaging.<a href="Section.html" title="interface in org.apache.qpid.protonj2.types.messaging">Section</a>&lt;E&gt;)</li>
<li class="circle">org.apache.qpid.protonj2.types.messaging.<a href="Footer.html" title="class in org.apache.qpid.protonj2.types.messaging"><span class="typeNameLink">Footer</span></a> (implements org.apache.qpid.protonj2.types.messaging.<a href="Section.html" title="interface in org.apache.qpid.protonj2.types.messaging">Section</a>&lt;E&gt;)</li>
<li class="circle">org.apache.qpid.protonj2.types.messaging.<a href="Header.html" title="class in org.apache.qpid.protonj2.types.messaging"><span class="typeNameLink">Header</span></a> (implements org.apache.qpid.protonj2.types.messaging.<a href="Section.html" title="interface in org.apache.qpid.protonj2.types.messaging">Section</a>&lt;E&gt;)</li>
<li class="circle">org.apache.qpid.protonj2.types.messaging.<a href="MessageAnnotations.html" title="class in org.apache.qpid.protonj2.types.messaging"><span class="typeNameLink">MessageAnnotations</span></a> (implements org.apache.qpid.protonj2.types.messaging.<a href="Section.html" title="interface in org.apache.qpid.protonj2.types.messaging">Section</a>&lt;E&gt;)</li>
<li class="circle">org.apache.qpid.protonj2.types.messaging.<a href="Modified.html" title="class in org.apache.qpid.protonj2.types.messaging"><span class="typeNameLink">Modified</span></a> (implements org.apache.qpid.protonj2.types.transport.<a href="../transport/DeliveryState.html" title="interface in org.apache.qpid.protonj2.types.transport">DeliveryState</a>, org.apache.qpid.protonj2.types.messaging.<a href="Outcome.html" title="interface in org.apache.qpid.protonj2.types.messaging">Outcome</a>)</li>
<li class="circle">org.apache.qpid.protonj2.types.messaging.<a href="Properties.html" title="class in org.apache.qpid.protonj2.types.messaging"><span class="typeNameLink">Properties</span></a> (implements org.apache.qpid.protonj2.types.messaging.<a href="Section.html" title="interface in org.apache.qpid.protonj2.types.messaging">Section</a>&lt;E&gt;)</li>
<li class="circle">org.apache.qpid.protonj2.types.messaging.<a href="Received.html" title="class in org.apache.qpid.protonj2.types.messaging"><span class="typeNameLink">Received</span></a> (implements org.apache.qpid.protonj2.types.transport.<a href="../transport/DeliveryState.html" title="interface in org.apache.qpid.protonj2.types.transport">DeliveryState</a>)</li>
<li class="circle">org.apache.qpid.protonj2.types.messaging.<a href="Rejected.html" title="class in org.apache.qpid.protonj2.types.messaging"><span class="typeNameLink">Rejected</span></a> (implements org.apache.qpid.protonj2.types.transport.<a href="../transport/DeliveryState.html" title="interface in org.apache.qpid.protonj2.types.transport">DeliveryState</a>, org.apache.qpid.protonj2.types.messaging.<a href="Outcome.html" title="interface in org.apache.qpid.protonj2.types.messaging">Outcome</a>)</li>
<li class="circle">org.apache.qpid.protonj2.types.messaging.<a href="Released.html" title="class in org.apache.qpid.protonj2.types.messaging"><span class="typeNameLink">Released</span></a> (implements org.apache.qpid.protonj2.types.transport.<a href="../transport/DeliveryState.html" title="interface in org.apache.qpid.protonj2.types.transport">DeliveryState</a>, org.apache.qpid.protonj2.types.messaging.<a href="Outcome.html" title="interface in org.apache.qpid.protonj2.types.messaging">Outcome</a>)</li>
<li class="circle">org.apache.qpid.protonj2.types.messaging.<a href="Source.html" title="class in org.apache.qpid.protonj2.types.messaging"><span class="typeNameLink">Source</span></a> (implements org.apache.qpid.protonj2.types.messaging.<a href="Terminus.html" title="interface in org.apache.qpid.protonj2.types.messaging">Terminus</a>)</li>
<li class="circle">org.apache.qpid.protonj2.types.messaging.<a href="Target.html" title="class in org.apache.qpid.protonj2.types.messaging"><span class="typeNameLink">Target</span></a> (implements org.apache.qpid.protonj2.types.messaging.<a href="Terminus.html" title="interface in org.apache.qpid.protonj2.types.messaging">Terminus</a>)</li>
</ul>
</li>
</ul>
</section>
<section role="region">
<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
<ul>
<li class="circle">org.apache.qpid.protonj2.types.messaging.<a href="LifetimePolicy.html" title="interface in org.apache.qpid.protonj2.types.messaging"><span class="typeNameLink">LifetimePolicy</span></a></li>
<li class="circle">org.apache.qpid.protonj2.types.messaging.<a href="Outcome.html" title="interface in org.apache.qpid.protonj2.types.messaging"><span class="typeNameLink">Outcome</span></a></li>
<li class="circle">org.apache.qpid.protonj2.types.messaging.<a href="Section.html" title="interface in org.apache.qpid.protonj2.types.messaging"><span class="typeNameLink">Section</span></a>&lt;E&gt;</li>
<li class="circle">org.apache.qpid.protonj2.types.messaging.<a href="Terminus.html" title="interface in org.apache.qpid.protonj2.types.messaging"><span class="typeNameLink">Terminus</span></a></li>
</ul>
</section>
<section role="region">
<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
<ul>
<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Object</span></a>
<ul>
<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
<ul>
<li class="circle">org.apache.qpid.protonj2.types.messaging.<a href="Section.SectionType.html" title="enum in org.apache.qpid.protonj2.types.messaging"><span class="typeNameLink">Section.SectionType</span></a></li>
<li class="circle">org.apache.qpid.protonj2.types.messaging.<a href="TerminusDurability.html" title="enum in org.apache.qpid.protonj2.types.messaging"><span class="typeNameLink">TerminusDurability</span></a></li>
<li class="circle">org.apache.qpid.protonj2.types.messaging.<a href="TerminusExpiryPolicy.html" title="enum in org.apache.qpid.protonj2.types.messaging"><span class="typeNameLink">TerminusExpiryPolicy</span></a></li>
</ul>
</li>
</ul>
</li>
</ul>
</section>
</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>Class</li>
<li>Use</li>
<li class="navBarCell1Rev">Tree</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>
