http://git-wip-us.apache.org/repos/asf/beam-site/blob/7b1f1576/content/documentation/sdks/javadoc/0.5.0/org/apache/beam/runners/core/ReduceFn.ProcessValueContext.html
----------------------------------------------------------------------
diff --git 
a/content/documentation/sdks/javadoc/0.5.0/org/apache/beam/runners/core/ReduceFn.ProcessValueContext.html
 
b/content/documentation/sdks/javadoc/0.5.0/org/apache/beam/runners/core/ReduceFn.ProcessValueContext.html
new file mode 100644
index 0000000..e4bc32d
--- /dev/null
+++ 
b/content/documentation/sdks/javadoc/0.5.0/org/apache/beam/runners/core/ReduceFn.ProcessValueContext.html
@@ -0,0 +1,309 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_111) on Fri Jan 27 21:25:28 CET 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ReduceFn.ProcessValueContext (Apache Beam SDK for Java, version 
0.5.0)</title>
+<meta name="date" content="2017-01-27">
+<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="ReduceFn.ProcessValueContext (Apache Beam 
SDK for Java, version 0.5.0)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance 
Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation 
links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReduceFn.ProcessValueContext.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/beam/runners/core/ReduceFn.OnTriggerContext.html"
 title="class in org.apache.beam.runners.core"><span 
class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/beam/runners/core/ReduceFnRunner.html" 
title="class in org.apache.beam.runners.core"><span 
class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a 
href="../../../../../index.html?org/apache/beam/runners/core/ReduceFn.ProcessValueContext.html"
 target="_top">Frames</a></li>
+<li><a href="ReduceFn.ProcessValueContext.html" 
target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.beam.runners.core</div>
+<h2 title="Class ReduceFn.ProcessValueContext" class="title">Class 
ReduceFn.ProcessValueContext</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a 
href="http://docs.oracle.com/javase/7/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="../../../../../org/apache/beam/runners/core/ReduceFn.Context.html" 
title="class in 
org.apache.beam.runners.core">org.apache.beam.runners.core.ReduceFn.Context</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.beam.runners.core.ReduceFn.ProcessValueContext</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../../org/apache/beam/runners/core/ReduceFn.html" 
title="class in org.apache.beam.runners.core">ReduceFn</a>&lt;<a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html" title="type 
parameter in ReduceFn">K</a>,<a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html" title="type 
parameter in ReduceFn">InputT</a>,<a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html" title="type 
parameter in ReduceFn">OutputT</a>,<a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html" title="type 
parameter in ReduceFn">W</a> extends <a 
href="../../../../../org/apache/beam/sdk/transforms/windowing/BoundedWindow.html"
 title="class in 
org.apache.beam.sdk.transforms.windowing">BoundedWindow</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span 
class="typeNameLabel">ReduceFn.ProcessValueContext</span>
+extends <a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.Context.html" 
title="class in org.apache.beam.runners.core">ReduceFn.Context</a></pre>
+<div class="block">Information accessible within <a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html#processValue-org.apache.beam.runners.core.ReduceFn.ProcessValueContext-"><code>ReduceFn.processValue(org.apache.beam.runners.core.ReduceFn&lt;K,
 InputT, OutputT, W&gt;.ProcessValueContext)</code></a>.</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="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/runners/core/ReduceFn.ProcessValueContext.html#ProcessValueContext--">ProcessValueContext</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="t2" class="tableTab"><span><a 
href="javascript:show(2);">Instance Methods</a></span><span 
class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a 
href="javascript:show(4);">Abstract Methods</a></span><span 
class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>abstract org.joda.time.Instant</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.ProcessValueContext.html#timestamp--">timestamp</a></span>()</code>
+<div class="block">Return the timestamp associated with the value.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>abstract <a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html" title="type 
parameter in ReduceFn">InputT</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.ProcessValueContext.html#value--">value</a></span>()</code>
+<div class="block">Return the actual value being processed.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a 
name="methods.inherited.from.class.org.apache.beam.runners.core.ReduceFn.Context">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.beam.runners.core.<a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.Context.html" 
title="class in org.apache.beam.runners.core">ReduceFn.Context</a></h3>
+<code><a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.Context.html#key--">key</a>,
 <a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.Context.html#state--">state</a>,
 <a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.Context.html#timers--">timers</a>,
 <a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.Context.html#window--">window</a>,
 <a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.Context.html#windowingStrategy--">windowingStrategy</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://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true";
 title="class or interface in java.lang">Object</a></h3>
+<code><a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--";
 title="class or interface in java.lang">clone</a>, <a 
href="http://docs.oracle.com/javase/7/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://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--";
 title="class or interface in java.lang">finalize</a>, <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--";
 title="class or interface in java.lang">getClass</a>, <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--";
 title="class or interface in java.lang">hashCode</a>, <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--";
 title="class or interface in java.lang">notify</a>, <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang
 /Object.html?is-external=true#notifyAll--" title="class or interface in 
java.lang">notifyAll</a>, <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--";
 title="class or interface in java.lang">toString</a>, <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--";
 title="class or interface in java.lang">wait</a>, <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-";
 title="class or interface in java.lang">wait</a>, <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-";
 title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ProcessValueContext--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ProcessValueContext</h4>
