<!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 (1.8.0_151) on Thu Jan 18 00:59:43 GMT 2018 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Policy (Apache Taverna Server 3.1.0-incubating API)</title>
<meta name="date" content="2018-01-18">
<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="Policy (Apache Taverna Server 3.1.0-incubating API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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/Policy.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/taverna/server/master/interfaces/MessageDispatcher.html" title="interface in org.apache.taverna.server.master.interfaces"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/taverna/server/master/interfaces/RunStore.html" title="interface in org.apache.taverna.server.master.interfaces"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/taverna/server/master/interfaces/Policy.html" target="_top">Frames</a></li>
<li><a href="Policy.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>Constr&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>Constr&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.taverna.server.master.interfaces</div>
<h2 title="Interface Policy" class="title">Interface Policy</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public interface <span class="typeNameLabel">Policy</span></pre>
<div class="block">Simple policy interface.</div>
<dl>
<dt><span class="simpleTagLabel">Author:</span></dt>
<dd>Donal Fellows</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== 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="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract 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>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/taverna/server/master/interfaces/Policy.html#getMaxRuns--">getMaxRuns</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/taverna/server/master/interfaces/Policy.html#getMaxRuns-org.apache.taverna.server.master.utils.UsernamePrincipal-">getMaxRuns</a></span>(<a href="../../../../../../org/apache/taverna/server/master/utils/UsernamePrincipal.html" title="class in org.apache.taverna.server.master.utils">UsernamePrincipal</a>&nbsp;user)</code>
<div class="block">Get the limit on the number of runs for this user.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/taverna/server/master/interfaces/Policy.html#getOperatingLimit--">getOperatingLimit</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net">URI</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/taverna/server/master/interfaces/Policy.html#listPermittedWorkflowURIs-org.apache.taverna.server.master.utils.UsernamePrincipal-">listPermittedWorkflowURIs</a></span>(<a href="../../../../../../org/apache/taverna/server/master/utils/UsernamePrincipal.html" title="class in org.apache.taverna.server.master.utils">UsernamePrincipal</a>&nbsp;user)</code>
<div class="block">Get the URIs of the workflows that the given user may execute.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/taverna/server/master/interfaces/Policy.html#permitAccess-org.apache.taverna.server.master.utils.UsernamePrincipal-org.apache.taverna.server.master.interfaces.TavernaRun-">permitAccess</a></span>(<a href="../../../../../../org/apache/taverna/server/master/utils/UsernamePrincipal.html" title="class in org.apache.taverna.server.master.utils">UsernamePrincipal</a>&nbsp;user,
            <a href="../../../../../../org/apache/taverna/server/master/interfaces/TavernaRun.html" title="interface in org.apache.taverna.server.master.interfaces">TavernaRun</a>&nbsp;run)</code>
<div class="block">Return whether the user has access to a particular workflow run.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/taverna/server/master/interfaces/Policy.html#permitCreate-org.apache.taverna.server.master.utils.UsernamePrincipal-org.apache.taverna.server.master.common.Workflow-">permitCreate</a></span>(<a href="../../../../../../org/apache/taverna/server/master/utils/UsernamePrincipal.html" title="class in org.apache.taverna.server.master.utils">UsernamePrincipal</a>&nbsp;user,
            <a href="../../../../../../org/apache/taverna/server/master/common/Workflow.html" title="class in org.apache.taverna.server.master.common">Workflow</a>&nbsp;workflow)</code>
<div class="block">Test whether the user can create an instance of the given workflow.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/taverna/server/master/interfaces/Policy.html#permitDestroy-org.apache.taverna.server.master.utils.UsernamePrincipal-org.apache.taverna.server.master.interfaces.TavernaRun-">permitDestroy</a></span>(<a href="../../../../../../org/apache/taverna/server/master/utils/UsernamePrincipal.html" title="class in org.apache.taverna.server.master.utils">UsernamePrincipal</a>&nbsp;user,
             <a href="../../../../../../org/apache/taverna/server/master/interfaces/TavernaRun.html" title="interface in org.apache.taverna.server.master.interfaces">TavernaRun</a>&nbsp;run)</code>
