blob: a249449f142b3e405eb094102eb00ab1114ba4bf [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>RelTraitSet (Apache Calcite calcite API)</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="RelTraitSet (Apache Calcite calcite API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":9,"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":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10};
var tabs = {65535:["t0","所有方法"],1:["t1","静态方法"],2:["t2","实例方法"],8:["t4","具体方法"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../../../../overview-summary.html">概览</a></li>
<li><a href="package-summary.html">程序包</a></li>
<li class="navBarCell1Rev"></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../../index-all.html">索引</a></li>
<li><a href="../../../../help-doc.html">帮助</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/calcite/plan/RelTraitPropagationVisitor.html" title="org.apache.calcite.plan中的类"><span class="typeNameLink">上一个类</span></a></li>
<li><a href="../../../../org/apache/calcite/plan/RexImplicationChecker.html" title="org.apache.calcite.plan中的类"><span class="typeNameLink">下一个类</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/calcite/plan/RelTraitSet.html" target="_top">框架</a></li>
<li><a href="RelTraitSet.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>概要:&nbsp;</li>
<li>嵌套&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.java.util.AbstractList">字段</a>&nbsp;|&nbsp;</li>
<li>构造器&nbsp;|&nbsp;</li>
<li><a href="#method.summary">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li>构造器&nbsp;|&nbsp;</li>
<li><a href="#method.detail">方法</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.calcite.plan</div>
<h2 title="类 RelTraitSet" class="title">类 RelTraitSet</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="java.lang中的类或接口">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractCollection.html?is-external=true" title="java.util中的类或接口">java.util.AbstractCollection</a>&lt;E&gt;</li>
<li>
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractList.html?is-external=true" title="java.util中的类或接口">java.util.AbstractList</a>&lt;<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="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>所有已实现的接口:</dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="java.lang中的类或接口">Iterable</a>&lt;<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&gt;, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="java.util中的类或接口">Collection</a>&lt;<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&gt;, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&gt;</dd>
</dl>
<hr>
<br>
<pre>public final class <span class="typeNameLabel">RelTraitSet</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractList.html?is-external=true" title="java.util中的类或接口">AbstractList</a>&lt;<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&gt;</pre>
<div class="block">RelTraitSet represents an ordered set of <a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口"><code>RelTrait</code></a>s.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>字段概要</h3>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.java.util.AbstractList">
<!-- -->
</a>
<h3>从类继承的字段&nbsp;java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractList.html?is-external=true" title="java.util中的类或接口">AbstractList</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractList.html?is-external=true#modCount" title="java.util中的类或接口">modCount</a></code></li>
</ul>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>方法概要</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="方法概要表, 列表方法和解释">
<caption><span id="t0" class="activeTableTab"><span>所有方法</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">静态方法</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">实例方法</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">具体方法</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">限定符和类型</th>
<th class="colLast" scope="col">方法和说明</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#allSimple--">allSimple</a></span>()</code>
<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>&lt;T extends <a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&gt;<br>T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#canonize-T-">canonize</a></span>(T&nbsp;trait)</code>
<div class="block">Converts a trait to canonical form.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#comprises-org.apache.calcite.plan.RelTrait...-">comprises</a></span>(<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>...&nbsp;relTraits)</code>
<div class="block">Returns whether this trait set comprises precisely the list of given
traits.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#computeString--">computeString</a></span>()</code>
<div class="block">Outputs the traits of this set as a String.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#contains-org.apache.calcite.plan.RelTrait-">contains</a></span>(<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&nbsp;trait)</code>
<div class="block">Returns whether this trait set contains a given trait.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#containsIfApplicable-org.apache.calcite.plan.RelTrait-">containsIfApplicable</a></span>(<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&nbsp;trait)</code>
<div class="block">Returns whether this trait set contains the given trait, or whether the
trait is not present because its <a href="../../../../org/apache/calcite/plan/RelTraitDef.html" title="org.apache.calcite.plan中的类"><code>RelTraitDef</code></a> is not enabled.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="org.apache.calcite.plan中的类">RelTraitSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#createEmpty--">createEmpty</a></span>()</code>
<div class="block">Creates an empty trait set.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>com.google.common.collect.ImmutableList&lt;<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#difference-org.apache.calcite.plan.RelTraitSet-">difference</a></span>(<a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="org.apache.calcite.plan中的类">RelTraitSet</a>&nbsp;traitSet)</code>
<div class="block">Returns a list of traits that are in <code>traitSet</code> but not in this
RelTraitSet.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="java.lang中的类或接口">Object</a>&nbsp;obj)</code>
<div class="block">Compares two RelTraitSet objects for equality.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#get-int-">get</a></span>(int&nbsp;index)</code>&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#getTrait-int-">getTrait</a></span>(int&nbsp;index)</code>
<div class="block">Retrieves a RelTrait from the set.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>&lt;T extends <a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&gt;<br>T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#getTrait-org.apache.calcite.plan.RelTraitDef-">getTrait</a></span>(<a href="../../../../org/apache/calcite/plan/RelTraitDef.html" title="org.apache.calcite.plan中的类">RelTraitDef</a>&lt;T&gt;&nbsp;traitDef)</code>
<div class="block">Retrieves a RelTrait of the given type from the set.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>&lt;E extends <a href="../../../../org/apache/calcite/plan/RelMultipleTrait.html" title="org.apache.calcite.plan中的接口">RelMultipleTrait</a>&gt;<br><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;E&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#getTraits-int-">getTraits</a></span>(int&nbsp;index)</code>
<div class="block">Retrieves a list of traits from the set.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>&lt;T extends <a href="../../../../org/apache/calcite/plan/RelMultipleTrait.html" title="org.apache.calcite.plan中的接口">RelMultipleTrait</a>&gt;<br><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#getTraits-org.apache.calcite.plan.RelTraitDef-">getTraits</a></span>(<a href="../../../../org/apache/calcite/plan/RelTraitDef.html" title="org.apache.calcite.plan中的类">RelTraitDef</a>&lt;T&gt;&nbsp;traitDef)</code>
<div class="block">Retrieves a list of traits of the given type from the set.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>&lt;T extends <a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&gt;<br>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#isEnabled-org.apache.calcite.plan.RelTraitDef-">isEnabled</a></span>(<a href="../../../../org/apache/calcite/plan/RelTraitDef.html" title="org.apache.calcite.plan中的类">RelTraitDef</a>&lt;T&gt;&nbsp;traitDef)</code>
<div class="block">Returns whether a given kind of trait is enabled.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#matches-org.apache.calcite.plan.RelTraitSet-">matches</a></span>(<a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="org.apache.calcite.plan中的类">RelTraitSet</a>&nbsp;that)</code>
<div class="block">Compares two RelTraitSet objects to see if they match for the purposes of
firing a rule.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="org.apache.calcite.plan中的类">RelTraitSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#merge-org.apache.calcite.plan.RelTraitSet-">merge</a></span>(<a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="org.apache.calcite.plan中的类">RelTraitSet</a>&nbsp;additionalTraits)</code>&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="org.apache.calcite.plan中的类">RelTraitSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#plus-org.apache.calcite.plan.RelTrait-">plus</a></span>(<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&nbsp;trait)</code>
<div class="block">Returns this trait set with a given trait added or overridden.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="org.apache.calcite.plan中的类">RelTraitSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#plusAll-org.apache.calcite.plan.RelTrait:A-">plusAll</a></span>(<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>[]&nbsp;traits)</code>&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="org.apache.calcite.plan中的类">RelTraitSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#replace-int-org.apache.calcite.plan.RelTrait-">replace</a></span>(int&nbsp;index,
<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&nbsp;trait)</code>
<div class="block">Replaces an existing RelTrait in the set.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>&lt;T extends <a href="../../../../org/apache/calcite/plan/RelMultipleTrait.html" title="org.apache.calcite.plan中的接口">RelMultipleTrait</a>&gt;<br><a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="org.apache.calcite.plan中的类">RelTraitSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#replace-java.util.List-">replace</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;T&gt;&nbsp;traits)</code>
<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="i22" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="org.apache.calcite.plan中的类">RelTraitSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#replace-org.apache.calcite.plan.RelTrait-">replace</a></span>(<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&nbsp;trait)</code>
<div class="block">Returns a trait set consisting of the current set plus a new trait.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>&lt;T extends <a href="../../../../org/apache/calcite/plan/RelMultipleTrait.html" title="org.apache.calcite.plan中的接口">RelMultipleTrait</a>&gt;<br><a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="org.apache.calcite.plan中的类">RelTraitSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#replace-org.apache.calcite.plan.RelTraitDef-java.util.List-">replace</a></span>(<a href="../../../../org/apache/calcite/plan/RelTraitDef.html" title="org.apache.calcite.plan中的类">RelTraitDef</a>&lt;T&gt;&nbsp;def,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;T&gt;&nbsp;traits)</code>
<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="i24" class="altColor">
<td class="colFirst"><code>&lt;T extends <a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&gt;<br><a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="org.apache.calcite.plan中的类">RelTraitSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#replaceIf-org.apache.calcite.plan.RelTraitDef-java.util.function.Supplier-">replaceIf</a></span>(<a href="../../../../org/apache/calcite/plan/RelTraitDef.html" title="org.apache.calcite.plan中的类">RelTraitDef</a>&lt;T&gt;&nbsp;def,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="java.util.function中的类或接口">Supplier</a>&lt;T&gt;&nbsp;traitSupplier)</code>
<div class="block">If a given trait is enabled, replaces it by calling the given function.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>&lt;T extends <a href="../../../../org/apache/calcite/plan/RelMultipleTrait.html" title="org.apache.calcite.plan中的接口">RelMultipleTrait</a>&gt;<br><a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="org.apache.calcite.plan中的类">RelTraitSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#replaceIfs-org.apache.calcite.plan.RelTraitDef-java.util.function.Supplier-">replaceIfs</a></span>(<a href="../../../../org/apache/calcite/plan/RelTraitDef.html" title="org.apache.calcite.plan中的类">RelTraitDef</a>&lt;T&gt;&nbsp;def,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="java.util.function中的类或接口">Supplier</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;T&gt;&gt;&nbsp;traitSupplier)</code>
<div class="block">If a given multiple trait is enabled, replaces it by calling the given
function.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#satisfies-org.apache.calcite.plan.RelTraitSet-">satisfies</a></span>(<a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="org.apache.calcite.plan中的类">RelTraitSet</a>&nbsp;that)</code>
<div class="block">Returns whether this trait set satisfies another trait set.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="org.apache.calcite.plan中的类">RelTraitSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#simplify--">simplify</a></span>()</code>
<div class="block">Returns a trait set similar to this one but with all composite traits
flattened.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#size--">size</a></span>()</code>
<div class="block">Returns the size of the RelTraitSet.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#toString--">toString</a></span>()</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.util.AbstractList">
<!-- -->
</a>
<h3>从类继承的方法&nbsp;java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractList.html?is-external=true" title="java.util中的类或接口">AbstractList</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractList.html?is-external=true#add-E-" title="java.util中的类或接口">add</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractList.html?is-external=true#add-int-E-" title="java.util中的类或接口">add</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractList.html?is-external=true#addAll-int-java.util.Collection-" title="java.util中的类或接口">addAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractList.html?is-external=true#clear--" title="java.util中的类或接口">clear</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractList.html?is-external=true#indexOf-java.lang.Object-" title="java.util中的类或接口">indexOf</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractList.html?is-external=true#iterator--" title="java.util中的类或接口">iterator</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractList.html?is-external=true#lastIndexOf-java.lang.Object-" title="java.util中的类或接口">lastIndexOf</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractList.html?is-external=true#listIterator--" title="java.util中的类或接口">listIterator</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractList.html?is-external=true#listIterator-int-" title="java.util中的类或接口">listIterator</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractList.html?is-external=true#remove-int-" title="java.util中的类或接口">remove</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractList.html?is-external=true#removeRange-int-int-" title="java.util中的类或接口">removeRange</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractList.html?is-external=true#set-int-E-" title="java.util中的类或接口">set</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractList.html?is-external=true#subList-int-int-" title="java.util中的类或接口">subList</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.util.AbstractCollection">
<!-- -->
</a>
<h3>从类继承的方法&nbsp;java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractCollection.html?is-external=true" title="java.util中的类或接口">AbstractCollection</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractCollection.html?is-external=true#addAll-java.util.Collection-" title="java.util中的类或接口">addAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractCollection.html?is-external=true#contains-java.lang.Object-" title="java.util中的类或接口">contains</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractCollection.html?is-external=true#containsAll-java.util.Collection-" title="java.util中的类或接口">containsAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractCollection.html?is-external=true#isEmpty--" title="java.util中的类或接口">isEmpty</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractCollection.html?is-external=true#remove-java.lang.Object-" title="java.util中的类或接口">remove</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractCollection.html?is-external=true#removeAll-java.util.Collection-" title="java.util中的类或接口">removeAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractCollection.html?is-external=true#retainAll-java.util.Collection-" title="java.util中的类或接口">retainAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractCollection.html?is-external=true#toArray--" title="java.util中的类或接口">toArray</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractCollection.html?is-external=true#toArray-T:A-" title="java.util中的类或接口">toArray</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>从类继承的方法&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="java.lang中的类或接口">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="java.lang中的类或接口">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="java.lang中的类或接口">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="java.lang中的类或接口">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="java.lang中的类或接口">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="java.lang中的类或接口">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="java.lang中的类或接口">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="java.lang中的类或接口">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="java.lang中的类或接口">wait</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.util.List">
<!-- -->
</a>
<h3>从接口继承的方法&nbsp;java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true#addAll-java.util.Collection-" title="java.util中的类或接口">addAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true#contains-java.lang.Object-" title="java.util中的类或接口">contains</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true#containsAll-java.util.Collection-" title="java.util中的类或接口">containsAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true#isEmpty--" title="java.util中的类或接口">isEmpty</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true#remove-java.lang.Object-" title="java.util中的类或接口">remove</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true#removeAll-java.util.Collection-" title="java.util中的类或接口">removeAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true#replaceAll-java.util.function.UnaryOperator-" title="java.util中的类或接口">replaceAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true#retainAll-java.util.Collection-" title="java.util中的类或接口">retainAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true#sort-java.util.Comparator-" title="java.util中的类或接口">sort</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true#spliterator--" title="java.util中的类或接口">spliterator</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true#toArray--" title="java.util中的类或接口">toArray</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true#toArray-T:A-" title="java.util中的类或接口">toArray</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.util.Collection">
<!-- -->
</a>
<h3>从接口继承的方法&nbsp;java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="java.util中的类或接口">Collection</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true#parallelStream--" title="java.util中的类或接口">parallelStream</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true#removeIf-java.util.function.Predicate-" title="java.util中的类或接口">removeIf</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true#stream--" title="java.util中的类或接口">stream</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Iterable">
<!-- -->
</a>
<h3>从接口继承的方法&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="java.lang中的类或接口">Iterable</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#forEach-java.util.function.Consumer-" title="java.lang中的类或接口">forEach</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>方法详细资料</h3>
<a name="createEmpty--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createEmpty</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="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 name="getTrait-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTrait</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&nbsp;getTrait(int&nbsp;index)</pre>
<div class="block">Retrieves a RelTrait from the set.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>index</code> - 0-based index into ordered RelTraitSet</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>the RelTrait</dd>
<dt><span class="throwsLabel">抛出:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ArrayIndexOutOfBoundsException.html?is-external=true" title="java.lang中的类或接口">ArrayIndexOutOfBoundsException</a></code> - if index greater than or equal to
<a href="../../../../org/apache/calcite/plan/RelTraitSet.html#size--"><code>size()</code></a> or less than 0.</dd>
</dl>
</li>
</ul>
<a name="getTraits-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTraits</h4>
<pre>public&nbsp;&lt;E extends <a href="../../../../org/apache/calcite/plan/RelMultipleTrait.html" title="org.apache.calcite.plan中的接口">RelMultipleTrait</a>&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;E&gt;&nbsp;getTraits(int&nbsp;index)</pre>
<div class="block">Retrieves a list of traits from the set.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>index</code> - 0-based index into ordered RelTraitSet</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>the RelTrait</dd>
<dt><span class="throwsLabel">抛出:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ArrayIndexOutOfBoundsException.html?is-external=true" title="java.lang中的类或接口">ArrayIndexOutOfBoundsException</a></code> - if index greater than or equal to
<a href="../../../../org/apache/calcite/plan/RelTraitSet.html#size--"><code>size()</code></a> or less than 0.</dd>
</dl>
</li>
</ul>
<a name="get-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&nbsp;get(int&nbsp;index)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true#get-int-" title="java.util中的类或接口">get</a></code>&nbsp;在接口中&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractList.html?is-external=true#get-int-" title="java.util中的类或接口">get</a></code>&nbsp;在类中&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractList.html?is-external=true" title="java.util中的类或接口">AbstractList</a>&lt;<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a name="isEnabled-org.apache.calcite.plan.RelTraitDef-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isEnabled</h4>
<pre>public&nbsp;&lt;T extends <a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&gt;&nbsp;boolean&nbsp;isEnabled(<a href="../../../../org/apache/calcite/plan/RelTraitDef.html" title="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 name="getTrait-org.apache.calcite.plan.RelTraitDef-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTrait</h4>
<pre>public&nbsp;&lt;T extends <a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&gt;&nbsp;T&nbsp;getTrait(<a href="../../../../org/apache/calcite/plan/RelTraitDef.html" title="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">参数:</span></dt>
<dd><code>traitDef</code> - the type of RelTrait to retrieve</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>the RelTrait, or null if not found</dd>
</dl>
</li>
</ul>
<a name="getTraits-org.apache.calcite.plan.RelTraitDef-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTraits</h4>
<pre>public&nbsp;&lt;T extends <a href="../../../../org/apache/calcite/plan/RelMultipleTrait.html" title="org.apache.calcite.plan中的接口">RelMultipleTrait</a>&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;T&gt;&nbsp;getTraits(<a href="../../../../org/apache/calcite/plan/RelTraitDef.html" title="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">参数:</span></dt>
<dd><code>traitDef</code> - the type of RelTrait to retrieve</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>the RelTrait, or null if not found</dd>
</dl>
</li>
</ul>
<a name="replace-int-org.apache.calcite.plan.RelTrait-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replace</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="org.apache.calcite.plan中的类">RelTraitSet</a>&nbsp;replace(int&nbsp;index,
<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="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">参数:</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">返回:</span></dt>
<dd>the old RelTrait at the index</dd>
</dl>
</li>
</ul>
<a name="replace-org.apache.calcite.plan.RelTrait-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replace</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="org.apache.calcite.plan中的类">RelTraitSet</a>&nbsp;replace(<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="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="../../../../org/apache/calcite/plan/RelTraitDef.html" title="org.apache.calcite.plan中的类"><code>RelTraitDef</code></a>,
the trait is ignored, and this trait set is returned.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>trait</code> - the new trait</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>New set</dd>
<dt><span class="seeLabel">另请参阅:</span></dt>
<dd><a href="../../../../org/apache/calcite/plan/RelTraitSet.html#plus-org.apache.calcite.plan.RelTrait-"><code>plus(RelTrait)</code></a></dd>
</dl>
</li>
</ul>
<a name="replace-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replace</h4>
<pre>public&nbsp;&lt;T extends <a href="../../../../org/apache/calcite/plan/RelMultipleTrait.html" title="org.apache.calcite.plan中的接口">RelMultipleTrait</a>&gt;&nbsp;<a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="org.apache.calcite.plan中的类">RelTraitSet</a>&nbsp;replace(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">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 name="replace-org.apache.calcite.plan.RelTraitDef-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replace</h4>
<pre>public&nbsp;&lt;T extends <a href="../../../../org/apache/calcite/plan/RelMultipleTrait.html" title="org.apache.calcite.plan中的接口">RelMultipleTrait</a>&gt;&nbsp;<a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="org.apache.calcite.plan中的类">RelTraitSet</a>&nbsp;replace(<a href="../../../../org/apache/calcite/plan/RelTraitDef.html" title="org.apache.calcite.plan中的类">RelTraitDef</a>&lt;T&gt;&nbsp;def,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">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 name="replaceIfs-org.apache.calcite.plan.RelTraitDef-java.util.function.Supplier-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replaceIfs</h4>
<pre>public&nbsp;&lt;T extends <a href="../../../../org/apache/calcite/plan/RelMultipleTrait.html" title="org.apache.calcite.plan中的接口">RelMultipleTrait</a>&gt;&nbsp;<a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="org.apache.calcite.plan中的类">RelTraitSet</a>&nbsp;replaceIfs(<a href="../../../../org/apache/calcite/plan/RelTraitDef.html" title="org.apache.calcite.plan中的类">RelTraitDef</a>&lt;T&gt;&nbsp;def,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="java.util.function中的类或接口">Supplier</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">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 name="replaceIf-org.apache.calcite.plan.RelTraitDef-java.util.function.Supplier-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replaceIf</h4>
<pre>public&nbsp;&lt;T extends <a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&gt;&nbsp;<a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="org.apache.calcite.plan中的类">RelTraitSet</a>&nbsp;replaceIf(<a href="../../../../org/apache/calcite/plan/RelTraitDef.html" title="org.apache.calcite.plan中的类">RelTraitDef</a>&lt;T&gt;&nbsp;def,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="java.util.function中的类或接口">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 name="size--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>size</h4>
<pre>public&nbsp;int&nbsp;size()</pre>
<div class="block">Returns the size of the RelTraitSet.</div>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true#size--" title="java.util中的类或接口">size</a></code>&nbsp;在接口中&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="java.util中的类或接口">Collection</a>&lt;<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true#size--" title="java.util中的类或接口">size</a></code>&nbsp;在接口中&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractCollection.html?is-external=true#size--" title="java.util中的类或接口">size</a></code>&nbsp;在类中&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractCollection.html?is-external=true" title="java.util中的类或接口">AbstractCollection</a>&lt;<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&gt;</code></dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>the size of the RelTraitSet.</dd>
</dl>
</li>
</ul>
<a name="canonize-org.apache.calcite.plan.RelTrait-">
<!-- -->
</a><a name="canonize-T-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>canonize</h4>
<pre>public&nbsp;&lt;T extends <a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&gt;&nbsp;T&nbsp;canonize(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">参数:</span></dt>
<dd><code>trait</code> - Trait</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>Trait in canonical form</dd>
</dl>
</li>
</ul>
<a name="equals-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
<pre>public&nbsp;boolean&nbsp;equals(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="java.lang中的类或接口">Object</a>&nbsp;obj)</pre>
<div class="block">Compares two RelTraitSet objects for equality.</div>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true#equals-java.lang.Object-" title="java.util中的类或接口">equals</a></code>&nbsp;在接口中&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="java.util中的类或接口">Collection</a>&lt;<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true#equals-java.lang.Object-" title="java.util中的类或接口">equals</a></code>&nbsp;在接口中&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">覆盖:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractList.html?is-external=true#equals-java.lang.Object-" title="java.util中的类或接口">equals</a></code>&nbsp;在类中&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractList.html?is-external=true" title="java.util中的类或接口">AbstractList</a>&lt;<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&gt;</code></dd>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>obj</code> - another RelTraitSet</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>true if traits are equal and in the same order, false otherwise</dd>
</dl>
</li>
</ul>
<a name="hashCode--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hashCode</h4>
<pre>public&nbsp;int&nbsp;hashCode()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true#hashCode--" title="java.util中的类或接口">hashCode</a></code>&nbsp;在接口中&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="java.util中的类或接口">Collection</a>&lt;<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true#hashCode--" title="java.util中的类或接口">hashCode</a></code>&nbsp;在接口中&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">覆盖:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractList.html?is-external=true#hashCode--" title="java.util中的类或接口">hashCode</a></code>&nbsp;在类中&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractList.html?is-external=true" title="java.util中的类或接口">AbstractList</a>&lt;<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a name="satisfies-org.apache.calcite.plan.RelTraitSet-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>satisfies</h4>
<pre>public&nbsp;boolean&nbsp;satisfies(<a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="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">参数:</span></dt>
<dd><code>that</code> - another RelTraitSet</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>whether this trait set satisfies other trait set</dd>
<dt><span class="seeLabel">另请参阅:</span></dt>
<dd><a href="../../../../org/apache/calcite/plan/RelTrait.html#satisfies-org.apache.calcite.plan.RelTrait-"><code>RelTrait.satisfies(RelTrait)</code></a></dd>
</dl>
</li>
</ul>
<a name="matches-org.apache.calcite.plan.RelTraitSet-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>matches</h4>
<pre>public&nbsp;boolean&nbsp;matches(<a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="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">参数:</span></dt>
<dd><code>that</code> - another RelTraitSet</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>true if the RelTraitSets match, false otherwise</dd>
</dl>
</li>
</ul>
<a name="contains-org.apache.calcite.plan.RelTrait-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>contains</h4>
<pre>public&nbsp;boolean&nbsp;contains(<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="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">参数:</span></dt>
<dd><code>trait</code> - Sought trait</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>Whether set contains given trait</dd>
</dl>
</li>
</ul>
<a name="containsIfApplicable-org.apache.calcite.plan.RelTrait-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>containsIfApplicable</h4>
<pre>public&nbsp;boolean&nbsp;containsIfApplicable(<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="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="../../../../org/apache/calcite/plan/RelTraitDef.html" title="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">参数:</span></dt>
<dd><code>trait</code> - Trait</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>Whether trait is present, or is absent because disabled</dd>
</dl>
</li>
</ul>
<a name="comprises-org.apache.calcite.plan.RelTrait...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>comprises</h4>
<pre>public&nbsp;boolean&nbsp;comprises(<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="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">参数:</span></dt>
<dd><code>relTraits</code> - Traits</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>Whether this trait set's traits are the same as the argument</dd>
</dl>
</li>
</ul>
<a name="toString--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;toString()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">覆盖:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractCollection.html?is-external=true#toString--" title="java.util中的类或接口">toString</a></code>&nbsp;在类中&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractCollection.html?is-external=true" title="java.util中的类或接口">AbstractCollection</a>&lt;<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a name="computeString--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>computeString</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">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 name="plus-org.apache.calcite.plan.RelTrait-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>plus</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="org.apache.calcite.plan中的类">RelTraitSet</a>&nbsp;plus(<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="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">参数:</span></dt>
<dd><code>trait</code> - Trait</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>Trait set with given trait</dd>
</dl>
</li>
</ul>
<a name="plusAll-org.apache.calcite.plan.RelTrait:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>plusAll</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="org.apache.calcite.plan中的类">RelTraitSet</a>&nbsp;plusAll(<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>[]&nbsp;traits)</pre>
</li>
</ul>
<a name="merge-org.apache.calcite.plan.RelTraitSet-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>merge</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="org.apache.calcite.plan中的类">RelTraitSet</a>&nbsp;merge(<a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="org.apache.calcite.plan中的类">RelTraitSet</a>&nbsp;additionalTraits)</pre>
</li>
</ul>
<a name="difference-org.apache.calcite.plan.RelTraitSet-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>difference</h4>
<pre>public&nbsp;com.google.common.collect.ImmutableList&lt;<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&gt;&nbsp;difference(<a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="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 name="allSimple--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allSimple</h4>
<pre>public&nbsp;boolean&nbsp;allSimple()</pre>
<div class="block">Returns whether there are any composite traits in this set.</div>
</li>
</ul>
<a name="simplify--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>simplify</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="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>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../../../../overview-summary.html">概览</a></li>
<li><a href="package-summary.html">程序包</a></li>
<li class="navBarCell1Rev"></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../../index-all.html">索引</a></li>
<li><a href="../../../../help-doc.html">帮助</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/calcite/plan/RelTraitPropagationVisitor.html" title="org.apache.calcite.plan中的类"><span class="typeNameLink">上一个类</span></a></li>
<li><a href="../../../../org/apache/calcite/plan/RexImplicationChecker.html" title="org.apache.calcite.plan中的类"><span class="typeNameLink">下一个类</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/calcite/plan/RelTraitSet.html" target="_top">框架</a></li>
<li><a href="RelTraitSet.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">所有类</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>
</div>
<div>
<ul class="subNavList">
<li>概要:&nbsp;</li>
<li>嵌套&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.java.util.AbstractList">字段</a>&nbsp;|&nbsp;</li>
<li>构造器&nbsp;|&nbsp;</li>
<li><a href="#method.summary">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li>构造器&nbsp;|&nbsp;</li>
<li><a href="#method.detail">方法</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &copy; 2012-2020 Apache Software Foundation. All Rights Reserved.</small></p>
</body>
</html>