blob: e5819c80c453cbfcf4bf084543cfdf3764dc31b8 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Linq4j (Apache Calcite API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Linq4j (Apache Calcite API)";
}
}
catch(err) {
}
//-->
var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":41,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":41,"i19":9,"i20":9,"i21":9,"i22":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Linq4j.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.calcite.linq4j</a></div>
<h2 title="Class Linq4j" class="title">Class Linq4j</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.linq4j.Linq4j</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<pre>public abstract class <span class="typeNameLabel">Linq4j</span>
extends java.lang.Object</pre>
<div class="block">Utility and factory methods for Linq4j.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Linq4j.CartesianProductListEnumerator.html" title="class in org.apache.calcite.linq4j">Linq4j.CartesianProductListEnumerator</a>&lt;<a href="Linq4j.CartesianProductListEnumerator.html" title="type parameter in Linq4j.CartesianProductListEnumerator">E</a>&gt;</span></code></th>
<td class="colLast">
<div class="block">Enumerates over the cartesian product of the given lists, returning
a list for each row.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Linq4j.CollectionEnumerable.html" title="class in org.apache.calcite.linq4j">Linq4j.CollectionEnumerable</a>&lt;<a href="Linq4j.CollectionEnumerable.html" title="type parameter in Linq4j.CollectionEnumerable">T</a>&gt;</span></code></th>
<td class="colLast">
<div class="block">Collection enumerable.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Linq4j.CompositeEnumerable.html" title="class in org.apache.calcite.linq4j">Linq4j.CompositeEnumerable</a>&lt;<a href="Linq4j.CompositeEnumerable.html" title="type parameter in Linq4j.CompositeEnumerable">E</a>&gt;</span></code></th>
<td class="colLast">
<div class="block">Composite enumerable.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Linq4j.EnumeratorIterator.html" title="class in org.apache.calcite.linq4j">Linq4j.EnumeratorIterator</a>&lt;<a href="Linq4j.EnumeratorIterator.html" title="type parameter in Linq4j.EnumeratorIterator">T</a>&gt;</span></code></th>
<td class="colLast">
<div class="block">Iterator that reads from an underlying <a href="Enumerator.html" title="interface in org.apache.calcite.linq4j"><code>Enumerator</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Linq4j.IterableEnumerable.html" title="class in org.apache.calcite.linq4j">Linq4j.IterableEnumerable</a>&lt;<a href="Linq4j.IterableEnumerable.html" title="type parameter in Linq4j.IterableEnumerable">T</a>&gt;</span></code></th>
<td class="colLast">
<div class="block">Iterable enumerable.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Linq4j.IterableEnumerator.html" title="class in org.apache.calcite.linq4j">Linq4j.IterableEnumerator</a>&lt;<a href="Linq4j.IterableEnumerator.html" title="type parameter in Linq4j.IterableEnumerator">T</a>&gt;</span></code></th>
<td class="colLast">
<div class="block">Iterable enumerator.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Linq4j.ListEnumerable.html" title="class in org.apache.calcite.linq4j">Linq4j.ListEnumerable</a>&lt;<a href="Linq4j.ListEnumerable.html" title="type parameter in Linq4j.ListEnumerable">T</a>&gt;</span></code></th>
<td class="colLast">
<div class="block">List enumerable.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Linq4j.ListEnumerator.html" title="class in org.apache.calcite.linq4j">Linq4j.ListEnumerator</a>&lt;<a href="Linq4j.ListEnumerator.html" title="type parameter in Linq4j.ListEnumerator">V</a>&gt;</span></code></th>
<td class="colLast">
<div class="block">Enumerator optimized for random-access list.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Linq4j.SingletonEnumerator.html" title="class in org.apache.calcite.linq4j">Linq4j.SingletonEnumerator</a>&lt;<a href="Linq4j.SingletonEnumerator.html" title="type parameter in Linq4j.SingletonEnumerator">E</a>&gt;</span></code></th>
<td class="colLast">
<div class="block">Enumerator that returns one element.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Linq4j.SingletonNullEnumerator.html" title="class in org.apache.calcite.linq4j">Linq4j.SingletonNullEnumerator</a>&lt;<a href="Linq4j.SingletonNullEnumerator.html" title="type parameter in Linq4j.SingletonNullEnumerator">E</a>&gt;</span></code></th>
<td class="colLast">
<div class="block">Enumerator that returns one null element.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="QueryProvider.html" title="interface in org.apache.calcite.linq4j">QueryProvider</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_PROVIDER">DEFAULT_PROVIDER</a></span></code></th>
<td class="colLast">
<div class="block">Query provider that simply executes a <a href="Queryable.html" title="interface in org.apache.calcite.linq4j"><code>Queryable</code></a> by calling its
enumerator method; does not attempt optimization.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static java.lang.Object</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DUMMY">DUMMY</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="Enumerable.html" title="interface in org.apache.calcite.linq4j">Enumerable</a>&lt;?&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EMPTY_ENUMERABLE">EMPTY_ENUMERABLE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static <a href="Enumerator.html" title="interface in org.apache.calcite.linq4j">Enumerator</a>&lt;java.lang.Object&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EMPTY_ENUMERATOR">EMPTY_ENUMERATOR</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colSecond" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private </code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Linq4j</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated 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>static &lt;T&gt;&nbsp;<a href="Enumerable.html" title="interface in org.apache.calcite.linq4j">Enumerable</a>&lt;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asEnumerable(java.lang.Iterable)">asEnumerable</a></span>&#8203;(java.lang.Iterable&lt;T&gt;&nbsp;iterable)</code></th>
<td class="colLast">
<div class="block">Adapter that converts an <code>Iterable</code> into an <a href="Enumerable.html" title="interface in org.apache.calcite.linq4j"><code>Enumerable</code></a>.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Enumerable.html" title="interface in org.apache.calcite.linq4j">Enumerable</a>&lt;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asEnumerable(java.util.Collection)">asEnumerable</a></span>&#8203;(java.util.Collection&lt;T&gt;&nbsp;collection)</code></th>
<td class="colLast">
<div class="block">Adapter that converts an <code>Collection</code> into an <a href="Enumerable.html" title="interface in org.apache.calcite.linq4j"><code>Enumerable</code></a>.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Enumerable.html" title="interface in org.apache.calcite.linq4j">Enumerable</a>&lt;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asEnumerable(java.util.List)">asEnumerable</a></span>&#8203;(java.util.List&lt;T&gt;&nbsp;list)</code></th>
<td class="colLast">
<div class="block">Adapter that converts an <code>List</code> into an <a href="Enumerable.html" title="interface in org.apache.calcite.linq4j"><code>Enumerable</code></a>.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Enumerable.html" title="interface in org.apache.calcite.linq4j">Enumerable</a>&lt;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asEnumerable(T%5B%5D)">asEnumerable</a></span>&#8203;(T[]&nbsp;ts)</code></th>
<td class="colLast">
<div class="block">Adapter that converts an array into an enumerable.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static &lt;TSource,&#8203;TResult&gt;<br><a href="Enumerable.html" title="interface in org.apache.calcite.linq4j">Enumerable</a>&lt;TResult&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cast(java.lang.Iterable,java.lang.Class)">cast</a></span>&#8203;(java.lang.Iterable&lt;TSource&gt;&nbsp;source,
java.lang.Class&lt;TResult&gt;&nbsp;clazz)</code></th>
<td class="colLast">
<div class="block">Converts the elements of a given Iterable to the specified type.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>private static &lt;T&gt;&nbsp;void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#closeIterator(java.util.Iterator)">closeIterator</a></span>&#8203;(java.util.Iterator&lt;T&gt;&nbsp;iterator)</code></th>
<td class="colLast">
<div class="block">Closes an iterator, if it can be closed.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static &lt;E&gt;&nbsp;<a href="Enumerable.html" title="interface in org.apache.calcite.linq4j">Enumerable</a>&lt;E&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#concat(java.util.List)">concat</a></span>&#8203;(java.util.List&lt;<a href="Enumerable.html" title="interface in org.apache.calcite.linq4j">Enumerable</a>&lt;E&gt;&gt;&nbsp;enumerableList)</code></th>
<td class="colLast">
<div class="block">Concatenates two or more <a href="Enumerable.html" title="interface in org.apache.calcite.linq4j"><code>Enumerable</code></a>s to form a composite
enumerable that contains the union of their elements.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Enumerable.html" title="interface in org.apache.calcite.linq4j">Enumerable</a>&lt;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#emptyEnumerable()">emptyEnumerable</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns an <a href="Enumerable.html" title="interface in org.apache.calcite.linq4j"><code>Enumerable</code></a> that has no elements.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Enumerator.html" title="interface in org.apache.calcite.linq4j">Enumerator</a>&lt;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#emptyEnumerator()">emptyEnumerator</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns an <a href="Enumerator.html" title="interface in org.apache.calcite.linq4j"><code>Enumerator</code></a> that has no elements.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>static &lt;V&gt;&nbsp;<a href="Enumerator.html" title="interface in org.apache.calcite.linq4j">Enumerator</a>&lt;V&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#enumerator(java.util.Collection)">enumerator</a></span>&#8203;(java.util.Collection&lt;? extends V&gt;&nbsp;values)</code></th>
<td class="colLast">
<div class="block">Adapter that converts a collection into an enumerator.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;java.util.Iterator&lt;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#enumeratorIterator(org.apache.calcite.linq4j.Enumerator)">enumeratorIterator</a></span>&#8203;(<a href="Enumerator.html" title="interface in org.apache.calcite.linq4j">Enumerator</a>&lt;T&gt;&nbsp;enumerator)</code></th>
<td class="colLast">
<div class="block">Adapter that converts an enumerator into an iterator.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(T,T)">equals</a></span>&#8203;(T&nbsp;t0,
T&nbsp;t1)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>static java.lang.reflect.Method</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMethod(java.lang.String,java.lang.String,java.lang.Class...)">getMethod</a></span>&#8203;(java.lang.String&nbsp;className,
java.lang.String&nbsp;methodName,
java.lang.Class...&nbsp;parameterTypes)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Enumerator.html" title="interface in org.apache.calcite.linq4j">Enumerator</a>&lt;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#iterableEnumerator(java.lang.Iterable)">iterableEnumerator</a></span>&#8203;(java.lang.Iterable&lt;? extends T&gt;&nbsp;iterable)</code></th>
<td class="colLast">
<div class="block">Adapter that converts an iterable into an enumerator.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>private static &lt;V&gt;&nbsp;<a href="Enumerator.html" title="interface in org.apache.calcite.linq4j">Enumerator</a>&lt;V&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#listEnumerator(java.util.List)">listEnumerator</a></span>&#8203;(java.util.List&lt;? extends V&gt;&nbsp;list)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>static &lt;TSource,&#8203;TResult&gt;<br><a href="Enumerable.html" title="interface in org.apache.calcite.linq4j">Enumerable</a>&lt;TResult&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ofType(java.lang.Iterable,java.lang.Class)">ofType</a></span>&#8203;(java.lang.Iterable&lt;TSource&gt;&nbsp;source,
java.lang.Class&lt;TResult&gt;&nbsp;clazz)</code></th>
<td class="colLast">
<div class="block">Returns elements of a given <code>Iterable</code> that are of the specified
type.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;java.lang.Iterable&lt;java.util.List&lt;T&gt;&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#product(java.lang.Iterable)">product</a></span>&#8203;(java.lang.Iterable&lt;? extends java.lang.Iterable&lt;T&gt;&gt;&nbsp;iterables)</code></th>
<td class="colLast">
<div class="block">Returns the cartesian product of an iterable of iterables.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Enumerator.html" title="interface in org.apache.calcite.linq4j">Enumerator</a>&lt;java.util.List&lt;T&gt;&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#product(java.util.List)">product</a></span>&#8203;(java.util.List&lt;<a href="Enumerator.html" title="interface in org.apache.calcite.linq4j">Enumerator</a>&lt;T&gt;&gt;&nbsp;enumerators)</code></th>
<td class="colLast">
<div class="block">Returns an enumerator that is the cartesian product of the given
enumerators.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;T</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#requireNonNull(T)">requireNonNull</a></span>&#8203;(T&nbsp;o)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Enumerable.html" title="interface in org.apache.calcite.linq4j">Enumerable</a>&lt;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#singletonEnumerable(T)">singletonEnumerable</a></span>&#8203;(T&nbsp;element)</code></th>
<td class="colLast">
<div class="block">Returns an <a href="Enumerable.html" title="interface in org.apache.calcite.linq4j"><code>Enumerable</code></a> that has one element.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Enumerator.html" title="interface in org.apache.calcite.linq4j">Enumerator</a>&lt;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#singletonEnumerator(T)">singletonEnumerator</a></span>&#8203;(T&nbsp;element)</code></th>
<td class="colLast">
<div class="block">Returns an <a href="Enumerator.html" title="interface in org.apache.calcite.linq4j"><code>Enumerator</code></a> that has one element.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Enumerator.html" title="interface in org.apache.calcite.linq4j">Enumerator</a>&lt;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#singletonNullEnumerator()">singletonNullEnumerator</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns an <a href="Enumerator.html" title="interface in org.apache.calcite.linq4j"><code>Enumerator</code></a> that has one null element.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>static &lt;F,&#8203;E&gt;<br><a href="Enumerator.html" title="interface in org.apache.calcite.linq4j">Enumerator</a>&lt;E&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#transform(org.apache.calcite.linq4j.Enumerator,org.apache.calcite.linq4j.function.Function1)">transform</a></span>&#8203;(<a href="Enumerator.html" title="interface in org.apache.calcite.linq4j">Enumerator</a>&lt;F&gt;&nbsp;enumerator,
<a href="function/Function1.html" title="interface in org.apache.calcite.linq4j.function">Function1</a>&lt;F,&#8203;E&gt;&nbsp;func)</code></th>
<td class="colLast">
<div class="block">Applies a function to each element of an Enumerator.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="DUMMY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DUMMY</h4>
<pre>private static final&nbsp;java.lang.Object DUMMY</pre>
</li>
</ul>
<a id="DEFAULT_PROVIDER">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_PROVIDER</h4>
<pre>public static final&nbsp;<a href="QueryProvider.html" title="interface in org.apache.calcite.linq4j">QueryProvider</a> DEFAULT_PROVIDER</pre>
<div class="block">Query provider that simply executes a <a href="Queryable.html" title="interface in org.apache.calcite.linq4j"><code>Queryable</code></a> by calling its
enumerator method; does not attempt optimization.</div>
</li>
</ul>
<a id="EMPTY_ENUMERATOR">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EMPTY_ENUMERATOR</h4>
<pre>private static final&nbsp;<a href="Enumerator.html" title="interface in org.apache.calcite.linq4j">Enumerator</a>&lt;java.lang.Object&gt; EMPTY_ENUMERATOR</pre>
</li>
</ul>
<a id="EMPTY_ENUMERABLE">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>EMPTY_ENUMERABLE</h4>
<pre>public static final&nbsp;<a href="Enumerable.html" title="interface in org.apache.calcite.linq4j">Enumerable</a>&lt;?&gt; EMPTY_ENUMERABLE</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Linq4j</h4>
<pre>private&nbsp;Linq4j()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="getMethod(java.lang.String,java.lang.String,java.lang.Class...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMethod</h4>
<pre class="methodSignature">public static&nbsp;java.lang.reflect.Method&nbsp;getMethod&#8203;(java.lang.String&nbsp;className,
java.lang.String&nbsp;methodName,
java.lang.Class...&nbsp;parameterTypes)</pre>
</li>
</ul>
<a id="enumeratorIterator(org.apache.calcite.linq4j.Enumerator)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>enumeratorIterator</h4>
<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;java.util.Iterator&lt;T&gt;&nbsp;enumeratorIterator&#8203;(<a href="Enumerator.html" title="interface in org.apache.calcite.linq4j">Enumerator</a>&lt;T&gt;&nbsp;enumerator)</pre>
<div class="block">Adapter that converts an enumerator into an iterator.
<p><b>WARNING</b>: The iterator returned by this method does not call
<a href="Enumerator.html#close()"><code>Enumerator.close()</code></a>, so it is not safe to
use with an enumerator that allocates resources.</p></div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - Element type</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>enumerator</code> - Enumerator</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Iterator</dd>
</dl>
</li>
</ul>
<a id="iterableEnumerator(java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>iterableEnumerator</h4>
<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Enumerator.html" title="interface in org.apache.calcite.linq4j">Enumerator</a>&lt;T&gt;&nbsp;iterableEnumerator&#8203;(java.lang.Iterable&lt;? extends T&gt;&nbsp;iterable)</pre>
<div class="block">Adapter that converts an iterable into an enumerator.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - Element type</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>iterable</code> - Iterable</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>enumerator</dd>
</dl>
</li>
</ul>
<a id="asEnumerable(java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>asEnumerable</h4>
<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Enumerable.html" title="interface in org.apache.calcite.linq4j">Enumerable</a>&lt;T&gt;&nbsp;asEnumerable&#8203;(java.util.List&lt;T&gt;&nbsp;list)</pre>
<div class="block">Adapter that converts an <code>List</code> into an <a href="Enumerable.html" title="interface in org.apache.calcite.linq4j"><code>Enumerable</code></a>.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - Element type</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>list</code> - List</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>enumerable</dd>
</dl>
</li>
</ul>
<a id="asEnumerable(java.util.Collection)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>asEnumerable</h4>
<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Enumerable.html" title="interface in org.apache.calcite.linq4j">Enumerable</a>&lt;T&gt;&nbsp;asEnumerable&#8203;(java.util.Collection&lt;T&gt;&nbsp;collection)</pre>
<div class="block">Adapter that converts an <code>Collection</code> into an <a href="Enumerable.html" title="interface in org.apache.calcite.linq4j"><code>Enumerable</code></a>.
<p>It uses more efficient implementations if the iterable happens to
be a <code>List</code>.</p></div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - Element type</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>collection</code> - Collection</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>enumerable</dd>
</dl>
</li>
</ul>
<a id="asEnumerable(java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>asEnumerable</h4>
<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Enumerable.html" title="interface in org.apache.calcite.linq4j">Enumerable</a>&lt;T&gt;&nbsp;asEnumerable&#8203;(java.lang.Iterable&lt;T&gt;&nbsp;iterable)</pre>
<div class="block">Adapter that converts an <code>Iterable</code> into an <a href="Enumerable.html" title="interface in org.apache.calcite.linq4j"><code>Enumerable</code></a>.
<p>It uses more efficient implementations if the iterable happens to
be a <code>Collection</code> or a <code>List</code>.</p></div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - Element type</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>iterable</code> - Iterable</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>enumerable</dd>
</dl>
</li>
</ul>
<a id="asEnumerable(java.lang.Object[])">
<!-- -->
</a><a id="asEnumerable(T[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>asEnumerable</h4>
<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Enumerable.html" title="interface in org.apache.calcite.linq4j">Enumerable</a>&lt;T&gt;&nbsp;asEnumerable&#8203;(T[]&nbsp;ts)</pre>
<div class="block">Adapter that converts an array into an enumerable.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - Element type</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ts</code> - Array</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>enumerable</dd>
</dl>
</li>
</ul>
<a id="enumerator(java.util.Collection)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>enumerator</h4>
<pre class="methodSignature">public static&nbsp;&lt;V&gt;&nbsp;<a href="Enumerator.html" title="interface in org.apache.calcite.linq4j">Enumerator</a>&lt;V&gt;&nbsp;enumerator&#8203;(java.util.Collection&lt;? extends V&gt;&nbsp;values)</pre>
<div class="block">Adapter that converts a collection into an enumerator.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>V</code> - Element type</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>values</code> - Collection</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Enumerator over the collection</dd>
</dl>
</li>
</ul>
<a id="listEnumerator(java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>listEnumerator</h4>
<pre class="methodSignature">private static&nbsp;&lt;V&gt;&nbsp;<a href="Enumerator.html" title="interface in org.apache.calcite.linq4j">Enumerator</a>&lt;V&gt;&nbsp;listEnumerator&#8203;(java.util.List&lt;? extends V&gt;&nbsp;list)</pre>
</li>
</ul>
<a id="transform(org.apache.calcite.linq4j.Enumerator,org.apache.calcite.linq4j.function.Function1)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>transform</h4>
<pre class="methodSignature">public static&nbsp;&lt;F,&#8203;E&gt;&nbsp;<a href="Enumerator.html" title="interface in org.apache.calcite.linq4j">Enumerator</a>&lt;E&gt;&nbsp;transform&#8203;(<a href="Enumerator.html" title="interface in org.apache.calcite.linq4j">Enumerator</a>&lt;F&gt;&nbsp;enumerator,
<a href="function/Function1.html" title="interface in org.apache.calcite.linq4j.function">Function1</a>&lt;F,&#8203;E&gt;&nbsp;func)</pre>
<div class="block">Applies a function to each element of an Enumerator.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>F</code> - Backing element type</dd>
<dd><code>E</code> - Element type</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>enumerator</code> - Backing enumerator</dd>
<dd><code>func</code> - Transform function</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Enumerator</dd>
</dl>
</li>
</ul>
<a id="cast(java.lang.Iterable,java.lang.Class)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cast</h4>
<pre class="methodSignature">public static&nbsp;&lt;TSource,&#8203;TResult&gt;&nbsp;<a href="Enumerable.html" title="interface in org.apache.calcite.linq4j">Enumerable</a>&lt;TResult&gt;&nbsp;cast&#8203;(java.lang.Iterable&lt;TSource&gt;&nbsp;source,
java.lang.Class&lt;TResult&gt;&nbsp;clazz)</pre>
<div class="block">Converts the elements of a given Iterable to the specified type.
<p>This method is implemented by using deferred execution. The immediate
return value is an object that stores all the information that is
required to perform the action. The query represented by this method is
not executed until the object is enumerated either by calling its
<a href="RawEnumerable.html#enumerator()"><code>RawEnumerable.enumerator()</code></a> method directly or by using
<code>for (... in ...)</code>.
<p>Since standard Java <code>Collection</code> objects implement the
<code>Iterable</code> interface, the <code>cast</code> method enables the standard
query operators to be invoked on collections
(including <code>List</code> and <code>Set</code>) by supplying
the necessary type information. For example, <code>ArrayList</code> does not
implement <a href="Enumerable.html" title="interface in org.apache.calcite.linq4j"><code>Enumerable</code></a>&lt;F&gt;, but you can invoke
<blockquote><code>Linq4j.cast(list, Integer.class)</code></blockquote>
<p>to convert the list of an enumerable that can be queried using the
standard query operators.
<p>If an element cannot be cast to type &lt;TResult&gt;, this method will
throw a <code>ClassCastException</code>. To obtain only those elements that
can be cast to type TResult, use the <a href="#ofType(java.lang.Iterable,java.lang.Class)"><code>ofType(java.lang.Iterable&lt;TSource&gt;, java.lang.Class&lt;TResult&gt;)</code></a> method instead.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="ExtendedEnumerable.html#cast(java.lang.Class)"><code>ExtendedEnumerable.cast(Class)</code></a>,
<a href="#ofType(java.lang.Iterable,java.lang.Class)"><code>ofType(java.lang.Iterable&lt;TSource&gt;, java.lang.Class&lt;TResult&gt;)</code></a>,
<a href="#asEnumerable(java.lang.Iterable)"><code>asEnumerable(Iterable)</code></a></dd>
</dl>
</li>
</ul>
<a id="ofType(java.lang.Iterable,java.lang.Class)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ofType</h4>
<pre class="methodSignature">public static&nbsp;&lt;TSource,&#8203;TResult&gt;&nbsp;<a href="Enumerable.html" title="interface in org.apache.calcite.linq4j">Enumerable</a>&lt;TResult&gt;&nbsp;ofType&#8203;(java.lang.Iterable&lt;TSource&gt;&nbsp;source,
java.lang.Class&lt;TResult&gt;&nbsp;clazz)</pre>
<div class="block">Returns elements of a given <code>Iterable</code> that are of the specified
type.
<p>This method is implemented by using deferred execution. The immediate
return value is an object that stores all the information that is
required to perform the action. The query represented by this method is
not executed until the object is enumerated either by calling its
<a href="RawEnumerable.html#enumerator()"><code>RawEnumerable.enumerator()</code></a> method directly or by using
<code>for (... in ...)</code>.
<p>The <code>ofType</code> method returns only those elements in source that
can be cast to type TResult. To instead receive an exception if an
element cannot be cast to type TResult, use
<a href="#cast(java.lang.Iterable,java.lang.Class)"><code>cast(Iterable, Class)</code></a>.</p>
<p>Since standard Java <code>Collection</code> objects implement the
<code>Iterable</code> interface, the <code>cast</code> method enables the standard
query operators to be invoked on collections
(including <code>List</code> and <code>Set</code>) by supplying
the necessary type information. For example, <code>ArrayList</code> does not
implement <a href="Enumerable.html" title="interface in org.apache.calcite.linq4j"><code>Enumerable</code></a>&lt;F&gt;, but you can invoke
<blockquote><code>Linq4j.ofType(list, Integer.class)</code></blockquote>
<p>to convert the list of an enumerable that can be queried using the
standard query operators.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="ExtendedEnumerable.html#cast(java.lang.Class)"><code>ExtendedEnumerable.cast(Class)</code></a>,
<a href="#cast(java.lang.Iterable,java.lang.Class)"><code>cast(java.lang.Iterable&lt;TSource&gt;, java.lang.Class&lt;TResult&gt;)</code></a></dd>
</dl>
</li>
</ul>
<a id="singletonEnumerable(java.lang.Object)">
<!-- -->
</a><a id="singletonEnumerable(T)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>singletonEnumerable</h4>
<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Enumerable.html" title="interface in org.apache.calcite.linq4j">Enumerable</a>&lt;T&gt;&nbsp;singletonEnumerable&#8203;(T&nbsp;element)</pre>
<div class="block">Returns an <a href="Enumerable.html" title="interface in org.apache.calcite.linq4j"><code>Enumerable</code></a> that has one element.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - Element type</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Singleton enumerable</dd>
</dl>
</li>
</ul>
<a id="singletonEnumerator(java.lang.Object)">
<!-- -->
</a><a id="singletonEnumerator(T)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>singletonEnumerator</h4>
<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Enumerator.html" title="interface in org.apache.calcite.linq4j">Enumerator</a>&lt;T&gt;&nbsp;singletonEnumerator&#8203;(T&nbsp;element)</pre>
<div class="block">Returns an <a href="Enumerator.html" title="interface in org.apache.calcite.linq4j"><code>Enumerator</code></a> that has one element.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - Element type</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Singleton enumerator</dd>
</dl>
</li>
</ul>
<a id="singletonNullEnumerator()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>singletonNullEnumerator</h4>
<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Enumerator.html" title="interface in org.apache.calcite.linq4j">Enumerator</a>&lt;T&gt;&nbsp;singletonNullEnumerator()</pre>
<div class="block">Returns an <a href="Enumerator.html" title="interface in org.apache.calcite.linq4j"><code>Enumerator</code></a> that has one null element.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - Element type</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Singleton enumerator</dd>
</dl>
</li>
</ul>
<a id="emptyEnumerable()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>emptyEnumerable</h4>
<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Enumerable.html" title="interface in org.apache.calcite.linq4j">Enumerable</a>&lt;T&gt;&nbsp;emptyEnumerable()</pre>
<div class="block">Returns an <a href="Enumerable.html" title="interface in org.apache.calcite.linq4j"><code>Enumerable</code></a> that has no elements.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - Element type</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Empty enumerable</dd>
</dl>
</li>
</ul>
<a id="emptyEnumerator()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>emptyEnumerator</h4>
<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Enumerator.html" title="interface in org.apache.calcite.linq4j">Enumerator</a>&lt;T&gt;&nbsp;emptyEnumerator()</pre>
<div class="block">Returns an <a href="Enumerator.html" title="interface in org.apache.calcite.linq4j"><code>Enumerator</code></a> that has no elements.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - Element type</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Empty enumerator</dd>
</dl>
</li>
</ul>
<a id="concat(java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>concat</h4>
<pre class="methodSignature">public static&nbsp;&lt;E&gt;&nbsp;<a href="Enumerable.html" title="interface in org.apache.calcite.linq4j">Enumerable</a>&lt;E&gt;&nbsp;concat&#8203;(java.util.List&lt;<a href="Enumerable.html" title="interface in org.apache.calcite.linq4j">Enumerable</a>&lt;E&gt;&gt;&nbsp;enumerableList)</pre>
<div class="block">Concatenates two or more <a href="Enumerable.html" title="interface in org.apache.calcite.linq4j"><code>Enumerable</code></a>s to form a composite
enumerable that contains the union of their elements.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>E</code> - Element type</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>enumerableList</code> - List of enumerable objects</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Composite enumerator</dd>
</dl>
</li>
</ul>
<a id="product(java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>product</h4>
<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Enumerator.html" title="interface in org.apache.calcite.linq4j">Enumerator</a>&lt;java.util.List&lt;T&gt;&gt;&nbsp;product&#8203;(java.util.List&lt;<a href="Enumerator.html" title="interface in org.apache.calcite.linq4j">Enumerator</a>&lt;T&gt;&gt;&nbsp;enumerators)</pre>
<div class="block">Returns an enumerator that is the cartesian product of the given
enumerators.
<p>For example, given enumerator A that returns {"a", "b", "c"} and
enumerator B that returns {"x", "y"}, product(List(A, B)) will return
{List("a", "x"), List("a", "y"),
List("b", "x"), List("b", "y"),
List("c", "x"), List("c", "y")}.</p>
<p>Notice that the cardinality of the result is the product of the
cardinality of the inputs. The enumerators A and B have 3 and 2
elements respectively, and the result has 3 * 2 = 6 elements.
This is always the case. In
particular, if any of the enumerators is empty, the result is empty.</p></div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - Element type</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>enumerators</code> - List of enumerators</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Enumerator over the cartesian product</dd>
</dl>
</li>
</ul>
<a id="product(java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>product</h4>
<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;java.lang.Iterable&lt;java.util.List&lt;T&gt;&gt;&nbsp;product&#8203;(java.lang.Iterable&lt;? extends java.lang.Iterable&lt;T&gt;&gt;&nbsp;iterables)</pre>
<div class="block">Returns the cartesian product of an iterable of iterables.</div>
</li>
</ul>
<a id="equals(java.lang.Object,java.lang.Object)">
<!-- -->
</a><a id="equals(T,T)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
<pre class="methodSignature">@Deprecated
public static&nbsp;&lt;T&gt;&nbsp;boolean&nbsp;equals&#8203;(T&nbsp;t0,
T&nbsp;t1)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Returns whether the arguments are equal to each other.
<p>Equivalent to <code>Objects.equals(java.lang.Object, java.lang.Object)</code> in JDK 1.7 and above.</div>
</li>
</ul>
<a id="requireNonNull(java.lang.Object)">
<!-- -->
</a><a id="requireNonNull(T)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>requireNonNull</h4>
<pre class="methodSignature">@Deprecated
public static&nbsp;&lt;T&gt;&nbsp;T&nbsp;requireNonNull&#8203;(T&nbsp;o)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Throws <code>NullPointerException</code> if argument is null, otherwise
returns argument.
<p>Equivalent to <code>Objects.requireNonNull(T)</code> in JDK 1.7 and
above.</div>
</li>
</ul>
<a id="closeIterator(java.util.Iterator)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>closeIterator</h4>
<pre class="methodSignature">private static&nbsp;&lt;T&gt;&nbsp;void&nbsp;closeIterator&#8203;(java.util.Iterator&lt;T&gt;&nbsp;iterator)</pre>
<div class="block">Closes an iterator, if it can be closed.</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="class-use/Linq4j.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>