<div class="block">Test whether the user can destroy a workflow instance run or manipulate
 its expiry date.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/taverna/server/master/interfaces/Policy.html#permitUpdate-org.apache.taverna.server.master.utils.UsernamePrincipal-org.apache.taverna.server.master.interfaces.TavernaRun-">permitUpdate</a></span>(<a href="../../../../../../org/apache/taverna/server/master/utils/UsernamePrincipal.html" title="class in org.apache.taverna.server.master.utils">UsernamePrincipal</a>&nbsp;user,
            <a href="../../../../../../org/apache/taverna/server/master/interfaces/TavernaRun.html" title="interface in org.apache.taverna.server.master.interfaces">TavernaRun</a>&nbsp;run)</code>
<div class="block">Test whether the user can modify a workflow run (other than for its
 expiry date).</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/taverna/server/master/interfaces/Policy.html#setPermittedWorkflowURIs-org.apache.taverna.server.master.utils.UsernamePrincipal-java.util.List-">setPermittedWorkflowURIs</a></span>(<a href="../../../../../../org/apache/taverna/server/master/utils/UsernamePrincipal.html" title="class in org.apache.taverna.server.master.utils">UsernamePrincipal</a>&nbsp;user,
                        <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net">URI</a>&gt;&nbsp;permitted)</code>
<div class="block">Set the URIs of the workflows that the given user may execute.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getMaxRuns--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxRuns</h4>
<pre>int&nbsp;getMaxRuns()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The maximum number of runs that the system can support.</dd>
</dl>
</li>
</ul>
<a name="getMaxRuns-org.apache.taverna.server.master.utils.UsernamePrincipal-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxRuns</h4>
<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;getMaxRuns(<a href="../../../../../../org/apache/taverna/server/master/utils/UsernamePrincipal.html" title="class in org.apache.taverna.server.master.utils">UsernamePrincipal</a>&nbsp;user)</pre>
<div class="block">Get the limit on the number of runs for this user.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>user</code> - Who to get the limit for</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The maximum number of runs for this user, or <tt>null</tt> if no
         per-user limit is imposed and only system-wide limits are to be
         enforced.</dd>
</dl>
</li>
</ul>
<a name="permitCreate-org.apache.taverna.server.master.utils.UsernamePrincipal-org.apache.taverna.server.master.common.Workflow-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>permitCreate</h4>
<pre>void&nbsp;permitCreate(<a href="../../../../../../org/apache/taverna/server/master/utils/UsernamePrincipal.html" title="class in org.apache.taverna.server.master.utils">UsernamePrincipal</a>&nbsp;user,
                  <a href="../../../../../../org/apache/taverna/server/master/common/Workflow.html" title="class in org.apache.taverna.server.master.common">Workflow</a>&nbsp;workflow)
           throws <a href="../../../../../../org/apache/taverna/server/master/exceptions/NoCreateException.html" title="class in org.apache.taverna.server.master.exceptions">NoCreateException</a></pre>
<div class="block">Test whether the user can create an instance of the given workflow.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>user</code> - Who wants to do the creation.</dd>
<dd><code>workflow</code> - The workflow they wish to instantiate.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/taverna/server/master/exceptions/NoCreateException.html" title="class in org.apache.taverna.server.master.exceptions">NoCreateException</a></code> - If they may not instantiate it.</dd>
</dl>
</li>
</ul>
<a name="permitDestroy-org.apache.taverna.server.master.utils.UsernamePrincipal-org.apache.taverna.server.master.interfaces.TavernaRun-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>permitDestroy</h4>
<pre>void&nbsp;permitDestroy(<a href="../../../../../../org/apache/taverna/server/master/utils/UsernamePrincipal.html" title="class in org.apache.taverna.server.master.utils">UsernamePrincipal</a>&nbsp;user,
                   <a href="../../../../../../org/apache/taverna/server/master/interfaces/TavernaRun.html" title="interface in org.apache.taverna.server.master.interfaces">TavernaRun</a>&nbsp;run)
            throws <a href="../../../../../../org/apache/taverna/server/master/exceptions/NoDestroyException.html" title="class in org.apache.taverna.server.master.exceptions">NoDestroyException</a></pre>
<div class="block">Test whether the user can destroy a workflow instance run or manipulate
 its expiry date.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>user</code> - Who wants to do the deletion.</dd>
