blob: bd9a705d47e375a064cf6f39ce10f8adf2bd14f2 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>PartiallyOrderedSet (Apache Calcite API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="PartiallyOrderedSet (Apache Calcite API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":9,"i25":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</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="navBarCell1Rev">Class</li>
<li><a href="class-use/PartiallyOrderedSet.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../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>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</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>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</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>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.calcite.util</a></div>
<h2 title="Class PartiallyOrderedSet" class="title">Class PartiallyOrderedSet&lt;E&gt;</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>java.util.AbstractCollection&lt;E&gt;</li>
<li>
<ul class="inheritance">
<li>java.util.AbstractSet&lt;E&gt;</li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.util.PartiallyOrderedSet&lt;E&gt;</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>E</code> - Element type</dd>
</dl>
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code>java.lang.Iterable&lt;E&gt;</code>, <code>java.util.Collection&lt;E&gt;</code>, <code>java.util.Set&lt;E&gt;</code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">PartiallyOrderedSet&lt;E&gt;</span>
extends java.util.AbstractSet&lt;E&gt;</pre>
<div class="block">Partially-ordered set.
<p>When you create a partially-ordered set ('poset' for short) you must
provide an <a href="PartiallyOrderedSet.Ordering.html" title="interface in org.apache.calcite.util"><code>PartiallyOrderedSet.Ordering</code></a> that determines the order relation. The
ordering must be:</p>
<ul>
<li>reflexive: e.lte(e) returns true;</li>
<li>anti-symmetric: if e.lte(f) returns true,
then f.lte(e) returns false only if e = f;</li>
<li>transitive: if e.lte(f) returns true and
f.lte(g) returns true, then e.lte(g) must return true.</li>
</ul>
<p>Note that not all pairs of elements are related. If is OK if e.lte(f)
returns false and f.lte(e) returns false also.</p>
<p>In addition to the usual set methods, there are methods to determine the
immediate parents and children of an element in the set, and method to find
all elements which have no parents or no children (i.e. "root" and "leaf"
elements).</p>
<p>A lattice is a special kind of poset where there is a unique top and
bottom element. You can use a PartiallyOrderedSet for a lattice also. It may
be helpful to add the top and bottom elements to the poset on
construction.</p></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>&lt;<a href="PartiallyOrderedSet.Node.html" title="type parameter in PartiallyOrderedSet.Node">E</a>&gt;</span></code></th>
<td class="colLast">
<div class="block">Holds a value, its parent nodes, and child nodes.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="PartiallyOrderedSet.Ordering.html" title="interface in org.apache.calcite.util">PartiallyOrderedSet.Ordering</a>&lt;<a href="PartiallyOrderedSet.Ordering.html" title="type parameter in PartiallyOrderedSet.Ordering">E</a>&gt;</span></code></th>
<td class="colLast">
<div class="block">Ordering relation.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="PartiallyOrderedSet.TopBottomNode.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.TopBottomNode</a>&lt;<a href="PartiallyOrderedSet.TopBottomNode.html" title="type parameter in PartiallyOrderedSet.TopBottomNode">E</a>&gt;</span></code></th>
<td class="colLast">
<div class="block">Subclass of Node for top/bottom nodes.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="PartiallyOrderedSet.Ordering.html" title="interface in org.apache.calcite.util">PartiallyOrderedSet.Ordering</a>&lt;<a href="ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#BIT_SET_INCLUSION_ORDERING">BIT_SET_INCLUSION_ORDERING</a></span></code></th>
<td class="colLast">
<div class="block">Ordering that orders bit sets by inclusion.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#bottomNode">bottomNode</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private java.util.function.Function&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>,&#8203;java.lang.Iterable&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#childFunction">childFunction</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private java.util.Map&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>,&#8203;<a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#map">map</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="PartiallyOrderedSet.Ordering.html" title="interface in org.apache.calcite.util">PartiallyOrderedSet.Ordering</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ordering">ordering</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private java.util.function.Function&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>,&#8203;java.lang.Iterable&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#parentFunction">parentFunction</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#topNode">topNode</a></span></code></th>
<td class="colLast">
<div class="block">Synthetic node to hold all nodes that have no parents.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colSecond" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>&nbsp;</code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.calcite.util.PartiallyOrderedSet.Ordering)">PartiallyOrderedSet</a></span>&#8203;(<a href="PartiallyOrderedSet.Ordering.html" title="interface in org.apache.calcite.util">PartiallyOrderedSet.Ordering</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;ordering)</code></th>
<td class="colLast">
<div class="block">Creates a partially-ordered set.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>&nbsp;</code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.calcite.util.PartiallyOrderedSet.Ordering,com.google.common.base.Function,com.google.common.base.Function)">PartiallyOrderedSet</a></span>&#8203;(<a href="PartiallyOrderedSet.Ordering.html" title="interface in org.apache.calcite.util">PartiallyOrderedSet.Ordering</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;ordering,
com.google.common.base.Function&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>,&#8203;java.lang.Iterable&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;&nbsp;childFunction,
com.google.common.base.Function&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>,&#8203;java.lang.Iterable&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;&nbsp;parentFunction)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>&nbsp;</code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.calcite.util.PartiallyOrderedSet.Ordering,java.util.Collection)">PartiallyOrderedSet</a></span>&#8203;(<a href="PartiallyOrderedSet.Ordering.html" title="interface in org.apache.calcite.util">PartiallyOrderedSet.Ordering</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;ordering,
java.util.Collection&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;collection)</code></th>
<td class="colLast">
<div class="block">Creates a partially-ordered set, and populates it with a given
collection.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>&nbsp;</code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.calcite.util.PartiallyOrderedSet.Ordering,java.util.function.Function,java.util.function.Function)">PartiallyOrderedSet</a></span>&#8203;(<a href="PartiallyOrderedSet.Ordering.html" title="interface in org.apache.calcite.util">PartiallyOrderedSet.Ordering</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;ordering,
java.util.function.Function&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>,&#8203;java.lang.Iterable&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;&nbsp;childFunction,
java.util.function.Function&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>,&#8203;java.lang.Iterable&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;&nbsp;parentFunction)</code></th>
<td class="colLast">
<div class="block">Creates a partially-ordered set with a parent-generating function.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private </code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.calcite.util.PartiallyOrderedSet.Ordering,java.util.Map,java.util.function.Function,java.util.function.Function)">PartiallyOrderedSet</a></span>&#8203;(<a href="PartiallyOrderedSet.Ordering.html" title="interface in org.apache.calcite.util">PartiallyOrderedSet.Ordering</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;ordering,
java.util.Map&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>,&#8203;<a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;&nbsp;map,
java.util.function.Function&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>,&#8203;java.lang.Iterable&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;&nbsp;childFunction,
java.util.function.Function&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>,&#8203;java.lang.Iterable&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;&nbsp;parentFunction)</code></th>
<td class="colLast">
<div class="block">Internal constructor.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></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>
<tr id="i0" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#add(E)">add</a></span>&#8203;(<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&nbsp;e)</code></th>
<td class="colLast">
<div class="block">Adds an element to this lattice.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clear()">clear</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#closure(java.util.function.Function,E,java.util.List,java.util.Set)">closure</a></span>&#8203;(java.util.function.Function&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>,&#8203;java.lang.Iterable&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;&nbsp;generator,
<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&nbsp;e,
java.util.List&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;list,
java.util.Set&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;set)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#contains(java.lang.Object)">contains</a></span>&#8203;(java.lang.Object&nbsp;o)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>private java.util.List&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#descendants(E,boolean)">descendants</a></span>&#8203;(<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&nbsp;e,
boolean&nbsp;up)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#distanceRecurse(java.util.Map,org.apache.calcite.util.PartiallyOrderedSet.Node,int)">distanceRecurse</a></span>&#8203;(java.util.Map&lt;<a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>,&#8203;java.lang.Integer&gt;&nbsp;distanceToRoot,
<a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;node,
int&nbsp;distance)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>private java.util.Set&lt;<a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#findChildren(E)">findChildren</a></span>&#8203;(<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&nbsp;e)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>private java.util.Set&lt;<a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#findParents(E)">findParents</a></span>&#8203;(<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&nbsp;e)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>private java.util.Set&lt;<a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#findParentsChildren(E,java.util.Deque,boolean)">findParentsChildren</a></span>&#8203;(<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&nbsp;e,
java.util.Deque&lt;<a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;&nbsp;ancestors,
boolean&nbsp;up)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>java.util.List&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAncestors(E)">getAncestors</a></span>&#8203;(<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&nbsp;e)</code></th>
<td class="colLast">
<div class="block">Returns a list of values in the set that are less-than a given value.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>java.util.List&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getChildren(E)">getChildren</a></span>&#8203;(<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&nbsp;e)</code></th>
<td class="colLast">
<div class="block">Returns the values in this partially-ordered set that are less-than
a given value and there are no intervening values.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>java.util.List&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getChildren(E,boolean)">getChildren</a></span>&#8203;(<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&nbsp;e,
boolean&nbsp;hypothetical)</code></th>
<td class="colLast">
<div class="block">Returns the values in this partially-ordered set that are less-than
a given value and there are no intervening values.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>java.util.List&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDescendants(E)">getDescendants</a></span>&#8203;(<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&nbsp;e)</code></th>
<td class="colLast">
<div class="block">Returns a list of values in the set that are less-than a given value.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>java.util.List&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNonChildren()">getNonChildren</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>java.util.List&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNonParents()">getNonParents</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>java.util.List&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParents(E)">getParents</a></span>&#8203;(<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&nbsp;e)</code></th>
<td class="colLast">
<div class="block">Returns the values in this partially-ordered set that are greater-than
a given value and there are no intervening values.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>java.util.List&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParents(E,boolean)">getParents</a></span>&#8203;(<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&nbsp;e,
boolean&nbsp;hypothetical)</code></th>
<td class="colLast">
<div class="block">Returns the values in this partially-ordered set that are greater-than
a given value and there are no intervening values.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isDescendantOfAny(org.apache.calcite.util.PartiallyOrderedSet.Node,java.util.Set)">isDescendantOfAny</a></span>&#8203;(<a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;node,
java.util.Set&lt;<a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;&nbsp;nodeSet)</code></th>
<td class="colLast">
<div class="block">Returns whether node's value is a descendant of any of the values in
nodeSet.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isValid(boolean)">isValid</a></span>&#8203;(boolean&nbsp;fail)</code></th>
<td class="colLast">
<div class="block">Checks internal consistency of this lattice.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>java.util.Iterator&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#iterator()">iterator</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#out(java.lang.StringBuilder)">out</a></span>&#8203;(java.lang.StringBuilder&nbsp;buf)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#remove(java.lang.Object)">remove</a></span>&#8203;(java.lang.Object&nbsp;o)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>private &lt;T&gt;&nbsp;void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replace(java.util.List,T,T)">replace</a></span>&#8203;(java.util.List&lt;T&gt;&nbsp;list,
T&nbsp;remove,
T&nbsp;add)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#size()">size</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>private static &lt;E&gt;&nbsp;com.google.common.collect.ImmutableList&lt;E&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#strip(java.lang.Iterable)">strip</a></span>&#8203;(java.lang.Iterable&lt;<a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>&lt;E&gt;&gt;&nbsp;iterable)</code></th>
<td class="colLast">
<div class="block">Converts an iterable of nodes into the list of the elements inside.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>static &lt;E&gt;&nbsp;java.util.List&lt;E&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#strip(java.util.List)">strip</a></span>&#8203;(java.util.List&lt;<a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>&lt;E&gt;&gt;&nbsp;list)</code></th>
<td class="colLast">
<div class="block">Returns a list, backed by a list of
<a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util"><code>PartiallyOrderedSet.Node</code></a>s, that strips
away the node and returns the element inside.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.util.AbstractSet">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.util.AbstractSet</h3>
<code>equals, hashCode, removeAll</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.util.AbstractCollection">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.util.AbstractCollection</h3>
<code>addAll, containsAll, isEmpty, retainAll, toArray, toArray, toString</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, finalize, getClass, notify, notifyAll, wait, wait, wait</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.util.Collection">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;java.util.Collection</h3>
<code>parallelStream, removeIf, stream, toArray</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Iterable">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;java.lang.Iterable</h3>
<code>forEach</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.util.Set">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;java.util.Set</h3>
<code>addAll, containsAll, isEmpty, retainAll, spliterator, toArray, toArray</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="BIT_SET_INCLUSION_ORDERING">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>BIT_SET_INCLUSION_ORDERING</h4>
<pre>public static final&nbsp;<a href="PartiallyOrderedSet.Ordering.html" title="interface in org.apache.calcite.util">PartiallyOrderedSet.Ordering</a>&lt;<a href="ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt; BIT_SET_INCLUSION_ORDERING</pre>
<div class="block">Ordering that orders bit sets by inclusion.
<p>For example, the children of 14 (1110) are 12 (1100), 10 (1010) and
6 (0110).</div>
</li>
</ul>
<a id="map">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>map</h4>
<pre>private final&nbsp;java.util.Map&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>,&#8203;<a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt; map</pre>
</li>
</ul>
<a id="parentFunction">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parentFunction</h4>
<pre>private final&nbsp;java.util.function.Function&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>,&#8203;java.lang.Iterable&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt; parentFunction</pre>
</li>
</ul>
<a id="childFunction">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>childFunction</h4>
<pre>private final&nbsp;java.util.function.Function&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>,&#8203;java.lang.Iterable&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt; childFunction</pre>
</li>
</ul>
<a id="ordering">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ordering</h4>
<pre>private final&nbsp;<a href="PartiallyOrderedSet.Ordering.html" title="interface in org.apache.calcite.util">PartiallyOrderedSet.Ordering</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt; ordering</pre>
</li>
</ul>
<a id="topNode">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>topNode</h4>
<pre>private final&nbsp;<a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt; topNode</pre>
<div class="block">Synthetic node to hold all nodes that have no parents. It does not appear
in the set.</div>
</li>
</ul>
<a id="bottomNode">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>bottomNode</h4>
<pre>private final&nbsp;<a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt; bottomNode</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(org.apache.calcite.util.PartiallyOrderedSet.Ordering)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PartiallyOrderedSet</h4>
<pre>public&nbsp;PartiallyOrderedSet&#8203;(<a href="PartiallyOrderedSet.Ordering.html" title="interface in org.apache.calcite.util">PartiallyOrderedSet.Ordering</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;ordering)</pre>
<div class="block">Creates a partially-ordered set.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ordering</code> - Ordering relation</dd>
</dl>
</li>
</ul>
<a id="&lt;init&gt;(org.apache.calcite.util.PartiallyOrderedSet.Ordering,java.util.function.Function,java.util.function.Function)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PartiallyOrderedSet</h4>
<pre>public&nbsp;PartiallyOrderedSet&#8203;(<a href="PartiallyOrderedSet.Ordering.html" title="interface in org.apache.calcite.util">PartiallyOrderedSet.Ordering</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;ordering,
java.util.function.Function&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>,&#8203;java.lang.Iterable&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;&nbsp;childFunction,
java.util.function.Function&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>,&#8203;java.lang.Iterable&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;&nbsp;parentFunction)</pre>
<div class="block">Creates a partially-ordered set with a parent-generating function.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ordering</code> - Ordering relation</dd>
<dd><code>parentFunction</code> - Function to compute parents of a node; may be null</dd>
</dl>
</li>
</ul>
<a id="&lt;init&gt;(org.apache.calcite.util.PartiallyOrderedSet.Ordering,com.google.common.base.Function,com.google.common.base.Function)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PartiallyOrderedSet</h4>
<pre>@Deprecated
public&nbsp;PartiallyOrderedSet&#8203;(<a href="PartiallyOrderedSet.Ordering.html" title="interface in org.apache.calcite.util">PartiallyOrderedSet.Ordering</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;ordering,
com.google.common.base.Function&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>,&#8203;java.lang.Iterable&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;&nbsp;childFunction,
com.google.common.base.Function&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>,&#8203;java.lang.Iterable&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;&nbsp;parentFunction)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</li>
</ul>
<a id="&lt;init&gt;(org.apache.calcite.util.PartiallyOrderedSet.Ordering,java.util.Collection)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PartiallyOrderedSet</h4>
<pre>public&nbsp;PartiallyOrderedSet&#8203;(<a href="PartiallyOrderedSet.Ordering.html" title="interface in org.apache.calcite.util">PartiallyOrderedSet.Ordering</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;ordering,
java.util.Collection&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;collection)</pre>
<div class="block">Creates a partially-ordered set, and populates it with a given
collection.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ordering</code> - Ordering relation</dd>
<dd><code>collection</code> - Initial contents of partially-ordered set</dd>
</dl>
</li>
</ul>
<a id="&lt;init&gt;(org.apache.calcite.util.PartiallyOrderedSet.Ordering,java.util.Map,java.util.function.Function,java.util.function.Function)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>PartiallyOrderedSet</h4>
<pre>private&nbsp;PartiallyOrderedSet&#8203;(<a href="PartiallyOrderedSet.Ordering.html" title="interface in org.apache.calcite.util">PartiallyOrderedSet.Ordering</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;ordering,
java.util.Map&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>,&#8203;<a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;&nbsp;map,
java.util.function.Function&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>,&#8203;java.lang.Iterable&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;&nbsp;childFunction,
java.util.function.Function&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>,&#8203;java.lang.Iterable&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;&nbsp;parentFunction)</pre>
<div class="block">Internal constructor.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ordering</code> - Ordering relation</dd>
<dd><code>map</code> - Map from values to nodes</dd>
<dd><code>parentFunction</code> - Function to compute parents of a node; may be null</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="iterator()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>iterator</h4>
<pre class="methodSignature">public&nbsp;java.util.Iterator&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;iterator()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>iterator</code>&nbsp;in interface&nbsp;<code>java.util.Collection&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>iterator</code>&nbsp;in interface&nbsp;<code>java.lang.Iterable&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>iterator</code>&nbsp;in interface&nbsp;<code>java.util.Set&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>iterator</code>&nbsp;in class&nbsp;<code>java.util.AbstractCollection&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a id="size()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>size</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;size()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>size</code>&nbsp;in interface&nbsp;<code>java.util.Collection&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>size</code>&nbsp;in interface&nbsp;<code>java.util.Set&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>size</code>&nbsp;in class&nbsp;<code>java.util.AbstractCollection&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a id="contains(java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>contains</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;contains&#8203;(java.lang.Object&nbsp;o)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>contains</code>&nbsp;in interface&nbsp;<code>java.util.Collection&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>contains</code>&nbsp;in interface&nbsp;<code>java.util.Set&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>contains</code>&nbsp;in class&nbsp;<code>java.util.AbstractCollection&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a id="remove(java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>remove</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;remove&#8203;(java.lang.Object&nbsp;o)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>remove</code>&nbsp;in interface&nbsp;<code>java.util.Collection&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>remove</code>&nbsp;in interface&nbsp;<code>java.util.Set&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>remove</code>&nbsp;in class&nbsp;<code>java.util.AbstractCollection&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a id="add(java.lang.Object)">
<!-- -->
</a><a id="add(E)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>add</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;add&#8203;(<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&nbsp;e)</pre>
<div class="block">Adds an element to this lattice.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>add</code>&nbsp;in interface&nbsp;<code>java.util.Collection&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>add</code>&nbsp;in interface&nbsp;<code>java.util.Set&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>add</code>&nbsp;in class&nbsp;<code>java.util.AbstractCollection&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a id="isDescendantOfAny(org.apache.calcite.util.PartiallyOrderedSet.Node,java.util.Set)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDescendantOfAny</h4>
<pre class="methodSignature">private&nbsp;boolean&nbsp;isDescendantOfAny&#8203;(<a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;node,
java.util.Set&lt;<a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;&nbsp;nodeSet)</pre>
<div class="block">Returns whether node's value is a descendant of any of the values in
nodeSet.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - Node</dd>
<dd><code>nodeSet</code> - Suspected ancestors</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether node is a descendant of any of the nodes</dd>
</dl>
</li>
</ul>
<a id="findChildren(java.lang.Object)">
<!-- -->
</a><a id="findChildren(E)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findChildren</h4>
<pre class="methodSignature">private&nbsp;java.util.Set&lt;<a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;&nbsp;findChildren&#8203;(<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&nbsp;e)</pre>
</li>
</ul>
<a id="findParents(java.lang.Object)">
<!-- -->
</a><a id="findParents(E)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findParents</h4>
<pre class="methodSignature">private&nbsp;java.util.Set&lt;<a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;&nbsp;findParents&#8203;(<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&nbsp;e)</pre>
</li>
</ul>
<a id="findParentsChildren(java.lang.Object,java.util.Deque,boolean)">
<!-- -->
</a><a id="findParentsChildren(E,java.util.Deque,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findParentsChildren</h4>
<pre class="methodSignature">private&nbsp;java.util.Set&lt;<a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;&nbsp;findParentsChildren&#8203;(<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&nbsp;e,
java.util.Deque&lt;<a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;&nbsp;ancestors,
boolean&nbsp;up)</pre>
</li>
</ul>
<a id="replace(java.util.List,java.lang.Object,java.lang.Object)">
<!-- -->
</a><a id="replace(java.util.List,T,T)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replace</h4>
<pre class="methodSignature">private&nbsp;&lt;T&gt;&nbsp;void&nbsp;replace&#8203;(java.util.List&lt;T&gt;&nbsp;list,
T&nbsp;remove,
T&nbsp;add)</pre>
</li>
</ul>
<a id="isValid(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValid</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isValid&#8203;(boolean&nbsp;fail)</pre>
<div class="block">Checks internal consistency of this lattice.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fail</code> - Whether to throw an assertion error</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether valid</dd>
</dl>
</li>
</ul>
<a id="distanceRecurse(java.util.Map,org.apache.calcite.util.PartiallyOrderedSet.Node,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>distanceRecurse</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;distanceRecurse&#8203;(java.util.Map&lt;<a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>,&#8203;java.lang.Integer&gt;&nbsp;distanceToRoot,
<a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;node,
int&nbsp;distance)</pre>
</li>
</ul>
<a id="out(java.lang.StringBuilder)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>out</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;out&#8203;(java.lang.StringBuilder&nbsp;buf)</pre>
</li>
</ul>
<a id="getChildren(java.lang.Object)">
<!-- -->
</a><a id="getChildren(E)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getChildren</h4>
<pre class="methodSignature">public&nbsp;java.util.List&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;getChildren&#8203;(<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&nbsp;e)</pre>
<div class="block">Returns the values in this partially-ordered set that are less-than
a given value and there are no intervening values.
<p>If the value is not in this set, returns null.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>e</code> - Value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of values in this set that are directly less than the given
value</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#getDescendants(E)"><code>getDescendants(E)</code></a></dd>
</dl>
</li>
</ul>
<a id="getChildren(java.lang.Object,boolean)">
<!-- -->
</a><a id="getChildren(E,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getChildren</h4>
<pre class="methodSignature">public&nbsp;java.util.List&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;getChildren&#8203;(<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&nbsp;e,
boolean&nbsp;hypothetical)</pre>
<div class="block">Returns the values in this partially-ordered set that are less-than
a given value and there are no intervening values.
<p>If the value is not in this set, returns null if <code>hypothetical</code>
is false.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>e</code> - Value</dd>
<dd><code>hypothetical</code> - Whether to generate a list if value is not in the set</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of values in this set that are directly less than the given
value</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#getDescendants(E)"><code>getDescendants(E)</code></a></dd>
</dl>
</li>
</ul>
<a id="getParents(java.lang.Object)">
<!-- -->
</a><a id="getParents(E)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParents</h4>
<pre class="methodSignature">public&nbsp;java.util.List&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;getParents&#8203;(<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&nbsp;e)</pre>
<div class="block">Returns the values in this partially-ordered set that are greater-than
a given value and there are no intervening values.
<p>If the value is not in this set, returns null.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>e</code> - Value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of values in this set that are directly greater than the
given value</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#getAncestors(E)"><code>getAncestors(E)</code></a></dd>
</dl>
</li>
</ul>
<a id="getParents(java.lang.Object,boolean)">
<!-- -->
</a><a id="getParents(E,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParents</h4>
<pre class="methodSignature">public&nbsp;java.util.List&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;getParents&#8203;(<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&nbsp;e,
boolean&nbsp;hypothetical)</pre>
<div class="block">Returns the values in this partially-ordered set that are greater-than
a given value and there are no intervening values.
<p>If the value is not in this set, returns <code>null</code> if
<code>hypothetical</code> is false.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>e</code> - Value</dd>
<dd><code>hypothetical</code> - Whether to generate a list if value is not in the set</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of values in this set that are directly greater than the
given value</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#getAncestors(E)"><code>getAncestors(E)</code></a></dd>
</dl>
</li>
</ul>
<a id="closure(java.util.function.Function,java.lang.Object,java.util.List,java.util.Set)">
<!-- -->
</a><a id="closure(java.util.function.Function,E,java.util.List,java.util.Set)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>closure</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;closure&#8203;(java.util.function.Function&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>,&#8203;java.lang.Iterable&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&gt;&nbsp;generator,
<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&nbsp;e,
java.util.List&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;list,
java.util.Set&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;set)</pre>
</li>
</ul>
<a id="getNonChildren()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNonChildren</h4>
<pre class="methodSignature">public&nbsp;java.util.List&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;getNonChildren()</pre>
</li>
</ul>
<a id="getNonParents()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNonParents</h4>
<pre class="methodSignature">public&nbsp;java.util.List&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;getNonParents()</pre>
</li>
</ul>
<a id="clear()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clear</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;clear()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>clear</code>&nbsp;in interface&nbsp;<code>java.util.Collection&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>clear</code>&nbsp;in interface&nbsp;<code>java.util.Set&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>clear</code>&nbsp;in class&nbsp;<code>java.util.AbstractCollection&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a id="getDescendants(java.lang.Object)">
<!-- -->
</a><a id="getDescendants(E)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDescendants</h4>
<pre class="methodSignature">public&nbsp;java.util.List&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;getDescendants&#8203;(<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&nbsp;e)</pre>
<div class="block">Returns a list of values in the set that are less-than a given value.
The list is in topological order but order is otherwise
non-deterministic.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>e</code> - Value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Values less than given value</dd>
</dl>
</li>
</ul>
<a id="strip(java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>strip</h4>
<pre class="methodSignature">public static&nbsp;&lt;E&gt;&nbsp;java.util.List&lt;E&gt;&nbsp;strip&#8203;(java.util.List&lt;<a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>&lt;E&gt;&gt;&nbsp;list)</pre>
<div class="block">Returns a list, backed by a list of
<a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util"><code>PartiallyOrderedSet.Node</code></a>s, that strips
away the node and returns the element inside.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>E</code> - Element type</dd>
</dl>
</li>
</ul>
<a id="strip(java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>strip</h4>
<pre class="methodSignature">private static&nbsp;&lt;E&gt;&nbsp;com.google.common.collect.ImmutableList&lt;E&gt;&nbsp;strip&#8203;(java.lang.Iterable&lt;<a href="PartiallyOrderedSet.Node.html" title="class in org.apache.calcite.util">PartiallyOrderedSet.Node</a>&lt;E&gt;&gt;&nbsp;iterable)</pre>
<div class="block">Converts an iterable of nodes into the list of the elements inside.
If there is one node whose element is null, it represents a list
containing either the top or bottom element, so we return the empty list.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>E</code> - Element type</dd>
</dl>
</li>
</ul>
<a id="getAncestors(java.lang.Object)">
<!-- -->
</a><a id="getAncestors(E)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAncestors</h4>
<pre class="methodSignature">public&nbsp;java.util.List&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;getAncestors&#8203;(<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&nbsp;e)</pre>
<div class="block">Returns a list of values in the set that are less-than a given value.
The list is in topological order but order is otherwise
non-deterministic.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>e</code> - Value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Values less than given value</dd>
</dl>
</li>
</ul>
<a id="descendants(java.lang.Object,boolean)">
<!-- -->
</a><a id="descendants(E,boolean)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>descendants</h4>
<pre class="methodSignature">private&nbsp;java.util.List&lt;<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&gt;&nbsp;descendants&#8203;(<a href="PartiallyOrderedSet.html" title="type parameter in PartiallyOrderedSet">E</a>&nbsp;e,
boolean&nbsp;up)</pre>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<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="navBarCell1Rev">Class</li>
<li><a href="class-use/PartiallyOrderedSet.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../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>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>