<!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 -->
<title>XmlIO (Apache Beam 2.38.0-SNAPSHOT)</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="XmlIO (Apache Beam 2.38.0-SNAPSHOT)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":9,"i1":9,"i2":9,"i3":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="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/beam/sdk/io/xml/JAXBCoder.html" title="class in org.apache.beam.sdk.io.xml"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.Read.html" title="class in org.apache.beam.sdk.io.xml"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/beam/sdk/io/xml/XmlIO.html" target="_top">Frames</a></li>
<li><a href="XmlIO.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><a href="#nested.class.summary">Nested</a>&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.beam.sdk.io.xml</div>
<h2 title="Class XmlIO" class="title">Class XmlIO</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.beam.sdk.io.xml.XmlIO</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">XmlIO</span>
extends java.lang.Object</pre>
<div class="block">Transforms for reading and writing XML files using JAXB mappers.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.Read.html" title="class in org.apache.beam.sdk.io.xml">XmlIO.Read</a>&lt;<a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.Read.html" title="type parameter in XmlIO.Read">T</a>&gt;</span></code>
<div class="block">Implementation of <a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.html#read--"><code>read()</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.ReadFiles.html" title="class in org.apache.beam.sdk.io.xml">XmlIO.ReadFiles</a>&lt;<a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.ReadFiles.html" title="type parameter in XmlIO.ReadFiles">T</a>&gt;</span></code>
<div class="block">Implementation of <a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.html#readFiles--"><code>readFiles()</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.Sink.html" title="class in org.apache.beam.sdk.io.xml">XmlIO.Sink</a>&lt;<a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.Sink.html" title="type parameter in XmlIO.Sink">T</a>&gt;</span></code>
<div class="block">Implementation of <a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.html#sink-java.lang.Class-"><code>sink(java.lang.Class&lt;T&gt;)</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.Write.html" title="class in org.apache.beam.sdk.io.xml">XmlIO.Write</a>&lt;<a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.Write.html" title="type parameter in XmlIO.Write">T</a>&gt;</span></code>
<div class="block">Implementation of <a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.html#write--"><code>write()</code></a>.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== 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/beam/sdk/io/xml/XmlIO.html#XmlIO--">XmlIO</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 &lt;T&gt;&nbsp;<a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.Read.html" title="class in org.apache.beam.sdk.io.xml">XmlIO.Read</a>&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.html#read--">read</a></span>()</code>
<div class="block">Reads XML files as a <a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values"><code>PCollection</code></a> of a given type mapped via JAXB.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.ReadFiles.html" title="class in org.apache.beam.sdk.io.xml">XmlIO.ReadFiles</a>&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.html#readFiles--">readFiles</a></span>()</code>
<div class="block">Like <a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.html#read--"><code>read()</code></a>, but reads each file in a <a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values"><code>PCollection</code></a> of <a href="../../../../../../org/apache/beam/sdk/io/FileIO.ReadableFile.html" title="class in org.apache.beam.sdk.io"><code>FileIO.ReadableFile</code></a>, which
 allows more flexible usage via different configuration options of <a href="../../../../../../org/apache/beam/sdk/io/FileIO.html#match--"><code>FileIO.match()</code></a> and
 <a href="../../../../../../org/apache/beam/sdk/io/FileIO.html#readMatches--"><code>FileIO.readMatches()</code></a> that are not explicitly provided for <a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.html#read--"><code>read()</code></a>.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.Sink.html" title="class in org.apache.beam.sdk.io.xml">XmlIO.Sink</a>&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.html#sink-java.lang.Class-">sink</a></span>(java.lang.Class&lt;T&gt;&nbsp;recordClass)</code>
