<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>org.apache.calcite.linq4j.function Class Hierarchy (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="org.apache.calcite.linq4j.function Class Hierarchy (Apache Calcite API)";
        }
    }
    catch(err) {
    }
//-->
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</li>
<li>Use</li>
<li class="navBarCell1Rev">Tree</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>
<a id="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="header">
<h1 class="title">Hierarchy For Package org.apache.calcite.linq4j.function</h1>
<span class="packageHierarchyLabel">Package Hierarchies:</span>
<ul class="horizontal">
<li><a href="../../../../../overview-tree.html">All Packages</a></li>
</ul>
</div>
<div class="contentContainer">
<section role="region">
<h2 title="Class Hierarchy">Class Hierarchy</h2>
<ul>
<li class="circle">java.lang.Object
<ul>
<li class="circle">java.util.AbstractCollection&lt;E&gt; (implements java.util.Collection&lt;E&gt;)
<ul>
<li class="circle">java.util.AbstractList&lt;E&gt; (implements java.util.List&lt;E&gt;)
<ul>
<li class="circle">org.apache.calcite.linq4j.function.<a href="Functions.GeneratingList.html" title="class in org.apache.calcite.linq4j.function"><span class="typeNameLink">Functions.GeneratingList</span></a>&lt;E&gt; (implements java.util.RandomAccess)</li>
</ul>
</li>
</ul>
</li>
<li class="circle">org.apache.calcite.linq4j.function.<a href="Functions.html" title="class in org.apache.calcite.linq4j.function"><span class="typeNameLink">Functions</span></a></li>
<li class="circle">org.apache.calcite.linq4j.function.<a href="Functions.ArrayEqualityComparer.html" title="class in org.apache.calcite.linq4j.function"><span class="typeNameLink">Functions.ArrayEqualityComparer</span></a> (implements org.apache.calcite.linq4j.function.<a href="EqualityComparer.html" title="interface in org.apache.calcite.linq4j.function">EqualityComparer</a>&lt;T&gt;)</li>
<li class="circle">org.apache.calcite.linq4j.function.<a href="Functions.IdentityEqualityComparer.html" title="class in org.apache.calcite.linq4j.function"><span class="typeNameLink">Functions.IdentityEqualityComparer</span></a> (implements org.apache.calcite.linq4j.function.<a href="EqualityComparer.html" title="interface in org.apache.calcite.linq4j.function">EqualityComparer</a>&lt;T&gt;)</li>
<li class="circle">org.apache.calcite.linq4j.function.<a href="Functions.Ignore.html" title="class in org.apache.calcite.linq4j.function"><span class="typeNameLink">Functions.Ignore</span></a>&lt;R,&#8203;T0,&#8203;T1&gt; (implements org.apache.calcite.linq4j.function.<a href="Function0.html" title="interface in org.apache.calcite.linq4j.function">Function0</a>&lt;R&gt;, org.apache.calcite.linq4j.function.<a href="Function1.html" title="interface in org.apache.calcite.linq4j.function">Function1</a>&lt;T0,&#8203;R&gt;, org.apache.calcite.linq4j.function.<a href="Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;T0,&#8203;T1,&#8203;R&gt;)</li>
<li class="circle">org.apache.calcite.linq4j.function.<a href="Functions.NullsFirstComparator.html" title="class in org.apache.calcite.linq4j.function"><span class="typeNameLink">Functions.NullsFirstComparator</span></a> (implements java.util.Comparator&lt;T&gt;, java.io.Serializable)</li>
<li class="circle">org.apache.calcite.linq4j.function.<a href="Functions.NullsFirstReverseComparator.html" title="class in org.apache.calcite.linq4j.function"><span class="typeNameLink">Functions.NullsFirstReverseComparator</span></a> (implements java.util.Comparator&lt;T&gt;, java.io.Serializable)</li>
<li class="circle">org.apache.calcite.linq4j.function.<a href="Functions.NullsLastComparator.html" title="class in org.apache.calcite.linq4j.function"><span class="typeNameLink">Functions.NullsLastComparator</span></a> (implements java.util.Comparator&lt;T&gt;, java.io.Serializable)</li>
<li class="circle">org.apache.calcite.linq4j.function.<a href="Functions.NullsLastReverseComparator.html" title="class in org.apache.calcite.linq4j.function"><span class="typeNameLink">Functions.NullsLastReverseComparator</span></a> (implements java.util.Comparator&lt;T&gt;, java.io.Serializable)</li>
<li class="circle">org.apache.calcite.linq4j.function.<a href="Functions.SelectorEqualityComparer.html" title="class in org.apache.calcite.linq4j.function"><span class="typeNameLink">Functions.SelectorEqualityComparer</span></a>&lt;T,&#8203;T2&gt; (implements org.apache.calcite.linq4j.function.<a href="EqualityComparer.html" title="interface in org.apache.calcite.linq4j.function">EqualityComparer</a>&lt;T&gt;)</li>
</ul>
</li>
</ul>
</section>
<section role="region">
<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
<ul>
<li class="circle">org.apache.calcite.linq4j.function.<a href="EqualityComparer.html" title="interface in org.apache.calcite.linq4j.function"><span class="typeNameLink">EqualityComparer</span></a>&lt;T&gt;</li>
<li class="circle">org.apache.calcite.linq4j.function.<a href="Function.html" title="interface in org.apache.calcite.linq4j.function"><span class="typeNameLink">Function</span></a>&lt;R&gt;
<ul>
<li class="circle">org.apache.calcite.linq4j.function.<a href="DoubleFunction1.html" title="interface in org.apache.calcite.linq4j.function"><span class="typeNameLink">DoubleFunction1</span></a>&lt;T0&gt;</li>
<li class="circle">org.apache.calcite.linq4j.function.<a href="FloatFunction1.html" title="interface in org.apache.calcite.linq4j.function"><span class="typeNameLink">FloatFunction1</span></a>&lt;T0&gt;</li>
<li class="circle">org.apache.calcite.linq4j.function.<a href="Function0.html" title="interface in org.apache.calcite.linq4j.function"><span class="typeNameLink">Function0</span></a>&lt;R&gt;</li>
<li class="circle">org.apache.calcite.linq4j.function.<a href="Function1.html" title="interface in org.apache.calcite.linq4j.function"><span class="typeNameLink">Function1</span></a>&lt;T0,&#8203;R&gt;
<ul>
<li class="circle">org.apache.calcite.linq4j.function.<a href="BigDecimalFunction1.html" title="interface in org.apache.calcite.linq4j.function"><span class="typeNameLink">BigDecimalFunction1</span></a>&lt;T0&gt;</li>
<li class="circle">org.apache.calcite.linq4j.function.<a href="NullableBigDecimalFunction1.html" title="interface in org.apache.calcite.linq4j.function"><span class="typeNameLink">NullableBigDecimalFunction1</span></a>&lt;T0&gt;</li>
<li class="circle">org.apache.calcite.linq4j.function.<a href="NullableDoubleFunction1.html" title="interface in org.apache.calcite.linq4j.function"><span class="typeNameLink">NullableDoubleFunction1</span></a>&lt;T0&gt;</li>
<li class="circle">org.apache.calcite.linq4j.function.<a href="NullableFloatFunction1.html" title="interface in org.apache.calcite.linq4j.function"><span class="typeNameLink">NullableFloatFunction1</span></a>&lt;T0&gt;</li>
<li class="circle">org.apache.calcite.linq4j.function.<a href="NullableIntegerFunction1.html" title="interface in org.apache.calcite.linq4j.function"><span class="typeNameLink">NullableIntegerFunction1</span></a>&lt;T0&gt;</li>
<li class="circle">org.apache.calcite.linq4j.function.<a href="NullableLongFunction1.html" title="interface in org.apache.calcite.linq4j.function"><span class="typeNameLink">NullableLongFunction1</span></a>&lt;T0&gt;</li>
</ul>
</li>
<li class="circle">org.apache.calcite.linq4j.function.<a href="Function2.html" title="interface in org.apache.calcite.linq4j.function"><span class="typeNameLink">Function2</span></a>&lt;T0,&#8203;T1,&#8203;R&gt;</li>
<li class="circle">org.apache.calcite.linq4j.function.<a href="IntegerFunction1.html" title="interface in org.apache.calcite.linq4j.function"><span class="typeNameLink">IntegerFunction1</span></a>&lt;T0&gt;</li>
<li class="circle">org.apache.calcite.linq4j.function.<a href="LongFunction1.html" title="interface in org.apache.calcite.linq4j.function"><span class="typeNameLink">LongFunction1</span></a>&lt;T0&gt;</li>
<li class="circle">org.apache.calcite.linq4j.function.<a href="Predicate1.html" title="interface in org.apache.calcite.linq4j.function"><span class="typeNameLink">Predicate1</span></a>&lt;T0&gt;</li>
<li class="circle">org.apache.calcite.linq4j.function.<a href="Predicate2.html" title="interface in org.apache.calcite.linq4j.function"><span class="typeNameLink">Predicate2</span></a>&lt;T0,&#8203;T1&gt;</li>
</ul>
</li>
</ul>
</section>
<section role="region">
<h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
<ul>
<li class="circle">org.apache.calcite.linq4j.function.<a href="Deterministic.html" title="annotation in org.apache.calcite.linq4j.function"><span class="typeNameLink">Deterministic</span></a> (implements java.lang.annotation.Annotation)</li>
<li class="circle">org.apache.calcite.linq4j.function.<a href="Experimental.html" title="annotation in org.apache.calcite.linq4j.function"><span class="typeNameLink">Experimental</span></a> (implements java.lang.annotation.Annotation)</li>
<li class="circle">org.apache.calcite.linq4j.function.<a href="NonDeterministic.html" title="annotation in org.apache.calcite.linq4j.function"><span class="typeNameLink">NonDeterministic</span></a> (implements java.lang.annotation.Annotation)</li>
<li class="circle">org.apache.calcite.linq4j.function.<a href="Parameter.html" title="annotation in org.apache.calcite.linq4j.function"><span class="typeNameLink">Parameter</span></a> (implements java.lang.annotation.Annotation)</li>
<li class="circle">org.apache.calcite.linq4j.function.<a href="SemiStrict.html" title="annotation in org.apache.calcite.linq4j.function"><span class="typeNameLink">SemiStrict</span></a> (implements java.lang.annotation.Annotation)</li>
<li class="circle">org.apache.calcite.linq4j.function.<a href="Strict.html" title="annotation in org.apache.calcite.linq4j.function"><span class="typeNameLink">Strict</span></a> (implements java.lang.annotation.Annotation)</li>
</ul>
</section>
</div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li>Use</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../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>
<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>