+<pre>public&nbsp;ProcessValueContext()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="value--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>value</h4>
+<pre>public abstract&nbsp;<a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html" title="type 
parameter in ReduceFn">InputT</a>&nbsp;value()</pre>
+<div class="block">Return the actual value being processed.</div>
+</li>
+</ul>
+<a name="timestamp--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>timestamp</h4>
+<pre>public abstract&nbsp;org.joda.time.Instant&nbsp;timestamp()</pre>
+<div class="block">Return the timestamp associated with the value.</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="class-use/ReduceFn.ProcessValueContext.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/beam/runners/core/ReduceFn.OnTriggerContext.html"
 title="class in org.apache.beam.runners.core"><span 
class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/beam/runners/core/ReduceFnRunner.html" 
title="class in org.apache.beam.runners.core"><span 
class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a 
href="../../../../../index.html?org/apache/beam/runners/core/ReduceFn.ProcessValueContext.html"
 target="_top">Frames</a></li>
+<li><a href="ReduceFn.ProcessValueContext.html" 
target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2016&#x2013;2017 <a 
href="https://www.apache.org/";>The Apache Software Foundation</a>. All rights 
reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/beam-site/blob/7b1f1576/content/documentation/sdks/javadoc/0.5.0/org/apache/beam/runners/core/ReduceFn.html
----------------------------------------------------------------------
diff --git 
a/content/documentation/sdks/javadoc/0.5.0/org/apache/beam/runners/core/ReduceFn.html
 
b/content/documentation/sdks/javadoc/0.5.0/org/apache/beam/runners/core/ReduceFn.html
new file mode 100644
index 0000000..750869a
--- /dev/null
+++ 
b/content/documentation/sdks/javadoc/0.5.0/org/apache/beam/runners/core/ReduceFn.html
@@ -0,0 +1,471 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_111) on Fri Jan 27 21:25:28 CET 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ReduceFn (Apache Beam SDK for Java, version 0.5.0)</title>
+<meta name="date" content="2017-01-27">
+<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="ReduceFn (Apache Beam SDK for Java, version 
0.5.0)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":10,"i5":10,"i6":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance 
Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation 
links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReduceFn.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/beam/runners/core/PushbackSideInputDoFnRunner.html"
 title="class in org.apache.beam.runners.core"><span 
class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.Context.html" 
title="class in org.apache.beam.runners.core"><span 
class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a 
href="../../../../../index.html?org/apache/beam/runners/core/ReduceFn.html" 
target="_top">Frames</a></li>
+<li><a href="ReduceFn.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.runners.core</div>
+<h2 title="Class ReduceFn" class="title">Class ReduceFn&lt;K,InputT,OutputT,W 
extends <a 
href="../../../../../org/apache/beam/sdk/transforms/windowing/BoundedWindow.html"
 title="class in 
org.apache.beam.sdk.transforms.windowing">BoundedWindow</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true";
 title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.beam.runners.core.ReduceFn&lt;K,InputT,OutputT,W&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>K</code> - The type of key being processed.</dd>
+<dd><code>InputT</code> - The type of input values associated with the 
key.</dd>
+<dd><code>OutputT</code> - The output type that will be produced for each 
key.</dd>
+<dd><code>W</code> - The type of windows this operates on.</dd>
+</dl>
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a 
href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true";
 title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/beam/runners/core/SystemReduceFn.html" 
title="class in org.apache.beam.runners.core">SystemReduceFn</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span 
class="typeNameLabel">ReduceFn&lt;K,InputT,OutputT,W extends <a 
href="../../../../../org/apache/beam/sdk/transforms/windowing/BoundedWindow.html"
 title="class in 
org.apache.beam.sdk.transforms.windowing">BoundedWindow</a>&gt;</span>
+extends <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true";
 title="class or interface in java.lang">Object</a>
+implements <a 
href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true";
 title="class or interface in java.io">Serializable</a></pre>
+<div class="block">Specification for processing to happen after elements have 
been grouped by key.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a 
href="../../../../../serialized-form.html#org.apache.beam.runners.core.ReduceFn">Serialized
 Form</a></dd>
+</dl>
+</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>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.Context.html" 
title="class in org.apache.beam.runners.core">ReduceFn.Context</a></span></code>
+<div class="block">Information accessible to all the processing methods in 
this <code>ReduceFn</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.OnMergeContext.html" 
title="class in 
org.apache.beam.runners.core">ReduceFn.OnMergeContext</a></span></code>
+<div class="block">Information accessible within <a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html#onMerge-org.apache.beam.runners.core.ReduceFn.OnMergeContext-"><code>onMerge(org.apache.beam.runners.core.ReduceFn&lt;K,
 InputT, OutputT, W&gt;.OnMergeContext)</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.OnTriggerContext.html"
 title="class in 
org.apache.beam.runners.core">ReduceFn.OnTriggerContext</a></span></code>
+<div class="block">Information accessible within <a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html#onTrigger-org.apache.beam.runners.core.ReduceFn.OnTriggerContext-"><code>onTrigger(org.apache.beam.runners.core.ReduceFn&lt;K,
 InputT, OutputT, W&gt;.OnTriggerContext)</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.ProcessValueContext.html"
 title="class in 
