blob: cedc61387a58f355da276b7610374e43744f577e [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>RelTraitSet (Apache Calcite 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="RelTraitSet (Apache Calcite calcite API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":9,"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":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10};
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="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 class="aboutLanguage"><b>Apache Calcite</b></div>
</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>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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.plan</a></div>
<h2 title="Class RelTraitSet" class="title">Class RelTraitSet</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractCollection.html?is-external=true" title="class or interface in java.util" class="externalLink">java.util.AbstractCollection</a>&lt;E&gt;</li>
<li>
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractList.html?is-external=true" title="class or interface in java.util" class="externalLink">java.util.AbstractList</a>&lt;<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&gt;</li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.plan.RelTraitSet</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&gt;</code>, <code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&gt;</code>, <code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&gt;</code></dd>
</dl>
<hr>
<pre>public final class <span class="typeNameLabel">RelTraitSet</span>
extends <a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractList.html?is-external=true" title="class or interface in java.util" class="externalLink">AbstractList</a>&lt;<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&gt;</pre>
<div class="block">RelTraitSet represents an ordered set of <a href="RelTrait.html" title="interface in org.apache.calcite.plan"><code>RelTrait</code></a>s.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.java.util.AbstractList">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;java.util.<a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractList.html?is-external=true" title="class or interface in java.util" class="externalLink">AbstractList</a></h3>
<code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractList.html?is-external=true#modCount" title="class or interface in java.util" class="externalLink">modCount</a></code></li>
</ul>
</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="#allSimple()">allSimple</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether there are any composite traits in this set.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#apply(org.apache.calcite.util.mapping.Mappings.TargetMapping)">apply</a></span>&#8203;(<a href="../util/mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a>&nbsp;mapping)</code></th>
<td class="colLast">
<div class="block">Applies a mapping to this traitSet.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>&lt;T extends <a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&gt;<br>T</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#canonize(T)">canonize</a></span>&#8203;(T&nbsp;trait)</code></th>
<td class="colLast">
<div class="block">Converts a trait to canonical form.</div>
</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="#comprises(org.apache.calcite.plan.RelTrait...)">comprises</a></span>&#8203;(<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>...&nbsp;relTraits)</code></th>
<td class="colLast">
<div class="block">Returns whether this trait set comprises precisely the list of given
traits.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#computeString()">computeString</a></span>()</code></th>
<td class="colLast">
<div class="block">Outputs the traits of this set as a String.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#contains(org.apache.calcite.plan.RelTrait)">contains</a></span>&#8203;(<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&nbsp;trait)</code></th>
<td class="colLast">
<div class="block">Returns whether this trait set contains a given trait.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsIfApplicable(org.apache.calcite.plan.RelTrait)">containsIfApplicable</a></span>&#8203;(<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&nbsp;trait)</code></th>
<td class="colLast">
<div class="block">Returns whether this trait set contains the given trait, or whether the
trait is not present because its <a href="RelTraitDef.html" title="class in org.apache.calcite.plan"><code>RelTraitDef</code></a> is not enabled.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static <a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createEmpty()">createEmpty</a></span>()</code></th>
<td class="colLast">
<div class="block">Creates an empty trait set.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>com.google.common.collect.ImmutableList&lt;<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#difference(org.apache.calcite.plan.RelTraitSet)">difference</a></span>&#8203;(<a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;traitSet)</code></th>
<td class="colLast">
<div class="block">Returns a list of traits that are in <code>traitSet</code> but not in this
RelTraitSet.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</code></th>
<td class="colLast">
<div class="block">Compares two RelTraitSet objects for equality.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equalsSansConvention(org.apache.calcite.plan.RelTraitSet)">equalsSansConvention</a></span>&#8203;(<a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;other)</code></th>
<td class="colLast">
<div class="block">Returns whether all the traits except <a href="Convention.html" title="interface in org.apache.calcite.plan"><code>Convention</code></a>
equals with traits in <code>other</code> traitSet.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(int)">get</a></span>&#8203;(int&nbsp;index)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>&lt;T extends <a href="../rel/RelCollation.html" title="interface in org.apache.calcite.rel">RelCollation</a>&gt;<br>T</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCollation()">getCollation</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns <a href="../rel/RelCollation.html" title="interface in org.apache.calcite.rel"><code>RelCollation</code></a> trait defined by
<a href="../rel/RelCollationTraitDef.html#INSTANCE"><code>RelCollationTraitDef.INSTANCE</code></a>, or null if the
<a href="../rel/RelCollationTraitDef.html#INSTANCE"><code>RelCollationTraitDef.INSTANCE</code></a> is not registered
in this traitSet.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="Convention.html" title="interface in org.apache.calcite.plan">Convention</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConvention()">getConvention</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns <a href="Convention.html" title="interface in org.apache.calcite.plan"><code>Convention</code></a> trait defined by
<a href="ConventionTraitDef.html#INSTANCE"><code>ConventionTraitDef.INSTANCE</code></a>, or null if the
<a href="ConventionTraitDef.html#INSTANCE"><code>ConventionTraitDef.INSTANCE</code></a> is not registered
in this traitSet.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDefault()">getDefault</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a new traitSet with same traitDefs with
current traitSet, but each trait is the default
trait value.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDefaultSansConvention()">getDefaultSansConvention</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a new traitSet with same traitDefs with
current traitSet, but each trait except <a href="Convention.html" title="interface in org.apache.calcite.plan"><code>Convention</code></a>
is the default trait value.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>&lt;T extends <a href="../rel/RelDistribution.html" title="interface in org.apache.calcite.rel">RelDistribution</a>&gt;<br>T</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDistribution()">getDistribution</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns <a href="../rel/RelDistribution.html" title="interface in org.apache.calcite.rel"><code>RelDistribution</code></a> trait defined by
<a href="../rel/RelDistributionTraitDef.html#INSTANCE"><code>RelDistributionTraitDef.INSTANCE</code></a>, or null if the
<a href="../rel/RelDistributionTraitDef.html#INSTANCE"><code>RelDistributionTraitDef.INSTANCE</code></a> is not registered
in this traitSet.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTrait(int)">getTrait</a></span>&#8203;(int&nbsp;index)</code></th>
<td class="colLast">
<div class="block">Retrieves a RelTrait from the set.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>&lt;T extends <a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&gt;<br>T</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTrait(org.apache.calcite.plan.RelTraitDef)">getTrait</a></span>&#8203;(<a href="RelTraitDef.html" title="class in org.apache.calcite.plan">RelTraitDef</a>&lt;T&gt;&nbsp;traitDef)</code></th>
<td class="colLast">
<div class="block">Retrieves a RelTrait of the given type from the set.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>&lt;E extends <a href="RelMultipleTrait.html" title="interface in org.apache.calcite.plan">RelMultipleTrait</a>&gt;<br><a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;E&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTraits(int)">getTraits</a></span>&#8203;(int&nbsp;index)</code></th>
<td class="colLast">
<div class="block">Retrieves a list of traits from the set.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>&lt;T extends <a href="RelMultipleTrait.html" title="interface in org.apache.calcite.plan">RelMultipleTrait</a>&gt;<br><a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTraits(org.apache.calcite.plan.RelTraitDef)">getTraits</a></span>&#8203;(<a href="RelTraitDef.html" title="class in org.apache.calcite.plan">RelTraitDef</a>&lt;T&gt;&nbsp;traitDef)</code></th>
<td class="colLast">
<div class="block">Retrieves a list of traits of the given type from the set.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isDefault()">isDefault</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether all the traits are default trait value.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isDefaultSansConvention()">isDefaultSansConvention</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether all the traits except <a href="Convention.html" title="interface in org.apache.calcite.plan"><code>Convention</code></a>
are default trait value.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>&lt;T extends <a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&gt;<br>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEnabled(org.apache.calcite.plan.RelTraitDef)">isEnabled</a></span>&#8203;(<a href="RelTraitDef.html" title="class in org.apache.calcite.plan">RelTraitDef</a>&lt;T&gt;&nbsp;traitDef)</code></th>
<td class="colLast">
<div class="block">Returns whether a given kind of trait is enabled.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#matches(org.apache.calcite.plan.RelTraitSet)">matches</a></span>&#8203;(<a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;that)</code></th>
<td class="colLast">
<div class="block">Compares two RelTraitSet objects to see if they match for the purposes of
firing a rule.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code><a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#merge(org.apache.calcite.plan.RelTraitSet)">merge</a></span>&#8203;(<a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;additionalTraits)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code><a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#plus(org.apache.calcite.plan.RelTrait)">plus</a></span>&#8203;(<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&nbsp;trait)</code></th>
<td class="colLast">
<div class="block">Returns this trait set with a given trait added or overridden.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code><a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#plusAll(org.apache.calcite.plan.RelTrait%5B%5D)">plusAll</a></span>&#8203;(<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>[]&nbsp;traits)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code><a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replace(int,org.apache.calcite.plan.RelTrait)">replace</a></span>&#8203;(int&nbsp;index,
<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&nbsp;trait)</code></th>
<td class="colLast">
<div class="block">Replaces an existing RelTrait in the set.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>&lt;T extends <a href="RelMultipleTrait.html" title="interface in org.apache.calcite.plan">RelMultipleTrait</a>&gt;<br><a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replace(java.util.List)">replace</a></span>&#8203;(<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;&nbsp;traits)</code></th>
<td class="colLast">
<div class="block">Replaces the trait(s) of a given type with a list of traits of the same
type.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code><a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replace(org.apache.calcite.plan.RelTrait)">replace</a></span>&#8203;(<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&nbsp;trait)</code></th>
<td class="colLast">
<div class="block">Returns a trait set consisting of the current set plus a new trait.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>&lt;T extends <a href="RelMultipleTrait.html" title="interface in org.apache.calcite.plan">RelMultipleTrait</a>&gt;<br><a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replace(org.apache.calcite.plan.RelTraitDef,java.util.List)">replace</a></span>&#8203;(<a href="RelTraitDef.html" title="class in org.apache.calcite.plan">RelTraitDef</a>&lt;T&gt;&nbsp;def,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;&nbsp;traits)</code></th>
<td class="colLast">
<div class="block">Replaces the trait(s) of a given type with a list of traits of the same
type.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>&lt;T extends <a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&gt;<br><a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replaceIf(org.apache.calcite.plan.RelTraitDef,java.util.function.Supplier)">replaceIf</a></span>&#8203;(<a href="RelTraitDef.html" title="class in org.apache.calcite.plan">RelTraitDef</a>&lt;T&gt;&nbsp;def,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&lt;T&gt;&nbsp;traitSupplier)</code></th>
<td class="colLast">
<div class="block">If a given trait is enabled, replaces it by calling the given function.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>&lt;T extends <a href="RelMultipleTrait.html" title="interface in org.apache.calcite.plan">RelMultipleTrait</a>&gt;<br><a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replaceIfs(org.apache.calcite.plan.RelTraitDef,java.util.function.Supplier)">replaceIfs</a></span>&#8203;(<a href="RelTraitDef.html" title="class in org.apache.calcite.plan">RelTraitDef</a>&lt;T&gt;&nbsp;def,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&lt;<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;&gt;&nbsp;traitSupplier)</code></th>
<td class="colLast">
<div class="block">If a given multiple trait is enabled, replaces it by calling the given
function.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#satisfies(org.apache.calcite.plan.RelTraitSet)">satisfies</a></span>&#8203;(<a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;that)</code></th>
<td class="colLast">
<div class="block">Returns whether this trait set satisfies another trait set.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code><a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#simplify()">simplify</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a trait set similar to this one but with all composite traits
flattened.</div>
</td>
</tr>
<tr id="i37" 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">
<div class="block">Returns the size of the RelTraitSet.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.util.AbstractList">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.util.<a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractList.html?is-external=true" title="class or interface in java.util" class="externalLink">AbstractList</a></h3>
<code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractList.html?is-external=true#add(int,E)" title="class or interface in java.util" class="externalLink">add</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractList.html?is-external=true#add(E)" title="class or interface in java.util" class="externalLink">add</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractList.html?is-external=true#addAll(int,java.util.Collection)" title="class or interface in java.util" class="externalLink">addAll</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractList.html?is-external=true#clear()" title="class or interface in java.util" class="externalLink">clear</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractList.html?is-external=true#indexOf(java.lang.Object)" title="class or interface in java.util" class="externalLink">indexOf</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractList.html?is-external=true#iterator()" title="class or interface in java.util" class="externalLink">iterator</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractList.html?is-external=true#lastIndexOf(java.lang.Object)" title="class or interface in java.util" class="externalLink">lastIndexOf</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractList.html?is-external=true#listIterator()" title="class or interface in java.util" class="externalLink">listIterator</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractList.html?is-external=true#listIterator(int)" title="class or interface in java.util" class="externalLink">listIterator</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractList.html?is-external=true#remove(int)" title="class or interface in java.util" class="externalLink">remove</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractList.html?is-external=true#removeRange(int,int)" title="class or interface in java.util" class="externalLink">removeRange</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractList.html?is-external=true#set(int,E)" title="class or interface in java.util" class="externalLink">set</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractList.html?is-external=true#subList(int,int)" title="class or interface in java.util" class="externalLink">subList</a></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.<a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractCollection.html?is-external=true" title="class or interface in java.util" class="externalLink">AbstractCollection</a></h3>
<code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractCollection.html?is-external=true#addAll(java.util.Collection)" title="class or interface in java.util" class="externalLink">addAll</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractCollection.html?is-external=true#contains(java.lang.Object)" title="class or interface in java.util" class="externalLink">contains</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractCollection.html?is-external=true#containsAll(java.util.Collection)" title="class or interface in java.util" class="externalLink">containsAll</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractCollection.html?is-external=true#isEmpty()" title="class or interface in java.util" class="externalLink">isEmpty</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractCollection.html?is-external=true#remove(java.lang.Object)" title="class or interface in java.util" class="externalLink">remove</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractCollection.html?is-external=true#removeAll(java.util.Collection)" title="class or interface in java.util" class="externalLink">removeAll</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractCollection.html?is-external=true#retainAll(java.util.Collection)" title="class or interface in java.util" class="externalLink">retainAll</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractCollection.html?is-external=true#toArray()" title="class or interface in java.util" class="externalLink">toArray</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractCollection.html?is-external=true#toArray(T%5B%5D)" title="class or interface in java.util" class="externalLink">toArray</a></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.<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></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.<a href="https://docs.oracle.com/javase/9/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a></h3>
<code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/Collection.html?is-external=true#parallelStream()" title="class or interface in java.util" class="externalLink">parallelStream</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/Collection.html?is-external=true#removeIf(java.util.function.Predicate)" title="class or interface in java.util" class="externalLink">removeIf</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/Collection.html?is-external=true#stream()" title="class or interface in java.util" class="externalLink">stream</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/Collection.html?is-external=true#toArray(java.util.function.IntFunction)" title="class or interface in java.util" class="externalLink">toArray</a></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.<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a></h3>
<code><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Iterable.html?is-external=true#forEach(java.util.function.Consumer)" title="class or interface in java.lang" class="externalLink">forEach</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.util.List">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;java.util.<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a></h3>
<code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true#addAll(java.util.Collection)" title="class or interface in java.util" class="externalLink">addAll</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true#contains(java.lang.Object)" title="class or interface in java.util" class="externalLink">contains</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true#containsAll(java.util.Collection)" title="class or interface in java.util" class="externalLink">containsAll</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true#isEmpty()" title="class or interface in java.util" class="externalLink">isEmpty</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true#remove(java.lang.Object)" title="class or interface in java.util" class="externalLink">remove</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true#removeAll(java.util.Collection)" title="class or interface in java.util" class="externalLink">removeAll</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true#replaceAll(java.util.function.UnaryOperator)" title="class or interface in java.util" class="externalLink">replaceAll</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true#retainAll(java.util.Collection)" title="class or interface in java.util" class="externalLink">retainAll</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true#sort(java.util.Comparator)" title="class or interface in java.util" class="externalLink">sort</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true#spliterator()" title="class or interface in java.util" class="externalLink">spliterator</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true#toArray()" title="class or interface in java.util" class="externalLink">toArray</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true#toArray(T%5B%5D)" title="class or interface in java.util" class="externalLink">toArray</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="createEmpty()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createEmpty</h4>
<pre class="methodSignature">public static&nbsp;<a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;createEmpty()</pre>
<div class="block">Creates an empty trait set.
<p>It has a new cache, which will be shared by any trait set created from
it. Thus each empty trait set is the start of a new ancestral line.</div>
</li>
</ul>
<a id="getTrait(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTrait</h4>
<pre class="methodSignature">public&nbsp;<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&nbsp;getTrait&#8203;(int&nbsp;index)</pre>
<div class="block">Retrieves a RelTrait from the set.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - 0-based index into ordered RelTraitSet</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the RelTrait</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/ArrayIndexOutOfBoundsException.html?is-external=true" title="class or interface in java.lang" class="externalLink">ArrayIndexOutOfBoundsException</a></code> - if index greater than or equal to
<a href="#size()"><code>size()</code></a> or less than 0.</dd>
</dl>
</li>
</ul>
<a id="getTraits(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTraits</h4>
<pre class="methodSignature">public&nbsp;&lt;E extends <a href="RelMultipleTrait.html" title="interface in org.apache.calcite.plan">RelMultipleTrait</a>&gt;&nbsp;<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;E&gt;&nbsp;getTraits&#8203;(int&nbsp;index)</pre>
<div class="block">Retrieves a list of traits from the set.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - 0-based index into ordered RelTraitSet</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the RelTrait</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/ArrayIndexOutOfBoundsException.html?is-external=true" title="class or interface in java.lang" class="externalLink">ArrayIndexOutOfBoundsException</a></code> - if index greater than or equal to
<a href="#size()"><code>size()</code></a> or less than 0.</dd>
</dl>
</li>
</ul>
<a id="get(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
<pre class="methodSignature">public&nbsp;<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&nbsp;get&#8203;(int&nbsp;index)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true#get(int)" title="class or interface in java.util" class="externalLink">get</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractList.html?is-external=true#get(int)" title="class or interface in java.util" class="externalLink">get</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractList.html?is-external=true" title="class or interface in java.util" class="externalLink">AbstractList</a>&lt;<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a id="isEnabled(org.apache.calcite.plan.RelTraitDef)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isEnabled</h4>
<pre class="methodSignature">public&nbsp;&lt;T extends <a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&gt;&nbsp;boolean&nbsp;isEnabled&#8203;(<a href="RelTraitDef.html" title="class in org.apache.calcite.plan">RelTraitDef</a>&lt;T&gt;&nbsp;traitDef)</pre>
<div class="block">Returns whether a given kind of trait is enabled.</div>
</li>
</ul>
<a id="getTrait(org.apache.calcite.plan.RelTraitDef)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTrait</h4>
<pre class="methodSignature">public&nbsp;&lt;T extends <a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&gt;&nbsp;T&nbsp;getTrait&#8203;(<a href="RelTraitDef.html" title="class in org.apache.calcite.plan">RelTraitDef</a>&lt;T&gt;&nbsp;traitDef)</pre>
<div class="block">Retrieves a RelTrait of the given type from the set.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>traitDef</code> - the type of RelTrait to retrieve</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the RelTrait, or null if not found</dd>
</dl>
</li>
</ul>
<a id="getTraits(org.apache.calcite.plan.RelTraitDef)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTraits</h4>
<pre class="methodSignature">public&nbsp;&lt;T extends <a href="RelMultipleTrait.html" title="interface in org.apache.calcite.plan">RelMultipleTrait</a>&gt;&nbsp;<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;&nbsp;getTraits&#8203;(<a href="RelTraitDef.html" title="class in org.apache.calcite.plan">RelTraitDef</a>&lt;T&gt;&nbsp;traitDef)</pre>
<div class="block">Retrieves a list of traits of the given type from the set.
<p>Only valid for traits that support multiple entries. (E.g. collation.)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>traitDef</code> - the type of RelTrait to retrieve</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the RelTrait, or null if not found</dd>
</dl>
</li>
</ul>
<a id="replace(int,org.apache.calcite.plan.RelTrait)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replace</h4>
<pre class="methodSignature">public&nbsp;<a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;replace&#8203;(int&nbsp;index,
<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&nbsp;trait)</pre>
<div class="block">Replaces an existing RelTrait in the set.
Returns a different trait set; does not modify this trait set.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - 0-based index into ordered RelTraitSet</dd>
<dd><code>trait</code> - the new RelTrait</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the old RelTrait at the index</dd>
</dl>
</li>
</ul>
<a id="replace(org.apache.calcite.plan.RelTrait)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replace</h4>
<pre class="methodSignature">public&nbsp;<a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;replace&#8203;(<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&nbsp;trait)</pre>
<div class="block">Returns a trait set consisting of the current set plus a new trait.
<p>If the set does not contain a trait of the same <a href="RelTraitDef.html" title="class in org.apache.calcite.plan"><code>RelTraitDef</code></a>,
the trait is ignored, and this trait set is returned.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>trait</code> - the new trait</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>New set</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#plus(org.apache.calcite.plan.RelTrait)"><code>plus(RelTrait)</code></a></dd>
</dl>
</li>
</ul>
<a id="replace(java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replace</h4>
<pre class="methodSignature">public&nbsp;&lt;T extends <a href="RelMultipleTrait.html" title="interface in org.apache.calcite.plan">RelMultipleTrait</a>&gt;&nbsp;<a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;replace&#8203;(<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;&nbsp;traits)</pre>
<div class="block">Replaces the trait(s) of a given type with a list of traits of the same
type.
<p>The list must not be empty, and all traits must be of the same type.</div>
</li>
</ul>
<a id="replace(org.apache.calcite.plan.RelTraitDef,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replace</h4>
<pre class="methodSignature">public&nbsp;&lt;T extends <a href="RelMultipleTrait.html" title="interface in org.apache.calcite.plan">RelMultipleTrait</a>&gt;&nbsp;<a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;replace&#8203;(<a href="RelTraitDef.html" title="class in org.apache.calcite.plan">RelTraitDef</a>&lt;T&gt;&nbsp;def,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;&nbsp;traits)</pre>
<div class="block">Replaces the trait(s) of a given type with a list of traits of the same
type.
<p>The list must not be empty, and all traits must be of the same type.</div>
</li>
</ul>
<a id="replaceIfs(org.apache.calcite.plan.RelTraitDef,java.util.function.Supplier)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replaceIfs</h4>
<pre class="methodSignature">public&nbsp;&lt;T extends <a href="RelMultipleTrait.html" title="interface in org.apache.calcite.plan">RelMultipleTrait</a>&gt;&nbsp;<a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;replaceIfs&#8203;(<a href="RelTraitDef.html" title="class in org.apache.calcite.plan">RelTraitDef</a>&lt;T&gt;&nbsp;def,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&lt;<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;&gt;&nbsp;traitSupplier)</pre>
<div class="block">If a given multiple trait is enabled, replaces it by calling the given
function.</div>
</li>
</ul>
<a id="replaceIf(org.apache.calcite.plan.RelTraitDef,java.util.function.Supplier)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replaceIf</h4>
<pre class="methodSignature">public&nbsp;&lt;T extends <a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&gt;&nbsp;<a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;replaceIf&#8203;(<a href="RelTraitDef.html" title="class in org.apache.calcite.plan">RelTraitDef</a>&lt;T&gt;&nbsp;def,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&lt;T&gt;&nbsp;traitSupplier)</pre>
<div class="block">If a given trait is enabled, replaces it by calling the given function.</div>
</li>
</ul>
<a id="apply(org.apache.calcite.util.mapping.Mappings.TargetMapping)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>apply</h4>
<pre class="methodSignature">public&nbsp;<a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;apply&#8203;(<a href="../util/mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a>&nbsp;mapping)</pre>
<div class="block">Applies a mapping to this traitSet.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mapping</code> - Mapping</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>traitSet with mapping applied</dd>
</dl>
</li>
</ul>
<a id="isDefault()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDefault</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isDefault()</pre>
<div class="block">Returns whether all the traits are default trait value.</div>
</li>
</ul>
<a id="isDefaultSansConvention()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDefaultSansConvention</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isDefaultSansConvention()</pre>
<div class="block">Returns whether all the traits except <a href="Convention.html" title="interface in org.apache.calcite.plan"><code>Convention</code></a>
are default trait value.</div>
</li>
</ul>
<a id="equalsSansConvention(org.apache.calcite.plan.RelTraitSet)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equalsSansConvention</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;equalsSansConvention&#8203;(<a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;other)</pre>
<div class="block">Returns whether all the traits except <a href="Convention.html" title="interface in org.apache.calcite.plan"><code>Convention</code></a>
equals with traits in <code>other</code> traitSet.</div>
</li>
</ul>
<a id="getDefault()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefault</h4>
<pre class="methodSignature">public&nbsp;<a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;getDefault()</pre>
<div class="block">Returns a new traitSet with same traitDefs with
current traitSet, but each trait is the default
trait value.</div>
</li>
</ul>
<a id="getDefaultSansConvention()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultSansConvention</h4>
<pre class="methodSignature">public&nbsp;<a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;getDefaultSansConvention()</pre>
<div class="block">Returns a new traitSet with same traitDefs with
current traitSet, but each trait except <a href="Convention.html" title="interface in org.apache.calcite.plan"><code>Convention</code></a>
is the default trait value. <a href="Convention.html" title="interface in org.apache.calcite.plan"><code>Convention</code></a> trait
remains the same with current traitSet.</div>
</li>
</ul>
<a id="getConvention()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConvention</h4>
<pre class="methodSignature">public&nbsp;<a href="Convention.html" title="interface in org.apache.calcite.plan">Convention</a>&nbsp;getConvention()</pre>
<div class="block">Returns <a href="Convention.html" title="interface in org.apache.calcite.plan"><code>Convention</code></a> trait defined by
<a href="ConventionTraitDef.html#INSTANCE"><code>ConventionTraitDef.INSTANCE</code></a>, or null if the
<a href="ConventionTraitDef.html#INSTANCE"><code>ConventionTraitDef.INSTANCE</code></a> is not registered
in this traitSet.</div>
</li>
</ul>
<a id="getDistribution()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDistribution</h4>
<pre class="methodSignature">public&nbsp;&lt;T extends <a href="../rel/RelDistribution.html" title="interface in org.apache.calcite.rel">RelDistribution</a>&gt;&nbsp;T&nbsp;getDistribution()</pre>
<div class="block">Returns <a href="../rel/RelDistribution.html" title="interface in org.apache.calcite.rel"><code>RelDistribution</code></a> trait defined by
<a href="../rel/RelDistributionTraitDef.html#INSTANCE"><code>RelDistributionTraitDef.INSTANCE</code></a>, or null if the
<a href="../rel/RelDistributionTraitDef.html#INSTANCE"><code>RelDistributionTraitDef.INSTANCE</code></a> is not registered
in this traitSet.</div>
</li>
</ul>
<a id="getCollation()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCollation</h4>
<pre class="methodSignature">public&nbsp;&lt;T extends <a href="../rel/RelCollation.html" title="interface in org.apache.calcite.rel">RelCollation</a>&gt;&nbsp;T&nbsp;getCollation()</pre>
<div class="block">Returns <a href="../rel/RelCollation.html" title="interface in org.apache.calcite.rel"><code>RelCollation</code></a> trait defined by
<a href="../rel/RelCollationTraitDef.html#INSTANCE"><code>RelCollationTraitDef.INSTANCE</code></a>, or null if the
<a href="../rel/RelCollationTraitDef.html#INSTANCE"><code>RelCollationTraitDef.INSTANCE</code></a> is not registered
in this traitSet.</div>
</li>
</ul>
<a id="size()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>size</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;size()</pre>
<div class="block">Returns the size of the RelTraitSet.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/Collection.html?is-external=true#size()" title="class or interface in java.util" class="externalLink">size</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true#size()" title="class or interface in java.util" class="externalLink">size</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractCollection.html?is-external=true#size()" title="class or interface in java.util" class="externalLink">size</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractCollection.html?is-external=true" title="class or interface in java.util" class="externalLink">AbstractCollection</a>&lt;<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the size of the RelTraitSet.</dd>
</dl>
</li>
</ul>
<a id="canonize(org.apache.calcite.plan.RelTrait)">
<!-- -->
</a><a id="canonize(T)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>canonize</h4>
<pre class="methodSignature">public&nbsp;&lt;T extends <a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&gt;&nbsp;T&nbsp;canonize&#8203;(T&nbsp;trait)</pre>
<div class="block">Converts a trait to canonical form.
<p>After canonization, t1.equals(t2) if and only if t1 == t2.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>trait</code> - Trait</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Trait in canonical form</dd>
</dl>
</li>
</ul>
<a id="equals(java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</pre>
<div class="block">Compares two RelTraitSet objects for equality.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/Collection.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.util" class="externalLink">equals</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.util" class="externalLink">equals</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractList.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.util" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractList.html?is-external=true" title="class or interface in java.util" class="externalLink">AbstractList</a>&lt;<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>obj</code> - another RelTraitSet</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if traits are equal and in the same order, false otherwise</dd>
</dl>
</li>
</ul>
<a id="hashCode()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hashCode</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/Collection.html?is-external=true#hashCode()" title="class or interface in java.util" class="externalLink">hashCode</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true#hashCode()" title="class or interface in java.util" class="externalLink">hashCode</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractList.html?is-external=true#hashCode()" title="class or interface in java.util" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractList.html?is-external=true" title="class or interface in java.util" class="externalLink">AbstractList</a>&lt;<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a id="satisfies(org.apache.calcite.plan.RelTraitSet)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>satisfies</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;satisfies&#8203;(<a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;that)</pre>
<div class="block">Returns whether this trait set satisfies another trait set.
<p>For that to happen, each trait satisfies the corresponding trait in the
other set. In particular, each trait set satisfies itself, because each
trait subsumes itself.
<p>Intuitively, if a relational expression is needed that has trait set
S (A, B), and trait set S1 (A1, B1) subsumes S, then any relational
expression R in S1 meets that need.
<p>For example, if we need a relational expression that has
trait set S = {enumerable convention, sorted on [C1 asc]}, and R
has {enumerable convention, sorted on [C3], [C1, C2]}. R has two
sort keys, but one them [C1, C2] satisfies S [C1], and that is enough.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>that</code> - another RelTraitSet</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>whether this trait set satisfies other trait set</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="RelTrait.html#satisfies(org.apache.calcite.plan.RelTrait)"><code>RelTrait.satisfies(RelTrait)</code></a></dd>
</dl>
</li>
</ul>
<a id="matches(org.apache.calcite.plan.RelTraitSet)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>matches</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;matches&#8203;(<a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;that)</pre>
<div class="block">Compares two RelTraitSet objects to see if they match for the purposes of
firing a rule. A null RelTrait within a RelTraitSet indicates a wildcard:
any RelTrait in the other RelTraitSet will match. If one RelTraitSet is
smaller than the other, comparison stops when the last RelTrait from the
smaller set has been examined and the remaining RelTraits in the larger
set are assumed to match.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>that</code> - another RelTraitSet</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the RelTraitSets match, false otherwise</dd>
</dl>
</li>
</ul>
<a id="contains(org.apache.calcite.plan.RelTrait)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>contains</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;contains&#8203;(<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&nbsp;trait)</pre>
<div class="block">Returns whether this trait set contains a given trait.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>trait</code> - Sought trait</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether set contains given trait</dd>
</dl>
</li>
</ul>
<a id="containsIfApplicable(org.apache.calcite.plan.RelTrait)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>containsIfApplicable</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;containsIfApplicable&#8203;(<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&nbsp;trait)</pre>
<div class="block">Returns whether this trait set contains the given trait, or whether the
trait is not present because its <a href="RelTraitDef.html" title="class in org.apache.calcite.plan"><code>RelTraitDef</code></a> is not enabled.
Returns false if another trait of the same <code>RelTraitDef</code> is
present.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>trait</code> - Trait</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether trait is present, or is absent because disabled</dd>
</dl>
</li>
</ul>
<a id="comprises(org.apache.calcite.plan.RelTrait...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>comprises</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;comprises&#8203;(<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>...&nbsp;relTraits)</pre>
<div class="block">Returns whether this trait set comprises precisely the list of given
traits.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>relTraits</code> - Traits</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether this trait set's traits are the same as the argument</dd>
</dl>
</li>
</ul>
<a id="toString()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractCollection.html?is-external=true#toString()" title="class or interface in java.util" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/AbstractCollection.html?is-external=true" title="class or interface in java.util" class="externalLink">AbstractCollection</a>&lt;<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a id="computeString()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>computeString</h4>
<pre class="methodSignature">protected&nbsp;<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;computeString()</pre>
<div class="block">Outputs the traits of this set as a String. Traits are output in order,
separated by periods.</div>
</li>
</ul>
<a id="plus(org.apache.calcite.plan.RelTrait)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>plus</h4>
<pre class="methodSignature">public&nbsp;<a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;plus&#8203;(<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&nbsp;trait)</pre>
<div class="block">Returns this trait set with a given trait added or overridden. Does not
modify this trait set.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>trait</code> - Trait</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Trait set with given trait</dd>
</dl>
</li>
</ul>
<a id="plusAll(org.apache.calcite.plan.RelTrait[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>plusAll</h4>
<pre class="methodSignature">public&nbsp;<a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;plusAll&#8203;(<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>[]&nbsp;traits)</pre>
</li>
</ul>
<a id="merge(org.apache.calcite.plan.RelTraitSet)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>merge</h4>
<pre class="methodSignature">public&nbsp;<a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;merge&#8203;(<a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;additionalTraits)</pre>
</li>
</ul>
<a id="difference(org.apache.calcite.plan.RelTraitSet)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>difference</h4>
<pre class="methodSignature">public&nbsp;com.google.common.collect.ImmutableList&lt;<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&gt;&nbsp;difference&#8203;(<a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;traitSet)</pre>
<div class="block">Returns a list of traits that are in <code>traitSet</code> but not in this
RelTraitSet.</div>
</li>
</ul>
<a id="allSimple()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allSimple</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;allSimple()</pre>
<div class="block">Returns whether there are any composite traits in this set.</div>
</li>
</ul>
<a id="simplify()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>simplify</h4>
<pre class="methodSignature">public&nbsp;<a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;simplify()</pre>
<div class="block">Returns a trait set similar to this one but with all composite traits
flattened.</div>
</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="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 class="aboutLanguage"><b>Apache Calcite</b></div>
</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>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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 &copy; 2012-2020 Apache Software Foundation. All Rights Reserved.</small></p>
</footer>
</body>
</html>