blob: c50d2aad76eded59363b28a0d62bfd977ee1b444 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>OAuthUtils (Drill : 1.20.3 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="OAuthUtils (Drill : 1.20.3 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/OAuthUtils.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">
<li><a href="../../../../../../../org/apache/drill/exec/store/http/oauth/AccessTokenRepository.html" title="class in org.apache.drill.exec.store.http.oauth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/drill/exec/store/http/oauth/OAuthUtils.html" target="_top">Frames</a></li>
<li><a href="OAuthUtils.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</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>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&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>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</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.drill.exec.store.http.oauth</div>
<h2 title="Class OAuthUtils" class="title">Class OAuthUtils</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="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.drill.exec.store.http.oauth.OAuthUtils</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">OAuthUtils</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/store/http/oauth/OAuthUtils.html#OAuthUtils--">OAuthUtils</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<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></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/store/http/oauth/OAuthUtils.html#buildAccessTokenURL-org.apache.drill.common.logical.security.CredentialsProvider-">buildAccessTokenURL</a></span>(<a href="../../../../../../../org/apache/drill/common/logical/security/CredentialsProvider.html" title="interface in org.apache.drill.common.logical.security">CredentialsProvider</a>&nbsp;credentialsProvider)</code>
<div class="block">Helper method for building the access token URL.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static okhttp3.Request</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/store/http/oauth/OAuthUtils.html#getAccessTokenRequest-org.apache.drill.common.logical.security.CredentialsProvider-java.lang.String-java.lang.String-">getAccessTokenRequest</a></span>(<a href="../../../../../../../org/apache/drill/common/logical/security/CredentialsProvider.html" title="interface in org.apache.drill.common.logical.security">CredentialsProvider</a>&nbsp;credentialsProvider,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;authenticationCode,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;callbackURL)</code>
<div class="block">Crafts a POST request to obtain an access token.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static okhttp3.Request</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/store/http/oauth/OAuthUtils.html#getAccessTokenRequestFromRefreshToken-org.apache.drill.common.logical.security.CredentialsProvider-java.lang.String-">getAccessTokenRequestFromRefreshToken</a></span>(<a href="../../../../../../../org/apache/drill/common/logical/security/CredentialsProvider.html" title="interface in org.apache.drill.common.logical.security">CredentialsProvider</a>&nbsp;credentialsProvider,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;refreshToken)</code>
<div class="block">Crafts a POST request to obtain an access token.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/store/http/oauth/OAuthUtils.html#getOAuthTokens-okhttp3.OkHttpClient-okhttp3.Request-">getOAuthTokens</a></span>(okhttp3.OkHttpClient&nbsp;client,
okhttp3.Request&nbsp;request)</code>
<div class="block">This function is called in after the user has obtained an OAuth Authorization Code.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static okhttp3.RequestBody</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/store/http/oauth/OAuthUtils.html#getPostRequest-org.apache.drill.common.logical.security.CredentialsProvider-java.lang.String-java.lang.String-">getPostRequest</a></span>(<a href="../../../../../../../org/apache/drill/common/logical/security/CredentialsProvider.html" title="interface in org.apache.drill.common.logical.security">CredentialsProvider</a>&nbsp;credentialsProvider,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;authorizationCode,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;callbackURL)</code>
<div class="block">Crafts a POST request to obtain an access token.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static okhttp3.RequestBody</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/store/http/oauth/OAuthUtils.html#getPostRequestForTokenRefresh-org.apache.drill.common.logical.security.CredentialsProvider-java.lang.String-">getPostRequestForTokenRefresh</a></span>(<a href="../../../../../../../org/apache/drill/common/logical/security/CredentialsProvider.html" title="interface in org.apache.drill.common.logical.security">CredentialsProvider</a>&nbsp;credentialsProvider,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;refreshToken)</code>
<div class="block">Crafts a POST request for refreshing an access token when a refresh token is present.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in 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="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in 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="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="OAuthUtils--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>OAuthUtils</h4>
<pre>public&nbsp;OAuthUtils()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getPostRequest-org.apache.drill.common.logical.security.CredentialsProvider-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPostRequest</h4>
<pre>public static&nbsp;okhttp3.RequestBody&nbsp;getPostRequest(<a href="../../../../../../../org/apache/drill/common/logical/security/CredentialsProvider.html" title="interface in org.apache.drill.common.logical.security">CredentialsProvider</a>&nbsp;credentialsProvider,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;authorizationCode,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;callbackURL)</pre>
<div class="block">Crafts a POST request to obtain an access token.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>credentialsProvider</code> - A credential provider containing the clientID, clientSecret and authorizationCode</dd>
<dd><code>authorizationCode</code> - The authorization code from the OAuth2.0 enabled API</dd>
<dd><code>callbackURL</code> - The callback URL. For our purposes this is obtained from the incoming Drill request as it all goes to the same place.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A Request Body to obtain an access token</dd>
</dl>
</li>
</ul>
<a name="getPostRequestForTokenRefresh-org.apache.drill.common.logical.security.CredentialsProvider-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPostRequestForTokenRefresh</h4>
<pre>public static&nbsp;okhttp3.RequestBody&nbsp;getPostRequestForTokenRefresh(<a href="../../../../../../../org/apache/drill/common/logical/security/CredentialsProvider.html" title="interface in org.apache.drill.common.logical.security">CredentialsProvider</a>&nbsp;credentialsProvider,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;refreshToken)</pre>
<div class="block">Crafts a POST request for refreshing an access token when a refresh token is present.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>credentialsProvider</code> - A credential provider containing the clientID, clientSecret and refreshToken</dd>
<dd><code>refreshToken</code> - The refresh token</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A Request Body with the correct parameters for obtaining an access token</dd>
</dl>
</li>
</ul>
<a name="buildAccessTokenURL-org.apache.drill.common.logical.security.CredentialsProvider-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildAccessTokenURL</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;buildAccessTokenURL(<a href="../../../../../../../org/apache/drill/common/logical/security/CredentialsProvider.html" title="interface in org.apache.drill.common.logical.security">CredentialsProvider</a>&nbsp;credentialsProvider)</pre>
<div class="block">Helper method for building the access token URL.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>credentialsProvider</code> - The credentialsProvider containing all the OAuth pieces.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The URL string for obtaining an Auth Code.</dd>
</dl>
</li>
</ul>
<a name="getAccessTokenRequest-org.apache.drill.common.logical.security.CredentialsProvider-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAccessTokenRequest</h4>
<pre>public static&nbsp;okhttp3.Request&nbsp;getAccessTokenRequest(<a href="../../../../../../../org/apache/drill/common/logical/security/CredentialsProvider.html" title="interface in org.apache.drill.common.logical.security">CredentialsProvider</a>&nbsp;credentialsProvider,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;authenticationCode,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;callbackURL)</pre>
<div class="block">Crafts a POST request to obtain an access token. This method should be used for the initial call
to the OAuth API when you are exchanging the authorization code for an access token.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>credentialsProvider</code> - The credentialsProvider containing the client_id, client_secret, and auth_code.</dd>
<dd><code>authenticationCode</code> - The authentication code from the API.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A request to obtain the access token.</dd>
</dl>
</li>
</ul>
<a name="getAccessTokenRequestFromRefreshToken-org.apache.drill.common.logical.security.CredentialsProvider-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAccessTokenRequestFromRefreshToken</h4>
<pre>public static&nbsp;okhttp3.Request&nbsp;getAccessTokenRequestFromRefreshToken(<a href="../../../../../../../org/apache/drill/common/logical/security/CredentialsProvider.html" title="interface in org.apache.drill.common.logical.security">CredentialsProvider</a>&nbsp;credentialsProvider,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;refreshToken)</pre>
<div class="block">Crafts a POST request to obtain an access token. This method should be used for the additional calls
to the OAuth API when you are refreshing the access token. The refresh token must be populated for this
to be successful.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>credentialsProvider</code> - The credential provider containing the client_id, client_secret, and refresh token.</dd>
<dd><code>refreshToken</code> - The OAuth2.0 refresh token</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A request to obtain the access token.</dd>
</dl>
</li>
</ul>
<a name="getOAuthTokens-okhttp3.OkHttpClient-okhttp3.Request-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getOAuthTokens</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getOAuthTokens(okhttp3.OkHttpClient&nbsp;client,
okhttp3.Request&nbsp;request)</pre>
<div class="block">This function is called in after the user has obtained an OAuth Authorization Code.
It returns a map of any tokens returned which should be an access_token and an optional
refresh_token.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>client</code> - The OkHTTP3 client.</dd>
<dd><code>request</code> - The finalized Request to obtain the tokens. This request should be a POST request
containing a client_id, client_secret, authorization code, and grant type.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a Map of any tokens returned.</dd>
</dl>
</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="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/OAuthUtils.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">
<li><a href="../../../../../../../org/apache/drill/exec/store/http/oauth/AccessTokenRepository.html" title="class in org.apache.drill.exec.store.http.oauth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/drill/exec/store/http/oauth/OAuthUtils.html" target="_top">Frames</a></li>
<li><a href="OAuthUtils.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../../allclasses-noframe.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>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&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>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 1970 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>