<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<link rel="canonical" href="https://ignite.apache.org/releases/2.8.1/javadoc/org/apache/ignite/lang/package-frame.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">

<!-- Generated by javadoc (1.8.0_221) on Thu May 21 17:45:11 MSK 2020 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>org.apache.ignite.lang (Ignite 2.8.1)</title>
<meta name="date" content="2020-05-21">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<link rel='shortcut icon' href='https://ignite.apache.org/favicon.ico'/>

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-61232409-1', 'auto');
  ga('send', 'pageview');

</script></head>

<body>
<h1 class="bar"><a href="../../../../org/apache/ignite/lang/package-summary.html" target="classFrame">org.apache.ignite.lang</a></h1>
<div class="indexContainer">
<h2 title="Interfaces">Interfaces</h2>
<ul title="Interfaces">
<li><a href="IgniteAsyncSupport.html" title="interface in org.apache.ignite.lang" target="classFrame"><span class="interfaceName">IgniteAsyncSupport</span></a></li>
<li><a href="IgniteBiClosure.html" title="interface in org.apache.ignite.lang" target="classFrame"><span class="interfaceName">IgniteBiClosure</span></a></li>
<li><a href="IgniteBiInClosure.html" title="interface in org.apache.ignite.lang" target="classFrame"><span class="interfaceName">IgniteBiInClosure</span></a></li>
<li><a href="IgniteBiPredicate.html" title="interface in org.apache.ignite.lang" target="classFrame"><span class="interfaceName">IgniteBiPredicate</span></a></li>
<li><a href="IgniteCallable.html" title="interface in org.apache.ignite.lang" target="classFrame"><span class="interfaceName">IgniteCallable</span></a></li>
<li><a href="IgniteClosure.html" title="interface in org.apache.ignite.lang" target="classFrame"><span class="interfaceName">IgniteClosure</span></a></li>
<li><a href="IgniteFuture.html" title="interface in org.apache.ignite.lang" target="classFrame"><span class="interfaceName">IgniteFuture</span></a></li>
<li><a href="IgniteInClosure.html" title="interface in org.apache.ignite.lang" target="classFrame"><span class="interfaceName">IgniteInClosure</span></a></li>
<li><a href="IgniteOutClosure.html" title="interface in org.apache.ignite.lang" target="classFrame"><span class="interfaceName">IgniteOutClosure</span></a></li>
<li><a href="IgnitePredicate.html" title="interface in org.apache.ignite.lang" target="classFrame"><span class="interfaceName">IgnitePredicate</span></a></li>
<li><a href="IgniteReducer.html" title="interface in org.apache.ignite.lang" target="classFrame"><span class="interfaceName">IgniteReducer</span></a></li>
<li><a href="IgniteRunnable.html" title="interface in org.apache.ignite.lang" target="classFrame"><span class="interfaceName">IgniteRunnable</span></a></li>
</ul>
<h2 title="Classes">Classes</h2>
<ul title="Classes">
<li><a href="IgniteBiTuple.html" title="class in org.apache.ignite.lang" target="classFrame">IgniteBiTuple</a></li>
<li><a href="IgniteProductVersion.html" title="class in org.apache.ignite.lang" target="classFrame">IgniteProductVersion</a></li>
<li><a href="IgniteUuid.html" title="class in org.apache.ignite.lang" target="classFrame">IgniteUuid</a></li>
</ul>
<h2 title="Exceptions">Exceptions</h2>
<ul title="Exceptions">
<li><a href="IgniteFutureCancelledException.html" title="class in org.apache.ignite.lang" target="classFrame">IgniteFutureCancelledException</a></li>
<li><a href="IgniteFutureTimeoutException.html" title="class in org.apache.ignite.lang" target="classFrame">IgniteFutureTimeoutException</a></li>
</ul>
<h2 title="Annotation Types">Annotation Types</h2>
<ul title="Annotation Types">
<li><a href="IgniteAsyncCallback.html" title="annotation in org.apache.ignite.lang" target="classFrame">IgniteAsyncCallback</a></li>
<li><a href="IgniteAsyncSupported.html" title="annotation in org.apache.ignite.lang" target="classFrame">IgniteAsyncSupported</a></li>
<li><a href="IgniteExperimental.html" title="annotation in org.apache.ignite.lang" target="classFrame">IgniteExperimental</a></li>
<li><a href="IgniteNotPeerDeployable.html" title="annotation in org.apache.ignite.lang" target="classFrame">IgniteNotPeerDeployable</a></li>
</ul>
</div>
</body>
</html>