<dd><code>run</code> - What they want to delete.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/taverna/server/master/exceptions/NoDestroyException.html" title="class in org.apache.taverna.server.master.exceptions">NoDestroyException</a></code> - If they may not destroy it.</dd>
</dl>
</li>
</ul>
<a name="permitAccess-org.apache.taverna.server.master.utils.UsernamePrincipal-org.apache.taverna.server.master.interfaces.TavernaRun-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>permitAccess</h4>
<pre>boolean&nbsp;permitAccess(<a href="../../../../../../org/apache/taverna/server/master/utils/UsernamePrincipal.html" title="class in org.apache.taverna.server.master.utils">UsernamePrincipal</a>&nbsp;user,
                     <a href="../../../../../../org/apache/taverna/server/master/interfaces/TavernaRun.html" title="interface in org.apache.taverna.server.master.interfaces">TavernaRun</a>&nbsp;run)</pre>
<div class="block">Return whether the user has access to a particular workflow run.
 <b>Note</b> that this does not throw any exceptions!</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>user</code> - Who wants to read the workflow's state.</dd>
<dd><code>run</code> - What do they want to read from.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether they can read it. Note that this check is always applied
         before testing whether the workflow can be updated or deleted by
         the user.</dd>
</dl>
</li>
</ul>
<a name="permitUpdate-org.apache.taverna.server.master.utils.UsernamePrincipal-org.apache.taverna.server.master.interfaces.TavernaRun-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>permitUpdate</h4>
<pre>void&nbsp;permitUpdate(<a href="../../../../../../org/apache/taverna/server/master/utils/UsernamePrincipal.html" title="class in org.apache.taverna.server.master.utils">UsernamePrincipal</a>&nbsp;user,
                  <a href="../../../../../../org/apache/taverna/server/master/interfaces/TavernaRun.html" title="interface in org.apache.taverna.server.master.interfaces">TavernaRun</a>&nbsp;run)
           throws <a href="../../../../../../org/apache/taverna/server/master/exceptions/NoUpdateException.html" title="class in org.apache.taverna.server.master.exceptions">NoUpdateException</a></pre>
<div class="block">Test whether the user can modify a workflow run (other than for its
 expiry date).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>user</code> - Who wants to do the modification.</dd>
<dd><code>run</code> - What they want to modify.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/taverna/server/master/exceptions/NoUpdateException.html" title="class in org.apache.taverna.server.master.exceptions">NoUpdateException</a></code> - If they may not modify it.</dd>
</dl>
</li>
</ul>
<a name="listPermittedWorkflowURIs-org.apache.taverna.server.master.utils.UsernamePrincipal-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>listPermittedWorkflowURIs</h4>
<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net">URI</a>&gt;&nbsp;listPermittedWorkflowURIs(<a href="../../../../../../org/apache/taverna/server/master/utils/UsernamePrincipal.html" title="class in org.apache.taverna.server.master.utils">UsernamePrincipal</a>&nbsp;user)</pre>
<div class="block">Get the URIs of the workflows that the given user may execute.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>user</code> - Who are we finding out on behalf of.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A list of workflow URIs that they may instantiate, or
         <tt>null</tt> if any workflow may be submitted.</dd>
</dl>
</li>
</ul>
<a name="getOperatingLimit--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOperatingLimit</h4>
<pre>int&nbsp;getOperatingLimit()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The maximum number of <a href="../../../../../../org/apache/taverna/server/master/common/Status.html#Operating">operating</a>
         runs that the system can support.</dd>
</dl>
</li>
</ul>
<a name="setPermittedWorkflowURIs-org.apache.taverna.server.master.utils.UsernamePrincipal-java.util.List-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>setPermittedWorkflowURIs</h4>
<pre>void&nbsp;setPermittedWorkflowURIs(<a href="../../../../../../org/apache/taverna/server/master/utils/UsernamePrincipal.html" title="class in org.apache.taverna.server.master.utils">UsernamePrincipal</a>&nbsp;user,
                              <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net">URI</a>&gt;&nbsp;permitted)</pre>
<div class="block">Set the URIs of the workflows that the given user may execute.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>user</code> - Who are we finding out on behalf of.</dd>
<dd><code>permitted</code> - A list of workflow URIs that they may instantiate.</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/Policy.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/taverna/server/master/interfaces/MessageDispatcher.html" title="interface in org.apache.taverna.server.master.interfaces"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/taverna/server/master/interfaces/RunStore.html" title="interface in org.apache.taverna.server.master.interfaces"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/taverna/server/master/interfaces/Policy.html" target="_top">Frames</a></li>
<li><a href="Policy.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>Constr&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>Constr&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; 2015&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>