org.apache.beam.runners.core">ReduceFn.ProcessValueContext</a></span></code>
+<div class="block">Information accessible within <a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html#processValue-org.apache.beam.runners.core.ReduceFn.ProcessValueContext-"><code>processValue(org.apache.beam.runners.core.ReduceFn&lt;K,
 InputT, OutputT, W&gt;.ProcessValueContext)</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/runners/core/ReduceFn.html#ReduceFn--">ReduceFn</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="t2" class="tableTab"><span><a 
href="javascript:show(2);">Instance Methods</a></span><span 
class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a 
href="javascript:show(4);">Abstract Methods</a></span><span 
class="tabEnd">&nbsp;</span></span><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>abstract void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html#clearState-org.apache.beam.runners.core.ReduceFn.Context-">clearState</a></span>(<a
 href="../../../../../org/apache/beam/runners/core/ReduceFn.Context.html" 
title="class in 
org.apache.beam.runners.core">ReduceFn.Context</a>&nbsp;context)</code>
+<div class="block">Called to clear any persisted state that the <a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html" title="class 
in org.apache.beam.runners.core"><code>ReduceFn</code></a> may be holding.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>abstract <a 
href="../../../../../org/apache/beam/sdk/util/state/ReadableState.html" 
title="interface in org.apache.beam.sdk.util.state">ReadableState</a>&lt;<a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true";
 title="class or interface in java.lang">Boolean</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html#isEmpty-org.apache.beam.sdk.util.state.StateAccessor-">isEmpty</a></span>(<a
 href="../../../../../org/apache/beam/sdk/util/state/StateAccessor.html" 
title="interface in org.apache.beam.sdk.util.state">StateAccessor</a>&lt;<a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html" title="type 
parameter in ReduceFn">K</a>&gt;&nbsp;context)</code>
+<div class="block">Returns true if the there is no buffered state.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>abstract void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html#onMerge-org.apache.beam.runners.core.ReduceFn.OnMergeContext-">onMerge</a></span>(<a
 
href="../../../../../org/apache/beam/runners/core/ReduceFn.OnMergeContext.html" 
title="class in 
org.apache.beam.runners.core">ReduceFn.OnMergeContext</a>&nbsp;context)</code>
+<div class="block">Called when windows are merged.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>abstract void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html#onTrigger-org.apache.beam.runners.core.ReduceFn.OnTriggerContext-">onTrigger</a></span>(<a
 
href="../../../../../org/apache/beam/runners/core/ReduceFn.OnTriggerContext.html"
 title="class in 
org.apache.beam.runners.core">ReduceFn.OnTriggerContext</a>&nbsp;context)</code>
+<div class="block">Called when triggers fire.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html#prefetchOnMerge-org.apache.beam.sdk.util.state.MergingStateAccessor-">prefetchOnMerge</a></span>(<a
 href="../../../../../org/apache/beam/sdk/util/state/MergingStateAccessor.html" 
title="interface in 
org.apache.beam.sdk.util.state">MergingStateAccessor</a>&lt;<a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html" title="type 
parameter in ReduceFn">K</a>,<a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html" title="type 
parameter in ReduceFn">W</a>&gt;&nbsp;c)</code>
+<div class="block">Called before <a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html#onMerge-org.apache.beam.runners.core.ReduceFn.OnMergeContext-"><code>onMerge(org.apache.beam.runners.core.ReduceFn&lt;K,
 InputT, OutputT, W&gt;.OnMergeContext)</code></a> is invoked to provide an 
opportunity to prefetch any needed
+ state.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html#prefetchOnTrigger-org.apache.beam.sdk.util.state.StateAccessor-">prefetchOnTrigger</a></span>(<a
 href="../../../../../org/apache/beam/sdk/util/state/StateAccessor.html" 
title="interface in org.apache.beam.sdk.util.state">StateAccessor</a>&lt;<a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html" title="type 
parameter in ReduceFn">K</a>&gt;&nbsp;context)</code>
+<div class="block">Called before <a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html#onTrigger-org.apache.beam.runners.core.ReduceFn.OnTriggerContext-"><code>onTrigger(org.apache.beam.runners.core.ReduceFn&lt;K,
 InputT, OutputT, W&gt;.OnTriggerContext)</code></a> is invoked to provide an 
opportunity to prefetch any needed
+ state.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>abstract void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html#processValue-org.apache.beam.runners.core.ReduceFn.ProcessValueContext-">processValue</a></span>(<a
 
href="../../../../../org/apache/beam/runners/core/ReduceFn.ProcessValueContext.html"
 title="class in 
org.apache.beam.runners.core">ReduceFn.ProcessValueContext</a>&nbsp;c)</code>
+<div class="block">Called for each value of type <code>InputT</code> 
associated with the current key.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true";
 title="class or interface in java.lang">Object</a></h3>
+<code><a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--";
 title="class or interface in java.lang">clone</a>, <a 
href="http://docs.oracle.com/javase/7/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://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--";
 title="class or interface in java.lang">finalize</a>, <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--";
 title="class or interface in java.lang">getClass</a>, <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--";
 title="class or interface in java.lang">hashCode</a>, <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--";
 title="class or interface in java.lang">notify</a>, <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang
 /Object.html?is-external=true#notifyAll--" title="class or interface in 
