<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>org.apache.calcite.util Class Hierarchy (Calcite 1.21.0 Test 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.util Class Hierarchy (Calcite 1.21.0 Test 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.util</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">org.apache.calcite.schema.impl.AbstractTable (implements org.apache.calcite.schema.Table, org.apache.calcite.schema.Wrapper)
<ul>
<li class="circle">org.apache.calcite.util.<a href="Smalls.MazeTable.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.MazeTable</span></a> (implements org.apache.calcite.schema.ScannableTable)</li>
</ul>
</li>
<li class="circle">org.apache.calcite.util.<a href="BitSetsTest.html" title="class in org.apache.calcite.util"><span class="typeNameLink">BitSetsTest</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="ChunkListTest.html" title="class in org.apache.calcite.util"><span class="typeNameLink">ChunkListTest</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="ImmutableBitSetTest.html" title="class in org.apache.calcite.util"><span class="typeNameLink">ImmutableBitSetTest</span></a></li>
<li class="circle">java.lang.Number (implements java.io.Serializable)
<ul>
<li class="circle">java.math.BigDecimal (implements java.lang.Comparable&lt;T&gt;)
<ul>
<li class="circle">org.apache.calcite.util.<a href="ReflectVisitorTest.AmbiguousNumber.html" title="class in org.apache.calcite.util"><span class="typeNameLink">ReflectVisitorTest.AmbiguousNumber</span></a> (implements org.apache.calcite.util.<a href="ReflectVisitorTest.CrunchableNumber.html" title="interface in org.apache.calcite.util">ReflectVisitorTest.CrunchableNumber</a>, org.apache.calcite.util.<a href="ReflectVisitorTest.FudgeableNumber.html" title="interface in org.apache.calcite.util">ReflectVisitorTest.FudgeableNumber</a>)
<ul>
<li class="circle">org.apache.calcite.util.<a href="ReflectVisitorTest.SomewhatAmbiguousNumber.html" title="class in org.apache.calcite.util"><span class="typeNameLink">ReflectVisitorTest.SomewhatAmbiguousNumber</span></a> (implements org.apache.calcite.util.<a href="ReflectVisitorTest.DiceyNumber.html" title="interface in org.apache.calcite.util">ReflectVisitorTest.DiceyNumber</a>)</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="circle">org.apache.calcite.util.<a href="PartiallyOrderedSetTest.html" title="class in org.apache.calcite.util"><span class="typeNameLink">PartiallyOrderedSetTest</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="PermutationTestCase.html" title="class in org.apache.calcite.util"><span class="typeNameLink">PermutationTestCase</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="PrecedenceClimbingParserTest.html" title="class in org.apache.calcite.util"><span class="typeNameLink">PrecedenceClimbingParserTest</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="ReflectVisitorTest.html" title="class in org.apache.calcite.util"><span class="typeNameLink">ReflectVisitorTest</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="ReflectVisitorTest.NumberNegater.html" title="class in org.apache.calcite.util"><span class="typeNameLink">ReflectVisitorTest.NumberNegater</span></a> (implements org.apache.calcite.util.ReflectiveVisitor)
<ul>
<li class="circle">org.apache.calcite.util.<a href="ReflectVisitorTest.CarelessNumberNegater.html" title="class in org.apache.calcite.util"><span class="typeNameLink">ReflectVisitorTest.CarelessNumberNegater</span></a>
<ul>
<li class="circle">org.apache.calcite.util.<a href="ReflectVisitorTest.CarefulNumberNegater.html" title="class in org.apache.calcite.util"><span class="typeNameLink">ReflectVisitorTest.CarefulNumberNegater</span></a></li>
</ul>
</li>
<li class="circle">org.apache.calcite.util.<a href="ReflectVisitorTest.CluelessNumberNegater.html" title="class in org.apache.calcite.util"><span class="typeNameLink">ReflectVisitorTest.CluelessNumberNegater</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="ReflectVisitorTest.IndecisiveNumberNegater.html" title="class in org.apache.calcite.util"><span class="typeNameLink">ReflectVisitorTest.IndecisiveNumberNegater</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="ReflectVisitorTest.SomewhatIndecisiveNumberNegater.html" title="class in org.apache.calcite.util"><span class="typeNameLink">ReflectVisitorTest.SomewhatIndecisiveNumberNegater</span></a></li>
</ul>
</li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.AllTypesFunction.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.AllTypesFunction</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.AwkwardFunction.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.AwkwardFunction</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.CountArgs0Function.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.CountArgs0Function</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.CountArgs1Function.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.CountArgs1Function</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.CountArgs1NullableFunction.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.CountArgs1NullableFunction</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.CountArgs2Function.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.CountArgs2Function</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.IntString.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.IntString</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.MultipleFunction.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.MultipleFunction</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.MyAbcdeFunction.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.MyAbcdeFunction</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.MyDeterministicPlusFunction.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.MyDeterministicPlusFunction</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.MyDoubleFunction.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.MyDoubleFunction</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.MyExceptionFunction.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.MyExceptionFunction</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.MyIncrement.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.MyIncrement</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.MyLeftFunction.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.MyLeftFunction</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.MyPlusFunction.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.MyPlusFunction</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.MyStaticSumFunction.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.MyStaticSumFunction</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.MySum3.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.MySum3</span></a> (implements org.apache.calcite.util.<a href="Smalls.MyGenericAggFunction.html" title="interface in org.apache.calcite.util">Smalls.MyGenericAggFunction</a>&lt;A,&#8203;V,&#8203;R&gt;)</li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.MySumFunction.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.MySumFunction</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.MyTableFunction.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.MyTableFunction</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.MyThreeParamsSumFunctionWithFilter1.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.MyThreeParamsSumFunctionWithFilter1</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.MyThreeParamsSumFunctionWithFilter2.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.MyThreeParamsSumFunctionWithFilter2</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.MyToStringFunction.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.MyToStringFunction</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.MyTwoParamsSumFunctionFilter1.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.MyTwoParamsSumFunctionFilter1</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.MyTwoParamsSumFunctionFilter2.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.MyTwoParamsSumFunctionFilter2</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.Null4Function.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.Null4Function</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.Null8Function.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.Null8Function</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.SimpleTableFunction.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.SimpleTableFunction</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.StaticTableMacroFunction.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.StaticTableMacroFunction</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.SumFunctionBadIAdd.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.SumFunctionBadIAdd</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.TableMacroFunction.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.TableMacroFunction</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.TableMacroFunctionWithNamedParameters.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.TableMacroFunctionWithNamedParameters</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.TestStaticTableFunction.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.TestStaticTableFunction</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.WideProductSale.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.WideProductSale</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.WideSaleSchema.html" title="class in org.apache.calcite.util"><span class="typeNameLink">Smalls.WideSaleSchema</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="SourceTest.html" title="class in org.apache.calcite.util"><span class="typeNameLink">SourceTest</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="TestUtil.html" title="class in org.apache.calcite.util"><span class="typeNameLink">TestUtil</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="TestUtilTest.html" title="class in org.apache.calcite.util"><span class="typeNameLink">TestUtilTest</span></a></li>
<li class="circle">java.lang.Throwable (implements java.io.Serializable)
<ul>
<li class="circle">org.apache.calcite.util.<a href="TestUtil.ExtraInformation.html" title="class in org.apache.calcite.util"><span class="typeNameLink">TestUtil.ExtraInformation</span></a></li>
</ul>
</li>
<li class="circle">org.apache.calcite.util.<a href="UtilTest.html" title="class in org.apache.calcite.util"><span class="typeNameLink">UtilTest</span></a></li>
</ul>
</li>
</ul>
</section>
<section role="region">
<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
<ul>
<li class="circle">org.apache.calcite.util.<a href="ReflectVisitorTest.CrunchableNumber.html" title="interface in org.apache.calcite.util"><span class="typeNameLink">ReflectVisitorTest.CrunchableNumber</span></a></li>
<li class="circle">org.apache.calcite.util.<a href="ReflectVisitorTest.FudgeableNumber.html" title="interface in org.apache.calcite.util"><span class="typeNameLink">ReflectVisitorTest.FudgeableNumber</span></a>
<ul>
<li class="circle">org.apache.calcite.util.<a href="ReflectVisitorTest.DiceyNumber.html" title="interface in org.apache.calcite.util"><span class="typeNameLink">ReflectVisitorTest.DiceyNumber</span></a></li>
</ul>
</li>
<li class="circle">org.apache.calcite.util.<a href="Smalls.MyGenericAggFunction.html" title="interface in org.apache.calcite.util"><span class="typeNameLink">Smalls.MyGenericAggFunction</span></a>&lt;A,&#8203;V,&#8203;R&gt;</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>
