<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ArchivaSpringJUnit4ClassRunner (Archiva :: Modules 2.2.3 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="ArchivaSpringJUnit4ClassRunner (Archiva :: Modules 2.2.3 API)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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/ArchivaSpringJUnit4ClassRunner.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/archiva/test/utils/ArchivaBlockJUnit4ClassRunner.html" title="class in org.apache.archiva.test.utils"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/archiva/test/utils/ListGenerator.html" title="class in org.apache.archiva.test.utils"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/archiva/test/utils/ArchivaSpringJUnit4ClassRunner.html" target="_top">Frames</a></li>
<li><a href="ArchivaSpringJUnit4ClassRunner.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All 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.archiva.test.utils</div>
<h2 title="Class ArchivaSpringJUnit4ClassRunner" class="title">Class ArchivaSpringJUnit4ClassRunner</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://java.sun.com/j2se/1.5.0/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><a href="http://junit.sourceforge.net/javadoc/org/junit/runner/Runner.html?is-external=true" title="class or interface in org.junit.runner">org.junit.runner.Runner</a></li>
<li>
<ul class="inheritance">
<li><a href="http://junit.sourceforge.net/javadoc/org/junit/runners/ParentRunner.html?is-external=true" title="class or interface in org.junit.runners">org.junit.runners.ParentRunner</a>&lt;<a href="http://junit.sourceforge.net/javadoc/org/junit/runners/model.FrameworkMethod.html?is-external=true" title="class or interface in org.junit.runners">org.junit.runners.model.FrameworkMethod</a>&gt;</li>
<li>
<ul class="inheritance">
<li><a href="http://junit.sourceforge.net/javadoc/org/junit/runners/BlockJUnit4ClassRunner.html?is-external=true" title="class or interface in org.junit.runners">org.junit.runners.BlockJUnit4ClassRunner</a></li>
<li>
<ul class="inheritance">
<li>org.springframework.test.context.junit4.SpringJUnit4ClassRunner</li>
<li>
<ul class="inheritance">
<li>org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="http://junit.sourceforge.net/javadoc/org/junit/runner/Describable.html?is-external=true" title="class or interface in org.junit.runner">Describable</a>, <a href="http://junit.sourceforge.net/javadoc/org/junit/runner/manipulation/Filterable.html?is-external=true" title="class or interface in org.junit.runner.manipulation">Filterable</a>, <a href="http://junit.sourceforge.net/javadoc/org/junit/runner/manipulation/Sortable.html?is-external=true" title="class or interface in org.junit.runner.manipulation">Sortable</a></dd>
</dl>
<hr>
<br>
<pre>public class <a href="../../../../../src-html/org/apache/archiva/test/utils/ArchivaSpringJUnit4ClassRunner.html#line.28">ArchivaSpringJUnit4ClassRunner</a>
extends org.springframework.test.context.junit4.SpringJUnit4ClassRunner</pre>
<dl><dt><span class="strong">Author:</span></dt>
  <dd>Eric</dd></dl>
</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="overviewSummary" 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><strong><a href="../../../../../org/apache/archiva/test/utils/ArchivaSpringJUnit4ClassRunner.html#ArchivaSpringJUnit4ClassRunner(java.lang.Class)">ArchivaSpringJUnit4ClassRunner</a></strong>(<a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;clazz)</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="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://junit.sourceforge.net/javadoc/org/junit/runners/model.FrameworkMethod.html?is-external=true" title="class or interface in org.junit.runners">org.junit.runners.model.FrameworkMethod</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/archiva/test/utils/ArchivaSpringJUnit4ClassRunner.html#computeTestMethods()">computeTestMethods</a></strong>()</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.springframework.test.context.junit4.SpringJUnit4ClassRunner">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.springframework.test.context.junit4.SpringJUnit4ClassRunner</h3>
<code>createTest, createTestContextManager, getDescription, getExpectedException, getJUnitTimeout, getSpringTimeout, getTestContextManager, isTestMethodIgnored, methodBlock, possiblyExpectingExceptions, run, runChild, withAfterClasses, withAfters, withBeforeClasses, withBefores, withPotentialRepeat, withPotentialTimeout</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.junit.runners.BlockJUnit4ClassRunner">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.junit.runners.<a href="http://junit.sourceforge.net/javadoc/org/junit/runners/BlockJUnit4ClassRunner.html?is-external=true" title="class or interface in org.junit.runners">BlockJUnit4ClassRunner</a></h3>
<code><a href="http://junit.sourceforge.net/javadoc/org/junit/runners/BlockJUnit4ClassRunner.html?is-external=true#collectInitializationErrors(java.util.List)" title="class or interface in org.junit.runners">collectInitializationErrors</a>, <a href="http://junit.sourceforge.net/javadoc/org/junit/runners/BlockJUnit4ClassRunner.html?is-external=true#describeChild(org.junit.runners.model.FrameworkMethod)" title="class or interface in org.junit.runners">describeChild</a>, <a href="http://junit.sourceforge.net/javadoc/org/junit/runners/BlockJUnit4ClassRunner.html?is-external=true#getChildren()" title="class or interface in org.junit.runners">getChildren</a>, <a href="http://junit.sourceforge.net/javadoc/org/junit/runners/BlockJUnit4ClassRunner.html?is-external=true#getTestRules(java.lang.Object)" title="class or interface in org.junit.runners">getTestRules</a>, <a href="http://junit.sourceforge.net/javadoc/org/junit/runners/BlockJUnit4ClassRunner.html?is-external=true#isIgnored(org.junit.runners.model.FrameworkMethod)" title="class or interface in org.junit.runners">isIgnored</a>, <a href="http://junit.sourceforge.net/javadoc/org/junit/runners/BlockJUnit4ClassRunner.html?is-external=true#methodInvoker(org.junit.runners.model.FrameworkMethod,%20java.lang.Object)" title="class or interface in org.junit.runners">methodInvoker</a>, <a href="http://junit.sourceforge.net/javadoc/org/junit/runners/BlockJUnit4ClassRunner.html?is-external=true#rules(java.lang.Object)" title="class or interface in org.junit.runners">rules</a>, <a href="http://junit.sourceforge.net/javadoc/org/junit/runners/BlockJUnit4ClassRunner.html?is-external=true#testName(org.junit.runners.model.FrameworkMethod)" title="class or interface in org.junit.runners">testName</a>, <a href="http://junit.sourceforge.net/javadoc/org/junit/runners/BlockJUnit4ClassRunner.html?is-external=true#validateConstructor(java.util.List)" title="class or interface in org.junit.runners">validateConstructor</a>, <a href="http://junit.sourceforge.net/javadoc/org/junit/runners/BlockJUnit4ClassRunner.html?is-external=true#validateFields(java.util.List)" title="class or interface in org.junit.runners">validateFields</a>, <a href="http://junit.sourceforge.net/javadoc/org/junit/runners/BlockJUnit4ClassRunner.html?is-external=true#validateInstanceMethods(java.util.List)" title="class or interface in org.junit.runners">validateInstanceMethods</a>, <a href="http://junit.sourceforge.net/javadoc/org/junit/runners/BlockJUnit4ClassRunner.html?is-external=true#validateNoNonStaticInnerClass(java.util.List)" title="class or interface in org.junit.runners">validateNoNonStaticInnerClass</a>, <a href="http://junit.sourceforge.net/javadoc/org/junit/runners/BlockJUnit4ClassRunner.html?is-external=true#validateOnlyOneConstructor(java.util.List)" title="class or interface in org.junit.runners">validateOnlyOneConstructor</a>, <a href="http://junit.sourceforge.net/javadoc/org/junit/runners/BlockJUnit4ClassRunner.html?is-external=true#validateTestMethods(java.util.List)" title="class or interface in org.junit.runners">validateTestMethods</a>, <a href="http://junit.sourceforge.net/javadoc/org/junit/runners/BlockJUnit4ClassRunner.html?is-external=true#validateZeroArgConstructor(java.util.List)" title="class or interface in org.junit.runners">validateZeroArgConstructor</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.junit.runners.ParentRunner">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.junit.runners.<a href="http://junit.sourceforge.net/javadoc/org/junit/runners/ParentRunner.html?is-external=true" title="class or interface in org.junit.runners">ParentRunner</a></h3>
<code><a href="http://junit.sourceforge.net/javadoc/org/junit/runners/ParentRunner.html?is-external=true#childrenInvoker(org.junit.runner.notification.RunNotifier)" title="class or interface in org.junit.runners">childrenInvoker</a>, <a href="http://junit.sourceforge.net/javadoc/org/junit/runners/ParentRunner.html?is-external=true#classBlock(org.junit.runner.notification.RunNotifier)" title="class or interface in org.junit.runners">classBlock</a>, <a href="http://junit.sourceforge.net/javadoc/org/junit/runners/ParentRunner.html?is-external=true#classRules()" title="class or interface in org.junit.runners">classRules</a>, <a href="http://junit.sourceforge.net/javadoc/org/junit/runners/ParentRunner.html?is-external=true#createTestClass(java.lang.Class)" title="class or interface in org.junit.runners">createTestClass</a>, <a href="http://junit.sourceforge.net/javadoc/org/junit/runners/ParentRunner.html?is-external=true#filter(org.junit.runner.manipulation.Filter)" title="class or interface in org.junit.runners">filter</a>, <a href="http://junit.sourceforge.net/javadoc/org/junit/runners/ParentRunner.html?is-external=true#getName()" title="class or interface in org.junit.runners">getName</a>, <a href="http://junit.sourceforge.net/javadoc/org/junit/runners/ParentRunner.html?is-external=true#getRunnerAnnotations()" title="class or interface in org.junit.runners">getRunnerAnnotations</a>, <a href="http://junit.sourceforge.net/javadoc/org/junit/runners/ParentRunner.html?is-external=true#getTestClass()" title="class or interface in org.junit.runners">getTestClass</a>, <a href="http://junit.sourceforge.net/javadoc/org/junit/runners/ParentRunner.html?is-external=true#runLeaf(org.junit.runners.model.Statement,%20org.junit.runner.Description,%20org.junit.runner.notification.RunNotifier)" title="class or interface in org.junit.runners">runLeaf</a>, <a href="http://junit.sourceforge.net/javadoc/org/junit/runners/ParentRunner.html?is-external=true#setScheduler(org.junit.runners.model.RunnerScheduler)" title="class or interface in org.junit.runners">setScheduler</a>, <a href="http://junit.sourceforge.net/javadoc/org/junit/runners/ParentRunner.html?is-external=true#sort(org.junit.runner.manipulation.Sorter)" title="class or interface in org.junit.runners">sort</a>, <a href="http://junit.sourceforge.net/javadoc/org/junit/runners/ParentRunner.html?is-external=true#validatePublicVoidNoArgMethods(java.lang.Class,%20boolean,%20java.util.List)" title="class or interface in org.junit.runners">validatePublicVoidNoArgMethods</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.junit.runner.Runner">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.junit.runner.<a href="http://junit.sourceforge.net/javadoc/org/junit/runner/Runner.html?is-external=true" title="class or interface in org.junit.runner">Runner</a></h3>
<code><a href="http://junit.sourceforge.net/javadoc/org/junit/runner/Runner.html?is-external=true#testCount()" title="class or interface in org.junit.runner">testCount</a></code></li>
</ul>
<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="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" 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="ArchivaSpringJUnit4ClassRunner(java.lang.Class)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ArchivaSpringJUnit4ClassRunner</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/archiva/test/utils/ArchivaSpringJUnit4ClassRunner.html#line.32">ArchivaSpringJUnit4ClassRunner</a>(<a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;clazz)
                               throws <a href="http://junit.sourceforge.net/javadoc/org/junit/runners/model.InitializationError.html?is-external=true" title="class or interface in org.junit.runners">org.junit.runners.model.InitializationError</a></pre>
<dl><dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://junit.sourceforge.net/javadoc/org/junit/runners/model.InitializationError.html?is-external=true" title="class or interface in org.junit.runners">org.junit.runners.model.InitializationError</a></code></dd></dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="computeTestMethods()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>computeTestMethods</h4>
<pre>protected&nbsp;<a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://junit.sourceforge.net/javadoc/org/junit/runners/model.FrameworkMethod.html?is-external=true" title="class or interface in org.junit.runners">org.junit.runners.model.FrameworkMethod</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/archiva/test/utils/ArchivaSpringJUnit4ClassRunner.html#line.39">computeTestMethods</a>()</pre>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="http://junit.sourceforge.net/javadoc/org/junit/runners/BlockJUnit4ClassRunner.html?is-external=true#computeTestMethods()" title="class or interface in org.junit.runners">computeTestMethods</a></code>&nbsp;in class&nbsp;<code><a href="http://junit.sourceforge.net/javadoc/org/junit/runners/BlockJUnit4ClassRunner.html?is-external=true" title="class or interface in org.junit.runners">BlockJUnit4ClassRunner</a></code></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><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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/ArchivaSpringJUnit4ClassRunner.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/archiva/test/utils/ArchivaBlockJUnit4ClassRunner.html" title="class in org.apache.archiva.test.utils"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/archiva/test/utils/ListGenerator.html" title="class in org.apache.archiva.test.utils"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/archiva/test/utils/ArchivaSpringJUnit4ClassRunner.html" target="_top">Frames</a></li>
<li><a href="ArchivaSpringJUnit4ClassRunner.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All 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; 2006&#x2013;2017 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>