<div class="block">Outputs records as XML-formatted elements using JAXB.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.Write.html" title="class in org.apache.beam.sdk.io.xml">XmlIO.Write</a>&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.html#write--">write</a></span>()</code>
<div class="block">Writes all elements in the input <a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values"><code>PCollection</code></a> to a single XML file using <a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.html#sink-java.lang.Class-"><code>sink(java.lang.Class&lt;T&gt;)</code></a>.</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.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</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="XmlIO--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>XmlIO</h4>
<pre>public&nbsp;XmlIO()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="read--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>read</h4>
<pre>public static&nbsp;&lt;T&gt;&nbsp;<a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.Read.html" title="class in org.apache.beam.sdk.io.xml">XmlIO.Read</a>&lt;T&gt;&nbsp;read()</pre>
<div class="block">Reads XML files as a <a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values"><code>PCollection</code></a> of a given type mapped via JAXB.

 <p>The XML files must be of the following form, where <code>root</code> and <code>record</code> are XML
 element names that are defined by the user:

 <pre><code>
 &lt;root&gt;
 &lt;record&gt; ... &lt;/record&gt;
 &lt;record&gt; ... &lt;/record&gt;
 &lt;record&gt; ... &lt;/record&gt;
 ...
 &lt;record&gt; ... &lt;/record&gt;
 &lt;/root&gt;
 </code></pre>

 <p>Basically, the XML document should contain a single root element with an inner list
 consisting entirely of record elements. The records may contain arbitrary XML content; however,
 that content <b>must not</b> contain the start <code>&lt;record&gt;</code> or end <code>&lt;/record&gt;</code> tags.
 This restriction enables reading from large XML files in parallel from different offsets in the
 file.

 <p>Root and/or record elements may additionally contain an arbitrary number of XML attributes.
 Additionally users must provide a class of a JAXB annotated Java type that can be used convert
 records into Java objects and vice versa using JAXB marshalling/unmarshalling mechanisms.
 Reading the source will generate a <code>PCollection</code> of the given JAXB annotated Java type.
 Optionally users may provide a minimum size of a bundle that should be created for the source.

 <p>Example:

 <pre><code>
 PCollection&lt;Record&gt; output = p.apply(XmlIO.&lt;Record&gt;read()
     .from(file.toPath().toString())
     .withRootElement("root")
     .withRecordElement("record")
     .withRecordClass(Record.class));
 </code></pre>

 <p>By default, UTF-8 charset is used. To specify a different charset, use <a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.Read.html#withCharset-java.nio.charset.Charset-"><code>XmlIO.Read.withCharset(java.nio.charset.Charset)</code></a>.

 <p>Currently, only XML files that use single-byte characters are supported. Using a file that
 contains multi-byte characters may result in data loss or duplication.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - Type of the objects that represent the records of the XML file. The <code>PCollection</code> generated by this source will be of this type.</dd>
</dl>
</li>
</ul>
<a name="readFiles--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readFiles</h4>
<pre>public static&nbsp;&lt;T&gt;&nbsp;<a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.ReadFiles.html" title="class in org.apache.beam.sdk.io.xml">XmlIO.ReadFiles</a>&lt;T&gt;&nbsp;readFiles()</pre>
<div class="block">Like <a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.html#read--"><code>read()</code></a>, but reads each file in a <a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values"><code>PCollection</code></a> of <a href="../../../../../../org/apache/beam/sdk/io/FileIO.ReadableFile.html" title="class in org.apache.beam.sdk.io"><code>FileIO.ReadableFile</code></a>, which
 allows more flexible usage via different configuration options of <a href="../../../../../../org/apache/beam/sdk/io/FileIO.html#match--"><code>FileIO.match()</code></a> and
 <a href="../../../../../../org/apache/beam/sdk/io/FileIO.html#readMatches--"><code>FileIO.readMatches()</code></a> that are not explicitly provided for <a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.html#read--"><code>read()</code></a>.

 <p>For example:

 <pre><code>
 PCollection&lt;ReadableFile&gt; files = p
     .apply(FileIO.match().filepattern(options.getInputFilepatternProvider()).continuously(
       Duration.standardSeconds(30), afterTimeSinceNewOutput(Duration.standardMinutes(5))))
     .apply(FileIO.readMatches().withCompression(GZIP));

 PCollection&lt;Record&gt; output = files.apply(XmlIO.&lt;Record&gt;readFiles()
     .withRootElement("root")
     .withRecordElement("record")
     .withRecordClass(Record.class));
 </code></pre></div>
