You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datafu.apache.org by mh...@apache.org on 2016/08/10 22:07:31 UTC
svn commit: r1755883 [37/49] - in /incubator/datafu/site: ./ blog/
blog/2012/01/10/ blog/2013/01/24/ blog/2013/09/04/ blog/2013/10/03/
blog/2014/04/27/ blog/2015/11/17/ blog/2016/ blog/2016/08/ blog/2016/08/10/
community/ docs/ docs/datafu/ docs/datafu...
Added: incubator/datafu/site/docs/hourglass/1.3.1/datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html
URL: http://svn.apache.org/viewvc/incubator/datafu/site/docs/hourglass/1.3.1/datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html?rev=1755883&view=auto
==============================================================================
--- incubator/datafu/site/docs/hourglass/1.3.1/datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html (added)
+++ incubator/datafu/site/docs/hourglass/1.3.1/datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html Wed Aug 10 22:07:27 2016
@@ -0,0 +1,332 @@
+<!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 (version 1.7.0_79) on Wed Aug 10 15:00:54 PDT 2016 -->
+<title>AbstractPartitionPreservingIncrementalJob.Report (datafu-hourglass 1.3.1 API)</title>
+<meta name="date" content="2016-08-10">
+<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="AbstractPartitionPreservingIncrementalJob.Report (datafu-hourglass 1.3.1 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="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="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.html" title="class in datafu.hourglass.jobs"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../datafu/hourglass/jobs/DateRangeConfigurable.html" title="interface in datafu.hourglass.jobs"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html" target="_top">Frames</a></li>
+<li><a href="AbstractPartitionPreservingIncrementalJob.Report.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: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </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">datafu.hourglass.jobs</div>
+<h2 title="Class AbstractPartitionPreservingIncrementalJob.Report" class="title">Class AbstractPartitionPreservingIncrementalJob.Report</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>datafu.hourglass.jobs.AbstractPartitionPreservingIncrementalJob.Report</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.html" title="class in datafu.hourglass.jobs">AbstractPartitionPreservingIncrementalJob</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <span class="strong">AbstractPartitionPreservingIncrementalJob.Report</span>
+extends java.lang.Object</pre>
+<div class="block">Reports files created and processed for an iteration of the job.</div>
+</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"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html#AbstractPartitionPreservingIncrementalJob.Report()">AbstractPartitionPreservingIncrementalJob.Report</a></strong>()</code> </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"> </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>org.apache.hadoop.fs.Path</code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html#getCountersPath()">getCountersPath</a></strong>()</code>
+<div class="block">Gets the path to the counters file, if one was written.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.List<<a href="../../../datafu/hourglass/fs/DatePath.html" title="class in datafu.hourglass.fs">DatePath</a>></code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html#getInputFiles()">getInputFiles</a></strong>()</code>
+<div class="block">Gets input files that were processed.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html#getJobId()">getJobId</a></strong>()</code>
+<div class="block">Gets the job ID.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html#getJobName()">getJobName</a></strong>()</code>
+<div class="block">Gets the job name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.List<<a href="../../../datafu/hourglass/fs/DatePath.html" title="class in datafu.hourglass.fs">DatePath</a>></code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html#getOutputFiles()">getOutputFiles</a></strong>()</code>
+<div class="block">Gets the output files that were produced by the job.</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 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="AbstractPartitionPreservingIncrementalJob.Report()">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractPartitionPreservingIncrementalJob.Report</h4>
+<pre>public AbstractPartitionPreservingIncrementalJob.Report()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="getJobName()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getJobName</h4>
+<pre>public java.lang.String getJobName()</pre>
+<div class="block">Gets the job name.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>job name</dd></dl>
+</li>
+</ul>
+<a name="getJobId()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getJobId</h4>
+<pre>public java.lang.String getJobId()</pre>
+<div class="block">Gets the job ID.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>job ID</dd></dl>
+</li>
+</ul>
+<a name="getCountersPath()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCountersPath</h4>
+<pre>public org.apache.hadoop.fs.Path getCountersPath()</pre>
+<div class="block">Gets the path to the counters file, if one was written.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>counters path</dd></dl>
+</li>
+</ul>
+<a name="getInputFiles()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInputFiles</h4>
+<pre>public java.util.List<<a href="../../../datafu/hourglass/fs/DatePath.html" title="class in datafu.hourglass.fs">DatePath</a>> getInputFiles()</pre>
+<div class="block">Gets input files that were processed. These are files that are within
+ the desired date range.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>new input files</dd></dl>
+</li>
+</ul>
+<a name="getOutputFiles()">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getOutputFiles</h4>
+<pre>public java.util.List<<a href="../../../datafu/hourglass/fs/DatePath.html" title="class in datafu.hourglass.fs">DatePath</a>> getOutputFiles()</pre>
+<div class="block">Gets the output files that were produced by the job.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>old input files</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="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="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.html" title="class in datafu.hourglass.jobs"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../datafu/hourglass/jobs/DateRangeConfigurable.html" title="interface in datafu.hourglass.jobs"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html" target="_top">Frames</a></li>
+<li><a href="AbstractPartitionPreservingIncrementalJob.Report.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: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
Added: incubator/datafu/site/docs/hourglass/1.3.1/datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.html
URL: http://svn.apache.org/viewvc/incubator/datafu/site/docs/hourglass/1.3.1/datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.html?rev=1755883&view=auto
==============================================================================
--- incubator/datafu/site/docs/hourglass/1.3.1/datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.html (added)
+++ incubator/datafu/site/docs/hourglass/1.3.1/datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.html Wed Aug 10 22:07:27 2016
@@ -0,0 +1,633 @@
+<!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 (version 1.7.0_79) on Wed Aug 10 15:00:54 PDT 2016 -->
+<title>AbstractPartitionPreservingIncrementalJob (datafu-hourglass 1.3.1 API)</title>
+<meta name="date" content="2016-08-10">
+<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="AbstractPartitionPreservingIncrementalJob (datafu-hourglass 1.3.1 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="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="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.Report.html" title="class in datafu.hourglass.jobs"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html" title="class in datafu.hourglass.jobs"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.html" target="_top">Frames</a></li>
+<li><a href="AbstractPartitionPreservingIncrementalJob.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: </li>
+<li><a href="#nested_class_summary">Nested</a> | </li>
+<li>Field | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </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">datafu.hourglass.jobs</div>
+<h2 title="Class AbstractPartitionPreservingIncrementalJob" class="title">Class AbstractPartitionPreservingIncrementalJob</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.conf.Configured</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../datafu/hourglass/jobs/AbstractJob.html" title="class in datafu.hourglass.jobs">datafu.hourglass.jobs.AbstractJob</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../datafu/hourglass/jobs/TimeBasedJob.html" title="class in datafu.hourglass.jobs">datafu.hourglass.jobs.TimeBasedJob</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../datafu/hourglass/jobs/IncrementalJob.html" title="class in datafu.hourglass.jobs">datafu.hourglass.jobs.IncrementalJob</a></li>
+<li>
+<ul class="inheritance">
+<li>datafu.hourglass.jobs.AbstractPartitionPreservingIncrementalJob</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>org.apache.hadoop.conf.Configurable</dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../datafu/hourglass/jobs/PartitionPreservingIncrementalJob.html" title="class in datafu.hourglass.jobs">PartitionPreservingIncrementalJob</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="strong">AbstractPartitionPreservingIncrementalJob</span>
+extends <a href="../../../datafu/hourglass/jobs/IncrementalJob.html" title="class in datafu.hourglass.jobs">IncrementalJob</a></pre>
+<div class="block">An <a href="../../../datafu/hourglass/jobs/IncrementalJob.html" title="class in datafu.hourglass.jobs"><code>IncrementalJob</code></a> that consumes partitioned input data and produces
+ output data having the same partitions.
+ Typically this is used in conjunction with <a href="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.html" title="class in datafu.hourglass.jobs"><code>AbstractPartitionCollapsingIncrementalJob</code></a>
+ when computing aggregates over sliding windows. A partition-preserving job can perform
+ initial aggregation per-day, which can then be consumed by a partition-collapsing job to
+ produce the final aggregates over the time window.
+ Only Avro is supported for the input, intermediate, and output data.
+
+ <p>
+ Implementations of this class must provide key, intermediate value, and output value schemas.
+ The key and intermediate value schemas define the output for the mapper and combiner.
+ The key and output value schemas define the output for the reducer.
+ These are defined by overriding <a href="../../../datafu/hourglass/jobs/IncrementalJob.html#getKeySchema()"><code>IncrementalJob.getKeySchema()</code></a>, <a href="../../../datafu/hourglass/jobs/IncrementalJob.html#getIntermediateValueSchema()"><code>IncrementalJob.getIntermediateValueSchema()</code></a>,
+ and <a href="../../../datafu/hourglass/jobs/IncrementalJob.html#getOutputValueSchema()"><code>IncrementalJob.getOutputValueSchema()</code></a>.
+ </p>
+
+ <p>
+ Implementations must also provide a mapper by overriding <a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.html#getMapper()"><code>getMapper()</code></a> and an accumulator
+ for the reducer by overriding <a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.html#getReducerAccumulator()"><code>getReducerAccumulator()</code></a>. An optional combiner may be
+ provided by overriding <a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.html#getCombinerAccumulator()"><code>getCombinerAccumulator()</code></a>. For the combiner to be used
+ the property <em>use.combiner</em> must also be set to true.
+ </p>
+
+ <p>
+ The distinguishing feature this type of job is that the input partitioning is preserved in the ouput.
+ The data from each partition is processed independently of other partitions and then output separately.
+ For example, input that is partitioned by day can be aggregated by day and then output by day.
+ This is achieved by attaching a long value to each key, which represents the partition, so that the reducer
+ receives data grouped by the key and partition together. Multiple outputs are then used so that the output
+ will have the same partitions as the input.
+ </p>
+
+ <p>
+ The input path can be provided either through the property <em>input.path</em>
+ or by calling <a href="../../../datafu/hourglass/jobs/AbstractJob.html#setInputPaths(java.util.List)"><code>AbstractJob.setInputPaths(List)</code></a>. If multiple input paths are provided then
+ this implicitly means a join is to be performed. Multiple input paths can be provided via
+ properties by prefixing each with <em>input.path.</em>, such as <em>input.path.first</em>
+ and <em>input.path.second</em>.
+ Input data must be partitioned by day according to the naming convention yyyy/MM/dd.
+ The output path can be provided either through the property <em>output.path</em>
+ or by calling <a href="../../../datafu/hourglass/jobs/AbstractJob.html#setOutputPath(org.apache.hadoop.fs.Path)"><code>AbstractJob.setOutputPath(Path)</code></a>.
+ Output data will be written using the same naming convention as the input, namely yyyy/MM/dd, where the date used
+ to format the output path is the same the date for the input it was derived from.
+ For example, if the desired time range to process is 2013/01/01 through 2013/01/14,
+ then the output will be named 2013/01/01 through 2013/01/14.
+ By default the job will fail if any input data in the desired time window is missing. This can be overriden by setting
+ <em>fail.on.missing</em> to false.
+ </p>
+
+ <p>
+ The job will not process input for which a corresponding output already exists. For example, if the desired date
+ range is 2013/01/01 through 2013/01/14 and the outputs 2013/01/01 through 2013/01/12 exist, then only
+ 2013/01/13 and 2013/01/14 will be processed and only 2013/01/13 and 2013/01/14 will be produced.
+ </p>
+
+ <p>
+ The number of paths in the output to retain can be configured through the property <em>retention.count</em>,
+ or by calling <a href="../../../datafu/hourglass/jobs/AbstractJob.html#setRetentionCount(java.lang.Integer)"><code>AbstractJob.setRetentionCount(Integer)</code></a>. When this property is set only the latest paths in the output
+ will be kept; the remainder will be removed. By default there is no retention count set so all output paths are kept.
+ </p>
+
+ <p>
+ The inputs to process can be controlled by defining a desired date range. By default the job will process all input
+ data available. To limit the number of days of input to process one can set the property <em>num.days</em>
+ or call <a href="../../../datafu/hourglass/jobs/TimeBasedJob.html#setNumDays(java.lang.Integer)"><code>TimeBasedJob.setNumDays(Integer)</code></a>. This would define a processing window with the same number of days,
+ where the end date of the window is the latest available input and the start date is <em>num.days</em> ago.
+ Only inputs within this window would be processed.
+ Because the end date is the same as the latest available input, as new input data becomes available the end of the
+ window will advance forward to include it. The end date can be adjusted backwards relative to the latest input
+ through the property <em>days.ago</em>, or by calling <a href="../../../datafu/hourglass/jobs/TimeBasedJob.html#setDaysAgo(java.lang.Integer)"><code>TimeBasedJob.setDaysAgo(Integer)</code></a>. This subtracts as many days
+ from the latest available input date to determine the end date. The start date or end date can also be fixed
+ by setting the properties <em>start.date</em> or <em>end.date</em>, or by calling <a href="../../../datafu/hourglass/jobs/TimeBasedJob.html#setStartDate(java.util.Date)"><code>TimeBasedJob.setStartDate(Date)</code></a>
+ or <a href="../../../datafu/hourglass/jobs/TimeBasedJob.html#setEndDate(java.util.Date)"><code>TimeBasedJob.setEndDate(Date)</code></a>.
+ </p>
+
+ <p>
+ The number of reducers to use is automatically determined based on the size of the data to process.
+ The total size is computed and then divided by the value of the property <em>num.reducers.bytes.per.reducer</em>, which
+ defaults to 256 MB. This is the number of reducers that will be used.
+ The number of reducers can also be set to a fixed value through the property <em>num.reducers</em>.
+ </p>
+
+ <p>
+ This type of job is capable of performing its work over multiple iterations.
+ The number of days to process at a time can be limited by setting the property <em>max.days.to.process</em>,
+ or by calling <a href="../../../datafu/hourglass/jobs/IncrementalJob.html#setMaxToProcess(java.lang.Integer)"><code>IncrementalJob.setMaxToProcess(Integer)</code></a>. The default is 90 days.
+ This can be useful when there are restrictions on how many tasks
+ can be used by a single MapReduce job in the cluster. When this property is set, the job will process no more than
+ this many days at a time, and it will perform one or more iterations if necessary to complete the work.
+ The number of iterations can be limited by setting the property <em>max.iterations</em>, or by calling <a href="../../../datafu/hourglass/jobs/IncrementalJob.html#setMaxIterations(java.lang.Integer)"><code>IncrementalJob.setMaxIterations(Integer)</code></a>.
+ If the number of iterations is exceeded the job will fail. By default the maximum number of iterations is 20.
+ </p>
+
+ <p>
+ Hadoop configuration may be provided by setting a property with the prefix <em>hadoop-conf.</em>.
+ For example, <em>mapred.min.split.size</em> can be configured by setting property
+ <em>hadoop-conf.mapred.min.split.size</em> to the desired value.
+ </p></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="overviewSummary" 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"> </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 </code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html" title="class in datafu.hourglass.jobs">AbstractPartitionPreservingIncrementalJob.Report</a></strong></code>
+<div class="block">Reports files created and processed for an iteration of the job.</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="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.html#AbstractPartitionPreservingIncrementalJob()">AbstractPartitionPreservingIncrementalJob</a></strong>()</code>
+<div class="block">Initializes the job.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.html#AbstractPartitionPreservingIncrementalJob(java.lang.String,%20java.util.Properties)">AbstractPartitionPreservingIncrementalJob</a></strong>(java.lang.String name,
+ java.util.Properties props)</code>
+<div class="block">Initializes the job with a job name and properties.</div>
+</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"> </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="../../../datafu/hourglass/mapreduce/ObjectReducer.html" title="class in datafu.hourglass.mapreduce">ObjectReducer</a></code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.html#getCombineProcessor()">getCombineProcessor</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../datafu/hourglass/model/Accumulator.html" title="interface in datafu.hourglass.model">Accumulator</a><org.apache.avro.generic.GenericRecord,org.apache.avro.generic.GenericRecord></code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.html#getCombinerAccumulator()">getCombinerAccumulator</a></strong>()</code>
+<div class="block">Gets the accumulator used for the combiner.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../../../datafu/hourglass/model/Mapper.html" title="interface in datafu.hourglass.model">Mapper</a><org.apache.avro.generic.GenericRecord,org.apache.avro.generic.GenericRecord,org.apache.avro.generic.GenericRecord></code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.html#getMapper()">getMapper</a></strong>()</code>
+<div class="block">Gets the mapper.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../datafu/hourglass/mapreduce/ObjectMapper.html" title="class in datafu.hourglass.mapreduce">ObjectMapper</a></code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.html#getMapProcessor()">getMapProcessor</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.html#getOutputSchemaName()">getOutputSchemaName</a></strong>()</code>
+<div class="block">Get the name for the reduce output schema.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.html#getOutputSchemaNamespace()">getOutputSchemaNamespace</a></strong>()</code>
+<div class="block">Get the namespace for the reduce output schema.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../datafu/hourglass/mapreduce/ObjectReducer.html" title="class in datafu.hourglass.mapreduce">ObjectReducer</a></code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.html#getReduceProcessor()">getReduceProcessor</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../../../datafu/hourglass/model/Accumulator.html" title="interface in datafu.hourglass.model">Accumulator</a><org.apache.avro.generic.GenericRecord,org.apache.avro.generic.GenericRecord></code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.html#getReducerAccumulator()">getReducerAccumulator</a></strong>()</code>
+<div class="block">Gets the accumulator used for the reducer.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.List<<a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html" title="class in datafu.hourglass.jobs">AbstractPartitionPreservingIncrementalJob.Report</a>></code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.html#getReports()">getReports</a></strong>()</code>
+<div class="block">Get reports that summarize each of the job iterations.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.html#initialize()">initialize</a></strong>()</code>
+<div class="block">Initialization required before running job.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.html#run()">run</a></strong>()</code>
+<div class="block">Run the job.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_datafu.hourglass.jobs.IncrementalJob">
+<!-- -->
+</a>
+<h3>Methods inherited from class datafu.hourglass.jobs.<a href="../../../datafu/hourglass/jobs/IncrementalJob.html" title="class in datafu.hourglass.jobs">IncrementalJob</a></h3>
+<code><a href="../../../datafu/hourglass/jobs/IncrementalJob.html#getIntermediateValueSchema()">getIntermediateValueSchema</a>, <a href="../../../datafu/hourglass/jobs/IncrementalJob.html#getKeySchema()">getKeySchema</a>, <a href="../../../datafu/hourglass/jobs/IncrementalJob.html#getMaxIterations()">getMaxIterations</a>, <a href="../../../datafu/hourglass/jobs/IncrementalJob.html#getMaxToProcess()">getMaxToProcess</a>, <a href="../../../datafu/hourglass/jobs/IncrementalJob.html#getOutputValueSchema()">getOutputValueSchema</a>, <a href="../../../datafu/hourglass/jobs/IncrementalJob.html#getSchemas()">getSchemas</a>, <a href="../../../datafu/hourglass/jobs/IncrementalJob.html#isFailOnMissing()">isFailOnMissing</a>, <a href="../../../datafu/hourglass/jobs/IncrementalJob.html#setFailOnMissing(boolean)">setFailOnMissing</a>, <a href="../../../datafu/hourglass/jobs/IncrementalJob.html#setMaxIterations(java.lang.Integer)">setMaxIterations</a>, <a href="../../../datafu/hourglass/jobs/Incre
mentalJob.html#setMaxToProcess(java.lang.Integer)">setMaxToProcess</a>, <a href="../../../datafu/hourglass/jobs/IncrementalJob.html#setProperties(java.util.Properties)">setProperties</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_datafu.hourglass.jobs.TimeBasedJob">
+<!-- -->
+</a>
+<h3>Methods inherited from class datafu.hourglass.jobs.<a href="../../../datafu/hourglass/jobs/TimeBasedJob.html" title="class in datafu.hourglass.jobs">TimeBasedJob</a></h3>
+<code><a href="../../../datafu/hourglass/jobs/TimeBasedJob.html#getDaysAgo()">getDaysAgo</a>, <a href="../../../datafu/hourglass/jobs/TimeBasedJob.html#getEndDate()">getEndDate</a>, <a href="../../../datafu/hourglass/jobs/TimeBasedJob.html#getNumDays()">getNumDays</a>, <a href="../../../datafu/hourglass/jobs/TimeBasedJob.html#getStartDate()">getStartDate</a>, <a href="../../../datafu/hourglass/jobs/TimeBasedJob.html#setDaysAgo(java.lang.Integer)">setDaysAgo</a>, <a href="../../../datafu/hourglass/jobs/TimeBasedJob.html#setEndDate(java.util.Date)">setEndDate</a>, <a href="../../../datafu/hourglass/jobs/TimeBasedJob.html#setNumDays(java.lang.Integer)">setNumDays</a>, <a href="../../../datafu/hourglass/jobs/TimeBasedJob.html#setStartDate(java.util.Date)">setStartDate</a>, <a href="../../../datafu/hourglass/jobs/TimeBasedJob.html#validate()">validate</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_datafu.hourglass.jobs.AbstractJob">
+<!-- -->
+</a>
+<h3>Methods inherited from class datafu.hourglass.jobs.<a href="../../../datafu/hourglass/jobs/AbstractJob.html" title="class in datafu.hourglass.jobs">AbstractJob</a></h3>
+<code><a href="../../../datafu/hourglass/jobs/AbstractJob.html#config(org.apache.hadoop.conf.Configuration)">config</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#createRandomTempPath()">createRandomTempPath</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#ensurePath(org.apache.hadoop.fs.Path)">ensurePath</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#getCountersParentPath()">getCountersParentPath</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#getFileSystem()">getFileSystem</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#getInputPaths()">getInputPaths</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#getName()">getName</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#getNumReducers()">getNumReducers</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#getOutputPath()">getOutputPath</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#getProperties()">getProperties</a>,
<a href="../../../datafu/hourglass/jobs/AbstractJob.html#getRetentionCount()">getRetentionCount</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#getTempPath()">getTempPath</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#isUseCombiner()">isUseCombiner</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#randomTempPath()">randomTempPath</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#setCountersParentPath(org.apache.hadoop.fs.Path)">setCountersParentPath</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#setInputPaths(java.util.List)">setInputPaths</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#setName(java.lang.String)">setName</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#setNumReducers(java.lang.Integer)">setNumReducers</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#setOutputPath(org.apache.hadoop.fs.Path)">setOutputPath</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob
.html#setRetentionCount(java.lang.Integer)">setRetentionCount</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#setTempPath(org.apache.hadoop.fs.Path)">setTempPath</a>, <a href="../../../datafu/hourglass/jobs/AbstractJob.html#setUseCombiner(boolean)">setUseCombiner</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.apache.hadoop.conf.Configured">
+<!-- -->
+</a>
+<h3>Methods inherited from class org.apache.hadoop.conf.Configured</h3>
+<code>getConf, setConf</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class 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="AbstractPartitionPreservingIncrementalJob()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>AbstractPartitionPreservingIncrementalJob</h4>
+<pre>public AbstractPartitionPreservingIncrementalJob()
+ throws java.io.IOException</pre>
+<div class="block">Initializes the job.</div>
+<dl><dt><span class="strong">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - IOException</dd></dl>
+</li>
+</ul>
+<a name="AbstractPartitionPreservingIncrementalJob(java.lang.String, java.util.Properties)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractPartitionPreservingIncrementalJob</h4>
+<pre>public AbstractPartitionPreservingIncrementalJob(java.lang.String name,
+ java.util.Properties props)
+ throws java.io.IOException</pre>
+<div class="block">Initializes the job with a job name and properties.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - job name</dd><dd><code>props</code> - configuration properties</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - IOException</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="getMapper()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMapper</h4>
+<pre>public abstract <a href="../../../datafu/hourglass/model/Mapper.html" title="interface in datafu.hourglass.model">Mapper</a><org.apache.avro.generic.GenericRecord,org.apache.avro.generic.GenericRecord,org.apache.avro.generic.GenericRecord> getMapper()</pre>
+<div class="block">Gets the mapper.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>mapper</dd></dl>
+</li>
+</ul>
+<a name="getCombinerAccumulator()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCombinerAccumulator</h4>
+<pre>public <a href="../../../datafu/hourglass/model/Accumulator.html" title="interface in datafu.hourglass.model">Accumulator</a><org.apache.avro.generic.GenericRecord,org.apache.avro.generic.GenericRecord> getCombinerAccumulator()</pre>
+<div class="block">Gets the accumulator used for the combiner.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>combiner accumulator</dd></dl>
+</li>
+</ul>
+<a name="getReducerAccumulator()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReducerAccumulator</h4>
+<pre>public abstract <a href="../../../datafu/hourglass/model/Accumulator.html" title="interface in datafu.hourglass.model">Accumulator</a><org.apache.avro.generic.GenericRecord,org.apache.avro.generic.GenericRecord> getReducerAccumulator()</pre>
+<div class="block">Gets the accumulator used for the reducer.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>reducer accumulator</dd></dl>
+</li>
+</ul>
+<a name="run()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>run</h4>
+<pre>public void run()
+ throws java.io.IOException,
+ java.lang.InterruptedException,
+ java.lang.ClassNotFoundException</pre>
+<div class="block">Run the job.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../datafu/hourglass/jobs/AbstractJob.html#run()">run</a></code> in class <code><a href="../../../datafu/hourglass/jobs/AbstractJob.html" title="class in datafu.hourglass.jobs">AbstractJob</a></code></dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - IOException</dd>
+<dd><code>java.lang.InterruptedException</code> - InterruptedException</dd>
+<dd><code>java.lang.ClassNotFoundException</code> - ClassNotFoundException</dd></dl>
+</li>
+</ul>
+<a name="getReports()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReports</h4>
+<pre>public java.util.List<<a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html" title="class in datafu.hourglass.jobs">AbstractPartitionPreservingIncrementalJob.Report</a>> getReports()</pre>
+<div class="block">Get reports that summarize each of the job iterations.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>reports</dd></dl>
+</li>
+</ul>
+<a name="initialize()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>initialize</h4>
+<pre>protected void initialize()</pre>
+<div class="block"><strong>Description copied from class: <code><a href="../../../datafu/hourglass/jobs/AbstractJob.html#initialize()">AbstractJob</a></code></strong></div>
+<div class="block">Initialization required before running job.</div>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../datafu/hourglass/jobs/IncrementalJob.html#initialize()">initialize</a></code> in class <code><a href="../../../datafu/hourglass/jobs/IncrementalJob.html" title="class in datafu.hourglass.jobs">IncrementalJob</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getOutputSchemaName()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOutputSchemaName</h4>
+<pre>protected java.lang.String getOutputSchemaName()</pre>
+<div class="block">Get the name for the reduce output schema.
+ By default this is the name of the class with "Output" appended.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>output schema name</dd></dl>
+</li>
+</ul>
+<a name="getOutputSchemaNamespace()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOutputSchemaNamespace</h4>
+<pre>protected java.lang.String getOutputSchemaNamespace()</pre>
+<div class="block">Get the namespace for the reduce output schema.
+ By default this is the package of the class.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>output schema namespace</dd></dl>
+</li>
+</ul>
+<a name="getMapProcessor()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMapProcessor</h4>
+<pre>protected <a href="../../../datafu/hourglass/mapreduce/ObjectMapper.html" title="class in datafu.hourglass.mapreduce">ObjectMapper</a> getMapProcessor()</pre>
+</li>
+</ul>
+<a name="getCombineProcessor()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCombineProcessor</h4>
+<pre>protected <a href="../../../datafu/hourglass/mapreduce/ObjectReducer.html" title="class in datafu.hourglass.mapreduce">ObjectReducer</a> getCombineProcessor()</pre>
+</li>
+</ul>
+<a name="getReduceProcessor()">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getReduceProcessor</h4>
+<pre>protected <a href="../../../datafu/hourglass/mapreduce/ObjectReducer.html" title="class in datafu.hourglass.mapreduce">ObjectReducer</a> getReduceProcessor()</pre>
+</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="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="../../../datafu/hourglass/jobs/AbstractPartitionCollapsingIncrementalJob.Report.html" title="class in datafu.hourglass.jobs"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html" title="class in datafu.hourglass.jobs"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.html" target="_top">Frames</a></li>
+<li><a href="AbstractPartitionPreservingIncrementalJob.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: </li>
+<li><a href="#nested_class_summary">Nested</a> | </li>
+<li>Field | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
Added: incubator/datafu/site/docs/hourglass/1.3.1/datafu/hourglass/jobs/DateRangeConfigurable.html
URL: http://svn.apache.org/viewvc/incubator/datafu/site/docs/hourglass/1.3.1/datafu/hourglass/jobs/DateRangeConfigurable.html?rev=1755883&view=auto
==============================================================================
--- incubator/datafu/site/docs/hourglass/1.3.1/datafu/hourglass/jobs/DateRangeConfigurable.html (added)
+++ incubator/datafu/site/docs/hourglass/1.3.1/datafu/hourglass/jobs/DateRangeConfigurable.html Wed Aug 10 22:07:27 2016
@@ -0,0 +1,213 @@
+<!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 (version 1.7.0_79) on Wed Aug 10 15:00:54 PDT 2016 -->
+<title>DateRangeConfigurable (datafu-hourglass 1.3.1 API)</title>
+<meta name="date" content="2016-08-10">
+<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="DateRangeConfigurable (datafu-hourglass 1.3.1 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="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="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html" title="class in datafu.hourglass.jobs"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../datafu/hourglass/jobs/DateRangePlanner.html" title="class in datafu.hourglass.jobs"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?datafu/hourglass/jobs/DateRangeConfigurable.html" target="_top">Frames</a></li>
+<li><a href="DateRangeConfigurable.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: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li>Constr | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li>Constr | </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">datafu.hourglass.jobs</div>
+<h2 title="Interface DateRangeConfigurable" class="title">Interface DateRangeConfigurable</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../datafu/hourglass/mapreduce/CollapsingCombiner.html" title="class in datafu.hourglass.mapreduce">CollapsingCombiner</a>, <a href="../../../datafu/hourglass/mapreduce/CollapsingReducer.html" title="class in datafu.hourglass.mapreduce">CollapsingReducer</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="strong">DateRangeConfigurable</span></pre>
+<div class="block">An interface for an object with a configurable output date range.</div>
+</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="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd"> </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>void</code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/hourglass/jobs/DateRangeConfigurable.html#setOutputDateRange(datafu.hourglass.fs.DateRange)">setOutputDateRange</a></strong>(<a href="../../../datafu/hourglass/fs/DateRange.html" title="class in datafu.hourglass.fs">DateRange</a> dateRange)</code>
+<div class="block">Sets the date range for the output.</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="setOutputDateRange(datafu.hourglass.fs.DateRange)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setOutputDateRange</h4>
+<pre>void setOutputDateRange(<a href="../../../datafu/hourglass/fs/DateRange.html" title="class in datafu.hourglass.fs">DateRange</a> dateRange)</pre>
+<div class="block">Sets the date range for the output.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dateRange</code> - output date range</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="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="../../../datafu/hourglass/jobs/AbstractPartitionPreservingIncrementalJob.Report.html" title="class in datafu.hourglass.jobs"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../datafu/hourglass/jobs/DateRangePlanner.html" title="class in datafu.hourglass.jobs"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?datafu/hourglass/jobs/DateRangeConfigurable.html" target="_top">Frames</a></li>
+<li><a href="DateRangeConfigurable.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: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li>Constr | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li>Constr | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
Added: incubator/datafu/site/docs/hourglass/1.3.1/datafu/hourglass/jobs/DateRangePlanner.html
URL: http://svn.apache.org/viewvc/incubator/datafu/site/docs/hourglass/1.3.1/datafu/hourglass/jobs/DateRangePlanner.html?rev=1755883&view=auto
==============================================================================
--- incubator/datafu/site/docs/hourglass/1.3.1/datafu/hourglass/jobs/DateRangePlanner.html (added)
+++ incubator/datafu/site/docs/hourglass/1.3.1/datafu/hourglass/jobs/DateRangePlanner.html Wed Aug 10 22:07:27 2016
@@ -0,0 +1,270 @@
+<!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 (version 1.7.0_79) on Wed Aug 10 15:00:54 PDT 2016 -->
+<title>DateRangePlanner (datafu-hourglass 1.3.1 API)</title>
+<meta name="date" content="2016-08-10">
+<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="DateRangePlanner (datafu-hourglass 1.3.1 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="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="../../../datafu/hourglass/jobs/DateRangeConfigurable.html" title="interface in datafu.hourglass.jobs"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../datafu/hourglass/jobs/ExecutionPlanner.html" title="class in datafu.hourglass.jobs"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?datafu/hourglass/jobs/DateRangePlanner.html" target="_top">Frames</a></li>
+<li><a href="DateRangePlanner.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: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </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">datafu.hourglass.jobs</div>
+<h2 title="Class DateRangePlanner" class="title">Class DateRangePlanner</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>datafu.hourglass.jobs.DateRangePlanner</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="strong">DateRangePlanner</span>
+extends java.lang.Object</pre>
+<div class="block">Determines the date range of inputs which should be processed.</div>
+</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"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../datafu/hourglass/jobs/DateRangePlanner.html#DateRangePlanner()">DateRangePlanner</a></strong>()</code> </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"> </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>static <a href="../../../datafu/hourglass/fs/DateRange.html" title="class in datafu.hourglass.fs">DateRange</a></code></td>
+<td class="colLast"><code><strong><a href="../../../datafu/hourglass/jobs/DateRangePlanner.html#getDateRange(java.util.Date,%20java.util.Date,%20java.util.Collection,%20java.lang.Integer,%20java.lang.Integer,%20boolean)">getDateRange</a></strong>(java.util.Date beginDateOverride,
+ java.util.Date endDateOverride,
+ java.util.Collection<java.util.Date> available,
+ java.lang.Integer daysAgo,
+ java.lang.Integer numDays,
+ boolean failOnMissing)</code>
+<div class="block">Determines the date range of inputs which should be processed.</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 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="DateRangePlanner()">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DateRangePlanner</h4>
+<pre>public DateRangePlanner()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDateRange(java.util.Date, java.util.Date, java.util.Collection, java.lang.Integer, java.lang.Integer, boolean)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getDateRange</h4>
+<pre>public static <a href="../../../datafu/hourglass/fs/DateRange.html" title="class in datafu.hourglass.fs">DateRange</a> getDateRange(java.util.Date beginDateOverride,
+ java.util.Date endDateOverride,
+ java.util.Collection<java.util.Date> available,
+ java.lang.Integer daysAgo,
+ java.lang.Integer numDays,
+ boolean failOnMissing)</pre>
+<div class="block">Determines the date range of inputs which should be processed.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>beginDateOverride</code> - Begin date</dd><dd><code>endDateOverride</code> - End date</dd><dd><code>available</code> - The input dates which are available</dd><dd><code>daysAgo</code> - Number of days to subtract from the end date</dd><dd><code>numDays</code> - Number of days to process</dd><dd><code>failOnMissing</code> - true to fail if days are missing in desired date range</dd>
+<dt><span class="strong">Returns:</span></dt><dd>desired date range for inputs to be processed</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="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="../../../datafu/hourglass/jobs/DateRangeConfigurable.html" title="interface in datafu.hourglass.jobs"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../datafu/hourglass/jobs/ExecutionPlanner.html" title="class in datafu.hourglass.jobs"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?datafu/hourglass/jobs/DateRangePlanner.html" target="_top">Frames</a></li>
+<li><a href="DateRangePlanner.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: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>