java.lang">notifyAll</a>, <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--";
 title="class or interface in java.lang">toString</a>, <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--";
 title="class or interface in java.lang">wait</a>, <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-";
 title="class or interface in java.lang">wait</a>, <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-";
 title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ReduceFn--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ReduceFn</h4>
+<pre>public&nbsp;ReduceFn()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a 
name="processValue-org.apache.beam.runners.core.ReduceFn.ProcessValueContext-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>processValue</h4>
+<pre>public abstract&nbsp;void&nbsp;processValue(<a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.ProcessValueContext.html"
 title="class in 
org.apache.beam.runners.core">ReduceFn.ProcessValueContext</a>&nbsp;c)
+                           throws <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></pre>
+<div class="block">Called for each value of type <code>InputT</code> 
associated with the current key.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="onMerge-org.apache.beam.runners.core.ReduceFn.OnMergeContext-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onMerge</h4>
+<pre>public abstract&nbsp;void&nbsp;onMerge(<a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.OnMergeContext.html" 
title="class in 
org.apache.beam.runners.core">ReduceFn.OnMergeContext</a>&nbsp;context)
+                      throws <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></pre>
+<div class="block">Called when windows are merged.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="onTrigger-org.apache.beam.runners.core.ReduceFn.OnTriggerContext-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onTrigger</h4>
+<pre>public abstract&nbsp;void&nbsp;onTrigger(<a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.OnTriggerContext.html"
 title="class in 
org.apache.beam.runners.core">ReduceFn.OnTriggerContext</a>&nbsp;context)
+                        throws <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></pre>
+<div class="block">Called when triggers fire.
+
+ <p>Implementations of <a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html" title="class 
in org.apache.beam.runners.core"><code>ReduceFn</code></a> should call <a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.OnTriggerContext.html#output-OutputT-"><code>ReduceFn.OnTriggerContext.output(OutputT)</code></a>
 to emit
+ any results that should be included in the pane produced by this trigger 
firing.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="prefetchOnMerge-org.apache.beam.sdk.util.state.MergingStateAccessor-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>prefetchOnMerge</h4>
+<pre>public&nbsp;void&nbsp;prefetchOnMerge(<a 
href="../../../../../org/apache/beam/sdk/util/state/MergingStateAccessor.html" 
title="interface in 
org.apache.beam.sdk.util.state">MergingStateAccessor</a>&lt;<a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html" title="type 
parameter in ReduceFn">K</a>,<a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html" title="type 
parameter in ReduceFn">W</a>&gt;&nbsp;c)
+                     throws <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></pre>
+<div class="block">Called before <a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html#onMerge-org.apache.beam.runners.core.ReduceFn.OnMergeContext-"><code>onMerge(org.apache.beam.runners.core.ReduceFn&lt;K,
 InputT, OutputT, W&gt;.OnMergeContext)</code></a> is invoked to provide an 
opportunity to prefetch any needed
+ state.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>c</code> - Context to use prefetch from.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="prefetchOnTrigger-org.apache.beam.sdk.util.state.StateAccessor-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>prefetchOnTrigger</h4>
+<pre>public&nbsp;void&nbsp;prefetchOnTrigger(<a 
href="../../../../../org/apache/beam/sdk/util/state/StateAccessor.html" 
title="interface in org.apache.beam.sdk.util.state">StateAccessor</a>&lt;<a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html" title="type 
parameter in ReduceFn">K</a>&gt;&nbsp;context)</pre>
+<div class="block">Called before <a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html#onTrigger-org.apache.beam.runners.core.ReduceFn.OnTriggerContext-"><code>onTrigger(org.apache.beam.runners.core.ReduceFn&lt;K,
 InputT, OutputT, W&gt;.OnTriggerContext)</code></a> is invoked to provide an 
opportunity to prefetch any needed
+ state.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - Context to use prefetch from.</dd>
+</dl>
+</li>
+</ul>
+<a name="clearState-org.apache.beam.runners.core.ReduceFn.Context-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clearState</h4>
+<pre>public abstract&nbsp;void&nbsp;clearState(<a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.Context.html" 
title="class in org.apache.beam.runners.core">ReduceFn.Context</a>&nbsp;context)
+                         throws <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></pre>
+<div class="block">Called to clear any persisted state that the <a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html" title="class 
in org.apache.beam.runners.core"><code>ReduceFn</code></a> may be holding. This 
will be
+ called when the windowing is closing and will receive no future 
interactions.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="isEmpty-org.apache.beam.sdk.util.state.StateAccessor-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isEmpty</h4>
+<pre>public abstract&nbsp;<a 
href="../../../../../org/apache/beam/sdk/util/state/ReadableState.html" 
title="interface in org.apache.beam.sdk.util.state">ReadableState</a>&lt;<a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true";
 title="class or interface in java.lang">Boolean</a>&gt;&nbsp;isEmpty(<a 
href="../../../../../org/apache/beam/sdk/util/state/StateAccessor.html" 
title="interface in org.apache.beam.sdk.util.state">StateAccessor</a>&lt;<a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html" title="type 
parameter in ReduceFn">K</a>&gt;&nbsp;context)</pre>
+<div class="block">Returns true if the there is no buffered state.</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="class-use/ReduceFn.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/beam/runners/core/PushbackSideInputDoFnRunner.html"
 title="class in org.apache.beam.runners.core"><span 
class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.Context.html" 
title="class in org.apache.beam.runners.core"><span 
class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a 
href="../../../../../index.html?org/apache/beam/runners/core/ReduceFn.html" 
target="_top">Frames</a></li>
+<li><a href="ReduceFn.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 ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2016&#x2013;2017 <a 
href="https://www.apache.org/";>The Apache Software Foundation</a>. All rights 
reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/beam-site/blob/7b1f1576/content/documentation/sdks/javadoc/0.5.0/org/apache/beam/runners/core/ReduceFnRunner.html
----------------------------------------------------------------------
diff --git 
a/content/documentation/sdks/javadoc/0.5.0/org/apache/beam/runners/core/ReduceFnRunner.html
 
b/content/documentation/sdks/javadoc/0.5.0/org/apache/beam/runners/core/ReduceFnRunner.html
new file mode 100644
index 0000000..848bae5
--- /dev/null
+++ 
b/content/documentation/sdks/javadoc/0.5.0/org/apache/beam/runners/core/ReduceFnRunner.html
@@ -0,0 +1,378 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_111) on Fri Jan 27 21:25:28 CET 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ReduceFnRunner (Apache Beam SDK for Java, version 0.5.0)</title>
+<meta name="date" content="2017-01-27">
+<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="ReduceFnRunner (Apache Beam SDK for Java, 
version 0.5.0)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance 
Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation 
links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReduceFnRunner.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/beam/runners/core/ReduceFn.ProcessValueContext.html"
 title="class in org.apache.beam.runners.core"><span 
class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a 
href="../../../../../org/apache/beam/runners/core/SideInputHandler.html" 
title="class in org.apache.beam.runners.core"><span 
class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a 
href="../../../../../index.html?org/apache/beam/runners/core/ReduceFnRunner.html"
 target="_top">Frames</a></li>
+<li><a href="ReduceFnRunner.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.beam.runners.core</div>
+<h2 title="Class ReduceFnRunner" class="title">Class 
ReduceFnRunner&lt;K,InputT,OutputT,W extends <a 
href="../../../../../org/apache/beam/sdk/transforms/windowing/BoundedWindow.html"
 title="class in 
org.apache.beam.sdk.transforms.windowing">BoundedWindow</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true";
 title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.beam.runners.core.ReduceFnRunner&lt;K,InputT,OutputT,W&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>K</code> - The type of key being processed.</dd>
+<dd><code>InputT</code> - The type of values associated with the key.</dd>
+<dd><code>OutputT</code> - The output type that will be produced for each 
key.</dd>
+<dd><code>W</code> - The type of windows this operates on.</dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span 
class="typeNameLabel">ReduceFnRunner&lt;K,InputT,OutputT,W extends <a 
href="../../../../../org/apache/beam/sdk/transforms/windowing/BoundedWindow.html"
 title="class in 
org.apache.beam.sdk.transforms.windowing">BoundedWindow</a>&gt;</span>
+extends <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true";
 title="class or interface in java.lang">Object</a></pre>
+<div class="block">Manages the execution of a <a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html" title="class 
in org.apache.beam.runners.core"><code>ReduceFn</code></a> after a <a 
href="../../../../../org/apache/beam/runners/core/GroupByKeyViaGroupByKeyOnly.GroupByKeyOnly.html"
 title="class in 
org.apache.beam.runners.core"><code>GroupByKeyViaGroupByKeyOnly.GroupByKeyOnly</code></a>
 has partitioned the
+ <a href="../../../../../org/apache/beam/sdk/values/PCollection.html" 
title="class in org.apache.beam.sdk.values"><code>PCollection</code></a> by key.
+
+ <p>The <a 
href="../../../../../org/apache/beam/runners/core/ReduceFnRunner.html#onTrigger-org.apache.beam.runners.core.ReduceFn.Context-org.apache.beam.runners.core.ReduceFn.Context-boolean-boolean-"><code>onTrigger(org.apache.beam.runners.core.ReduceFn&lt;K,
 InputT, OutputT, W&gt;.Context, org.apache.beam.runners.core.ReduceFn&lt;K, 
InputT, OutputT, W&gt;.Context, boolean, boolean)</code></a> relies on a <a 
href="../../../../../org/apache/beam/runners/core/triggers/TriggerStateMachineRunner.html"
 title="class in 
org.apache.beam.runners.core.triggers"><code>TriggerStateMachineRunner</code></a>
 to manage the execution
+ of the triggering logic. The <code>ReduceFnRunner</code>s responsibilities 
are:
+
+ <ul>
+ <li>Tracking the windows that are active (have buffered data) as elements 
arrive and triggers are
+     fired.
+ <li>Holding the watermark based on the timestamps of elements in a pane and 
releasing it when the
+     trigger fires.
+ <li>Calling the appropriate callbacks on <a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html" title="class 
in org.apache.beam.runners.core"><code>ReduceFn</code></a> based on trigger 
execution, timer
+     firings, etc, and providing appropriate contexts to the <a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html" title="class 
in org.apache.beam.runners.core"><code>ReduceFn</code></a> for actions such as
+     output.
+ <li>Scheduling garbage collection of state associated with a specific window, 
and making that
+     happen when the appropriate timer fires.
+ </ul></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="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/runners/core/ReduceFnRunner.html#ReduceFnRunner-K-org.apache.beam.sdk.util.WindowingStrategy-org.apache.beam.runners.core.triggers.ExecutableTriggerStateMachine-org.apache.beam.sdk.util.state.StateInternals-org.apache.beam.sdk.util.TimerInternals-org.apache.beam.runners.core.OutputWindowedValue-org.apache.beam.sdk.util.SideInputReader-org.apache.beam.sdk.transforms.Aggregator-org.apache.beam.runners.core.ReduceFn-org.apache.beam.sdk.options.PipelineOptions-">ReduceFnRunner</a></span>(<a
 href="../../../../../org/apache/beam/runners/core/ReduceFnRunner.html" 
title="type parameter in ReduceFnRunner">K</a>&nbsp;key,
+              <a 
href="../../../../../org/apache/beam/sdk/util/WindowingStrategy.html" 
title="class in org.apache.beam.sdk.util">WindowingStrategy</a>&lt;?,<a 
href="../../../../../org/apache/beam/runners/core/ReduceFnRunner.html" 
title="type parameter in ReduceFnRunner">W</a>&gt;&nbsp;windowingStrategy,
+              <a 
href="../../../../../org/apache/beam/runners/core/triggers/ExecutableTriggerStateMachine.html"
 title="class in 
org.apache.beam.runners.core.triggers">ExecutableTriggerStateMachine</a>&nbsp;triggerStateMachine,
+              <a 
href="../../../../../org/apache/beam/sdk/util/state/StateInternals.html" 
title="interface in org.apache.beam.sdk.util.state">StateInternals</a>&lt;<a 
href="../../../../../org/apache/beam/runners/core/ReduceFnRunner.html" 
title="type parameter in ReduceFnRunner">K</a>&gt;&nbsp;stateInternals,
+              <a 
href="../../../../../org/apache/beam/sdk/util/TimerInternals.html" 
title="interface in 
org.apache.beam.sdk.util">TimerInternals</a>&nbsp;timerInternals,
+              <a 
href="../../../../../org/apache/beam/runners/core/OutputWindowedValue.html" 
title="interface in org.apache.beam.runners.core">OutputWindowedValue</a>&lt;<a 
href="../../../../../org/apache/beam/sdk/values/KV.html" title="class in 
org.apache.beam.sdk.values">KV</a>&lt;<a 
href="../../../../../org/apache/beam/runners/core/ReduceFnRunner.html" 
title="type parameter in ReduceFnRunner">K</a>,<a 
href="../../../../../org/apache/beam/runners/core/ReduceFnRunner.html" 
title="type parameter in ReduceFnRunner">OutputT</a>&gt;&gt;&nbsp;outputter,
+              <a 
href="../../../../../org/apache/beam/sdk/util/SideInputReader.html" 
title="interface in 
org.apache.beam.sdk.util">SideInputReader</a>&nbsp;sideInputReader,
+              <a 
href="../../../../../org/apache/beam/sdk/transforms/Aggregator.html" 
title="interface in org.apache.beam.sdk.transforms">Aggregator</a>&lt;<a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true";
 title="class or interface in java.lang">Long</a>,<a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true";
 title="class or interface in 
java.lang">Long</a>&gt;&nbsp;droppedDueToClosedWindow,
+              <a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html" title="class 
in org.apache.beam.runners.core">ReduceFn</a>&lt;<a 
href="../../../../../org/apache/beam/runners/core/ReduceFnRunner.html" 
title="type parameter in ReduceFnRunner">K</a>,<a 
href="../../../../../org/apache/beam/runners/core/ReduceFnRunner.html" 
title="type parameter in ReduceFnRunner">InputT</a>,<a 
href="../../../../../org/apache/beam/runners/core/ReduceFnRunner.html" 
title="type parameter in ReduceFnRunner">OutputT</a>,<a 
href="../../../../../org/apache/beam/runners/core/ReduceFnRunner.html" 
title="type parameter in ReduceFnRunner">W</a>&gt;&nbsp;reduceFn,
+              <a 
href="../../../../../org/apache/beam/sdk/options/PipelineOptions.html" 
title="interface in 
org.apache.beam.sdk.options">PipelineOptions</a>&nbsp;options)</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="t2" class="tableTab"><span><a 
href="javascript:show(2);">Instance 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>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/beam/runners/core/ReduceFnRunner.html#onTimers-java.lang.Iterable-">onTimers</a></span>(<a
 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html?is-external=true";
 title="class or interface in java.lang">Iterable</a>&lt;<a 
href="../../../../../org/apache/beam/sdk/util/TimerInternals.TimerData.html" 
title="class in 
org.apache.beam.sdk.util">TimerInternals.TimerData</a>&gt;&nbsp;timers)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/beam/runners/core/ReduceFnRunner.html#persist--">persist</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/beam/runners/core/ReduceFnRunner.html#processElements-java.lang.Iterable-">processElements</a></span>(<a
 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html?is-external=true";
 title="class or interface in java.lang">Iterable</a>&lt;<a 
href="../../../../../org/apache/beam/sdk/util/WindowedValue.html" title="class 
in org.apache.beam.sdk.util">WindowedValue</a>&lt;<a 
href="../../../../../org/apache/beam/runners/core/ReduceFnRunner.html" 
title="type parameter in ReduceFnRunner">InputT</a>&gt;&gt;&nbsp;values)</code>
+<div class="block">Incorporate <code>values</code> into the underlying reduce 
function, and manage holds, timers,
+ triggers, and window merging.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true";
 title="class or interface in java.lang">Object</a></h3>
+<code><a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--";
 title="class or interface in java.lang">clone</a>, <a 
href="http://docs.oracle.com/javase/7/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://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--";
 title="class or interface in java.lang">finalize</a>, <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--";
 title="class or interface in java.lang">getClass</a>, <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--";
 title="class or interface in java.lang">hashCode</a>, <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--";
 title="class or interface in java.lang">notify</a>, <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang
 /Object.html?is-external=true#notifyAll--" title="class or interface in 
java.lang">notifyAll</a>, <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--";
 title="class or interface in java.lang">toString</a>, <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--";
 title="class or interface in java.lang">wait</a>, <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-";
 title="class or interface in java.lang">wait</a>, <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-";
 title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a 
name="ReduceFnRunner-java.lang.Object-org.apache.beam.sdk.util.WindowingStrategy-org.apache.beam.runners.core.triggers.ExecutableTriggerStateMachine-org.apache.beam.sdk.util.state.StateInternals-org.apache.beam.sdk.util.TimerInternals-org.apache.beam.runners.core.OutputWindowedValue-org.apache.beam.sdk.util.SideInputReader-org.apache.beam.sdk.transforms.Aggregator-org.apache.beam.runners.core.ReduceFn-org.apache.beam.sdk.options.PipelineOptions-">
+<!--   -->
+</a><a 
name="ReduceFnRunner-K-org.apache.beam.sdk.util.WindowingStrategy-org.apache.beam.runners.core.triggers.ExecutableTriggerStateMachine-org.apache.beam.sdk.util.state.StateInternals-org.apache.beam.sdk.util.TimerInternals-org.apache.beam.runners.core.OutputWindowedValue-org.apache.beam.sdk.util.SideInputReader-org.apache.beam.sdk.transforms.Aggregator-org.apache.beam.runners.core.ReduceFn-org.apache.beam.sdk.options.PipelineOptions-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ReduceFnRunner</h4>
+<pre>public&nbsp;ReduceFnRunner(<a 
href="../../../../../org/apache/beam/runners/core/ReduceFnRunner.html" 
title="type parameter in ReduceFnRunner">K</a>&nbsp;key,
+                      <a 
href="../../../../../org/apache/beam/sdk/util/WindowingStrategy.html" 
title="class in org.apache.beam.sdk.util">WindowingStrategy</a>&lt;?,<a 
href="../../../../../org/apache/beam/runners/core/ReduceFnRunner.html" 
title="type parameter in ReduceFnRunner">W</a>&gt;&nbsp;windowingStrategy,
+                      <a 
href="../../../../../org/apache/beam/runners/core/triggers/ExecutableTriggerStateMachine.html"
 title="class in 
org.apache.beam.runners.core.triggers">ExecutableTriggerStateMachine</a>&nbsp;triggerStateMachine,
+                      <a 
href="../../../../../org/apache/beam/sdk/util/state/StateInternals.html" 
title="interface in org.apache.beam.sdk.util.state">StateInternals</a>&lt;<a 
href="../../../../../org/apache/beam/runners/core/ReduceFnRunner.html" 
title="type parameter in ReduceFnRunner">K</a>&gt;&nbsp;stateInternals,
+                      <a 
href="../../../../../org/apache/beam/sdk/util/TimerInternals.html" 
title="interface in 
org.apache.beam.sdk.util">TimerInternals</a>&nbsp;timerInternals,
+                      <a 
href="../../../../../org/apache/beam/runners/core/OutputWindowedValue.html" 
title="interface in org.apache.beam.runners.core">OutputWindowedValue</a>&lt;<a 
href="../../../../../org/apache/beam/sdk/values/KV.html" title="class in 
org.apache.beam.sdk.values">KV</a>&lt;<a 
href="../../../../../org/apache/beam/runners/core/ReduceFnRunner.html" 
title="type parameter in ReduceFnRunner">K</a>,<a 
href="../../../../../org/apache/beam/runners/core/ReduceFnRunner.html" 
title="type parameter in ReduceFnRunner">OutputT</a>&gt;&gt;&nbsp;outputter,
+                      <a 
href="../../../../../org/apache/beam/sdk/util/SideInputReader.html" 
title="interface in 
org.apache.beam.sdk.util">SideInputReader</a>&nbsp;sideInputReader,
+                      <a 
href="../../../../../org/apache/beam/sdk/transforms/Aggregator.html" 
title="interface in org.apache.beam.sdk.transforms">Aggregator</a>&lt;<a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true";
 title="class or interface in java.lang">Long</a>,<a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true";
 title="class or interface in 
java.lang">Long</a>&gt;&nbsp;droppedDueToClosedWindow,
+                      <a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html" title="class 
in org.apache.beam.runners.core">ReduceFn</a>&lt;<a 
href="../../../../../org/apache/beam/runners/core/ReduceFnRunner.html" 
title="type parameter in ReduceFnRunner">K</a>,<a 
href="../../../../../org/apache/beam/runners/core/ReduceFnRunner.html" 
title="type parameter in ReduceFnRunner">InputT</a>,<a 
href="../../../../../org/apache/beam/runners/core/ReduceFnRunner.html" 
title="type parameter in ReduceFnRunner">OutputT</a>,<a 
href="../../../../../org/apache/beam/runners/core/ReduceFnRunner.html" 
title="type parameter in ReduceFnRunner">W</a>&gt;&nbsp;reduceFn,
+                      <a 
href="../../../../../org/apache/beam/sdk/options/PipelineOptions.html" 
title="interface in 
org.apache.beam.sdk.options">PipelineOptions</a>&nbsp;options)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="processElements-java.lang.Iterable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>processElements</h4>
+<pre>public&nbsp;void&nbsp;processElements(<a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html?is-external=true";
 title="class or interface in java.lang">Iterable</a>&lt;<a 
href="../../../../../org/apache/beam/sdk/util/WindowedValue.html" title="class 
in org.apache.beam.sdk.util">WindowedValue</a>&lt;<a 
href="../../../../../org/apache/beam/runners/core/ReduceFnRunner.html" 
title="type parameter in ReduceFnRunner">InputT</a>&gt;&gt;&nbsp;values)
+                     throws <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></pre>
+<div class="block">Incorporate <code>values</code> into the underlying reduce 
function, and manage holds, timers,
+ triggers, and window merging.
+
+ <p>The general strategy is:
+ <ol>
+ <li>Use <a 
href="../../../../../org/apache/beam/sdk/util/WindowedValue.html#getWindows--"><code>WindowedValue.getWindows()</code></a>
 (itself determined using
+ <a 
href="../../../../../org/apache/beam/sdk/transforms/windowing/WindowFn.html#assignWindows-org.apache.beam.sdk.transforms.windowing.WindowFn.AssignContext-"><code>WindowFn.assignWindows(org.apache.beam.sdk.transforms.windowing.WindowFn&lt;T,
 W&gt;.AssignContext)</code></a>) to determine which windows each element 
belongs to. Some
+ of those windows will already have state associated with them. The rest are 
considered
+ NEW.
+ <li>Use <a 
href="../../../../../org/apache/beam/sdk/transforms/windowing/WindowFn.html#mergeWindows-org.apache.beam.sdk.transforms.windowing.WindowFn.MergeContext-"><code>WindowFn.mergeWindows(org.apache.beam.sdk.transforms.windowing.WindowFn&lt;T,
 W&gt;.MergeContext)</code></a> to attempt to merge currently ACTIVE and NEW 
windows.
+ Each NEW window will become either ACTIVE or be discardedL.
+ (See <a 
href="../../../../../org/apache/beam/runners/core/ActiveWindowSet.html" 
title="interface in 
org.apache.beam.runners.core"><code>ActiveWindowSet</code></a> for definitions 
of these terms.)
+ <li>If at all possible, eagerly substitute NEW windows with their ACTIVE 
state address
+ windows before any state is associated with the NEW window. In the common 
case that
+ windows for new elements are merged into existing ACTIVE windows then no 
additional
+ storage or merging overhead will be incurred.
+ <li>Otherwise, keep track of the state address windows for ACTIVE windows so 
that their
+ states can be merged on-demand when a pane fires.
+ <li>Process the element for each of the windows it's windows have been merged 
into according
+ to <a href="../../../../../org/apache/beam/runners/core/ActiveWindowSet.html" 
title="interface in 
org.apache.beam.runners.core"><code>ActiveWindowSet</code></a>. Processing may 
require running triggers, setting timers,
+ setting holds, and invoking <a 
href="../../../../../org/apache/beam/runners/core/ReduceFn.html#onTrigger-org.apache.beam.runners.core.ReduceFn.OnTriggerContext-"><code>ReduceFn.onTrigger(org.apache.beam.runners.core.ReduceFn&lt;K,
 InputT, OutputT, W&gt;.OnTriggerContext)</code></a>.
+ </ol></div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="persist--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>persist</h4>
+<pre>public&nbsp;void&nbsp;persist()</pre>
+</li>
+</ul>
+<a name="onTimers-java.lang.Iterable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>onTimers</h4>
+<pre>public&nbsp;void&nbsp;onTimers(<a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html?is-external=true";
 title="class or interface in java.lang">Iterable</a>&lt;<a 
href="../../../../../org/apache/beam/sdk/util/TimerInternals.TimerData.html" 
title="class in 
org.apache.beam.sdk.util">TimerInternals.TimerData</a>&gt;&nbsp;timers)
+              throws <a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a 
href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</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>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation 
links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReduceFnRunner.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/beam/runners/core/ReduceFn.ProcessValueContext.html"
 title="class in org.apache.beam.runners.core"><span 
class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a 
href="../../../../../org/apache/beam/runners/core/SideInputHandler.html" 
title="class in org.apache.beam.runners.core"><span 
class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a 
href="../../../../../index.html?org/apache/beam/runners/core/ReduceFnRunner.html"
 target="_top">Frames</a></li>
+<li><a href="ReduceFnRunner.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2016&#x2013;2017 <a 
href="https://www.apache.org/";>The Apache Software Foundation</a>. All rights 
reserved.</small></p>
+</body>
+</html>

Reply via email to