</li>
</ul>
<a name="write--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>write</h4>
<pre>public static&nbsp;&lt;T&gt;&nbsp;<a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.Write.html" title="class in org.apache.beam.sdk.io.xml">XmlIO.Write</a>&lt;T&gt;&nbsp;write()</pre>
<div class="block">Writes all elements in the input <a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values"><code>PCollection</code></a> to a single XML file using <a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.html#sink-java.lang.Class-"><code>sink(java.lang.Class&lt;T&gt;)</code></a>.

 <p>For more configurable usage, use <a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.html#sink-java.lang.Class-"><code>sink(java.lang.Class&lt;T&gt;)</code></a> directly with <a href="../../../../../../org/apache/beam/sdk/io/FileIO.html#write--"><code>FileIO.write()</code></a> or <a href="../../../../../../org/apache/beam/sdk/io/FileIO.html#writeDynamic--"><code>FileIO.writeDynamic()</code></a>.</div>
</li>
</ul>
<a name="sink-java.lang.Class-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>sink</h4>
<pre>public static&nbsp;&lt;T&gt;&nbsp;<a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.Sink.html" title="class in org.apache.beam.sdk.io.xml">XmlIO.Sink</a>&lt;T&gt;&nbsp;sink(java.lang.Class&lt;T&gt;&nbsp;recordClass)</pre>
<div class="block">Outputs records as XML-formatted elements using JAXB.

 <p>The produced file consists of a single root element containing 1 sub-element per element
 written to the sink.

 <p>The given class will be used in the marshalling of records in an input PCollection to their
 XML representation and must be able to be bound using JAXB annotations.

 <p>For example, consider the following class with JAXB annotations:

 <pre>
   @XmlRootElement(name = "word_count_result")
   @XmlType(propOrder = {"word", "frequency"})
  public class WordFrequency {
    public String word;
    public long frequency;
  }
 </pre>

 <p>The following will produce XML output with a root element named "words" from a PCollection
 of WordFrequency objects:

 <pre><code>
 p.apply(FileIO.&lt;WordFrequency&gt;write()
     .via(XmlIO.sink(WordFrequency.class).withRootElement("words"))
     .to(prefixAndShardTemplate("...", DEFAULT_UNWINDOWED_SHARD_TEMPLATE + ".xml"));
 </code></pre>

 <p>The output will look like:

 <pre><code>
 &lt;words&gt;
  &lt;word_count_result&gt;
    &lt;word&gt;decreased&lt;/word&gt;
    &lt;frequency&gt;1&lt;/frequency&gt;
  &lt;/word_count_result&gt;
  &lt;word_count_result&gt;
    &lt;word&gt;War&lt;/word&gt;
    &lt;frequency&gt;4&lt;/frequency&gt;
  &lt;/word_count_result&gt;
  &lt;word_count_result&gt;
    &lt;word&gt;empress'&lt;/word&gt;
    &lt;frequency&gt;14&lt;/frequency&gt;
  &lt;/word_count_result&gt;
  &lt;word_count_result&gt;
    &lt;word&gt;stoops&lt;/word&gt;
    &lt;frequency&gt;6&lt;/frequency&gt;
  &lt;/word_count_result&gt;
  ...
 &lt;/words&gt;
 </code></pre></div>
</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="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/beam/sdk/io/xml/JAXBCoder.html" title="class in org.apache.beam.sdk.io.xml"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/beam/sdk/io/xml/XmlIO.Read.html" title="class in org.apache.beam.sdk.io.xml"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/beam/sdk/io/xml/XmlIO.html" target="_top">Frames</a></li>
<li><a href="XmlIO.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><a href="#nested.class.summary">Nested</a>&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 ======= -->
</body>
</html>
