blob: 2608ca6185448ca0c428eadaca0d28562d41ea32 [file] [log] [blame]
<!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_181-google-v7) on Mon Jan 27 16:42:31 PST 2020 -->
<title>Window (Apache Beam 2.20.0-SNAPSHOT)</title>
<meta name="date" content="2020-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="Window (Apache Beam 2.20.0-SNAPSHOT)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":9,"i2":10,"i3":10,"i4":10,"i5":10,"i6":6,"i7":9,"i8":10,"i9":9,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static 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="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Trigger.OnceTrigger.html" title="class in org.apache.beam.sdk.transforms.windowing"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.Assign.html" title="class in org.apache.beam.sdk.transforms.windowing"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/beam/sdk/transforms/windowing/Window.html" target="_top">Frames</a></li>
<li><a href="Window.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><a href="#fields.inherited.from.class.org.apache.beam.sdk.transforms.PTransform">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.beam.sdk.transforms.windowing</div>
<h2 title="Class Window" class="title">Class Window&lt;T&gt;</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms">org.apache.beam.sdk.transforms.PTransform</a>&lt;<a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values">PCollection</a>&lt;T&gt;,<a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values">PCollection</a>&lt;T&gt;&gt;</li>
<li>
<ul class="inheritance">
<li>org.apache.beam.sdk.transforms.windowing.Window&lt;T&gt;</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>java.io.Serializable, <a href="../../../../../../org/apache/beam/sdk/transforms/display/HasDisplayData.html" title="interface in org.apache.beam.sdk.transforms.display">HasDisplayData</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">Window&lt;T&gt;</span>
extends <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms">PTransform</a>&lt;<a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values">PCollection</a>&lt;T&gt;,<a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values">PCollection</a>&lt;T&gt;&gt;</pre>
<div class="block"><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing"><code>Window</code></a> logically divides up or groups the elements of a <a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values"><code>PCollection</code></a> into finite
windows according to a <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/WindowFn.html" title="class in org.apache.beam.sdk.transforms.windowing"><code>WindowFn</code></a>. The output of <code>Window</code> contains the same elements
as input, but they have been logically assigned to windows. The next <a href="../../../../../../org/apache/beam/sdk/transforms/GroupByKey.html" title="class in org.apache.beam.sdk.transforms"><code>GroupByKeys</code></a>, including one within composite
transforms, will group by the combination of keys and windows.
<p>See <a href="../../../../../../org/apache/beam/sdk/transforms/GroupByKey.html" title="class in org.apache.beam.sdk.transforms"><code>GroupByKey</code></a> for more information about how grouping
with windows works.
<h2>Windowing</h2>
<p>Windowing a <a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values"><code>PCollection</code></a> divides the elements into windows based on the associated
event time for each element. This is especially useful for <a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values"><code>PCollections</code></a> with
unbounded size, since it allows operating on a sub-group of the elements placed into a related
window. For <a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values"><code>PCollections</code></a> with a bounded size (aka. conventional batch mode),
by default, all data is implicitly in a single window, unless <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing"><code>Window</code></a> is applied.
<p>For example, a simple form of windowing divides up the data into fixed-width time intervals,
using <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/FixedWindows.html" title="class in org.apache.beam.sdk.transforms.windowing"><code>FixedWindows</code></a>. The following example demonstrates how to use <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing"><code>Window</code></a> in a
pipeline that counts the number of occurrences of strings each minute:
<pre><code>
PCollection&lt;String&gt; items = ...;
PCollection&lt;String&gt; windowed_items = items.apply(
Window.&lt;String&gt;into(FixedWindows.of(Duration.standardMinutes(1))));
PCollection&lt;KV&lt;String, Long&gt;&gt; windowed_counts = windowed_items.apply(
Count.&lt;String&gt;perElement());
</code></pre>
<p>Let (data, timestamp) denote a data element along with its timestamp. Then, if the input to
this pipeline consists of {("foo", 15s), ("bar", 30s), ("foo", 45s), ("foo", 1m30s)}, the output
will be {(KV("foo", 2), 1m), (KV("bar", 1), 1m), (KV("foo", 1), 2m)}
<p>Several predefined <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/WindowFn.html" title="class in org.apache.beam.sdk.transforms.windowing"><code>WindowFn</code></a>s are provided:
<ul>
<li><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/FixedWindows.html" title="class in org.apache.beam.sdk.transforms.windowing"><code>FixedWindows</code></a> partitions the timestamps into fixed-width intervals.
<li><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/SlidingWindows.html" title="class in org.apache.beam.sdk.transforms.windowing"><code>SlidingWindows</code></a> places data into overlapping fixed-width intervals.
<li><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Sessions.html" title="class in org.apache.beam.sdk.transforms.windowing"><code>Sessions</code></a> groups data into sessions where each item in a window is separated from
the next by no more than a specified gap.
</ul>
<p>Additionally, custom <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/WindowFn.html" title="class in org.apache.beam.sdk.transforms.windowing"><code>WindowFn</code></a>s can be created, by creating new subclasses of <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/WindowFn.html" title="class in org.apache.beam.sdk.transforms.windowing"><code>WindowFn</code></a>.
<h2>Triggers</h2>
<p><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html#triggering-org.apache.beam.sdk.transforms.windowing.Trigger-"><code>triggering(Trigger)</code></a> allows specifying a trigger to control when (in processing
time) results for the given window can be produced. If unspecified, the default behavior is to
trigger first when the watermark passes the end of the window, and then trigger again every time
there is late arriving data.
<p>Elements are added to the current window pane as they arrive. When the root trigger fires,
output is produced based on the elements in the current pane.
<p>Depending on the trigger, this can be used both to output partial results early during the
processing of the whole window, and to deal with late arriving in batches.
<p>Continuing the earlier example, if we wanted to emit the values that were available when the
watermark passed the end of the window, and then output any late arriving elements once-per
(actual hour) hour until we have finished processing the next 24-hours of data. (The use of
watermark time to stop processing tends to be more robust if the data source is slow for a few
days, etc.)
<pre><code>
PCollection&lt;String&gt; items = ...;
PCollection&lt;String&gt; windowed_items = items.apply(
Window.&lt;String&gt;into(FixedWindows.of(Duration.standardMinutes(1)))
.triggering(
AfterWatermark.pastEndOfWindow()
.withLateFirings(AfterProcessingTime
.pastFirstElementInPane().plusDelayOf(Duration.standardHours(1))))
.withAllowedLateness(Duration.standardDays(1)));
PCollection&lt;KV&lt;String, Long&gt;&gt; windowed_counts = windowed_items.apply(
Count.&lt;String&gt;perElement());
</code></pre>
<p>On the other hand, if we wanted to get early results every minute of processing time (for
which there were new elements in the given window) we could do the following:
<pre><code>
PCollection&lt;String&gt; windowed_items = items.apply(
Window.&lt;String&gt;into(FixedWindows.of(Duration.standardMinutes(1)))
.triggering(
AfterWatermark.pastEndOfWindow()
.withEarlyFirings(AfterProcessingTime
.pastFirstElementInPane().plusDelayOf(Duration.standardMinutes(1))))
.withAllowedLateness(Duration.ZERO));
</code></pre>
<p>After a <a href="../../../../../../org/apache/beam/sdk/transforms/GroupByKey.html" title="class in org.apache.beam.sdk.transforms"><code>GroupByKey</code></a> the trigger is set to a trigger that
will preserve the intent of the upstream trigger. See <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Trigger.html#getContinuationTrigger--"><code>Trigger.getContinuationTrigger()</code></a> for
more information.
<p>See <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Trigger.html" title="class in org.apache.beam.sdk.transforms.windowing"><code>Trigger</code></a> for details on the available triggers.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../serialized-form.html#org.apache.beam.sdk.transforms.windowing.Window">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>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.Assign.html" title="class in org.apache.beam.sdk.transforms.windowing">Window.Assign</a>&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.Assign.html" title="type parameter in Window.Assign">T</a>&gt;</span></code>
<div class="block">A Primitive <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms"><code>PTransform</code></a> that assigns windows to elements based on a <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/WindowFn.html" title="class in org.apache.beam.sdk.transforms.windowing"><code>WindowFn</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.ClosingBehavior.html" title="enum in org.apache.beam.sdk.transforms.windowing">Window.ClosingBehavior</a></span></code>
<div class="block">Specifies the conditions under which a final pane will be created when a window is permanently
closed.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.OnTimeBehavior.html" title="enum in org.apache.beam.sdk.transforms.windowing">Window.OnTimeBehavior</a></span></code>
<div class="block">Specifies the conditions under which an on-time pane will be created when a window is closed.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.beam.sdk.transforms.PTransform">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.beam.sdk.transforms.<a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms">PTransform</a></h3>
<code><a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html#name">name</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html#Window--">Window</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="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><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing">Window</a>&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="type parameter in Window">T</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html#accumulatingFiredPanes--">accumulatingFiredPanes</a></span>()</code>
<div class="block">Returns a new <code>Window</code> <code>PTransform</code> that uses the registered WindowFn and
Triggering behavior, and that accumulates elements in a pane after they are triggered.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing">Window</a>&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html#configure--">configure</a></span>()</code>
<div class="block">Returns a new builder for a <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing"><code>Window</code></a> transform for setting windowing parameters other
than the windowing function.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing">Window</a>&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="type parameter in Window">T</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html#discardingFiredPanes--">discardingFiredPanes</a></span>()</code>
<div class="block">Returns a new <code>Window</code> <code>PTransform</code> that uses the registered WindowFn and
Triggering behavior, and that discards elements in a pane after they are triggered.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values">PCollection</a>&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="type parameter in Window">T</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html#expand-org.apache.beam.sdk.values.PCollection-">expand</a></span>(<a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values">PCollection</a>&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="type parameter in Window">T</a>&gt;&nbsp;input)</code>
<div class="block">Override this method to specify how this <code>PTransform</code> should be expanded on the given
<code>InputT</code>.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html#getKindString--">getKindString</a></span>()</code>
<div class="block">Returns the name to use by default for this <code>PTransform</code> (not including the names of any
enclosing <code>PTransform</code>s).</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/beam/sdk/values/WindowingStrategy.html" title="class in org.apache.beam.sdk.values">WindowingStrategy</a>&lt;?,?&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html#getOutputStrategyInternal-org.apache.beam.sdk.values.WindowingStrategy-">getOutputStrategyInternal</a></span>(<a href="../../../../../../org/apache/beam/sdk/values/WindowingStrategy.html" title="class in org.apache.beam.sdk.values">WindowingStrategy</a>&lt;?,?&gt;&nbsp;inputStrategy)</code>
<div class="block">Get the output strategy of this <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing"><code>Window PTransform</code></a>.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/WindowFn.html" title="class in org.apache.beam.sdk.transforms.windowing">WindowFn</a>&lt;? super <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="type parameter in Window">T</a>,?&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html#getWindowFn--">getWindowFn</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing">Window</a>&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html#into-org.apache.beam.sdk.transforms.windowing.WindowFn-">into</a></span>(<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/WindowFn.html" title="class in org.apache.beam.sdk.transforms.windowing">WindowFn</a>&lt;? super T,?&gt;&nbsp;fn)</code>
<div class="block">Creates a <code>Window</code> <code>PTransform</code> that uses the given <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/WindowFn.html" title="class in org.apache.beam.sdk.transforms.windowing"><code>WindowFn</code></a> to window the
data.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html#populateDisplayData-org.apache.beam.sdk.transforms.display.DisplayData.Builder-">populateDisplayData</a></span>(<a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Builder.html" title="interface in org.apache.beam.sdk.transforms.display">DisplayData.Builder</a>&nbsp;builder)</code>
<div class="block">Register display data for the given transform or component.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;org.apache.beam.sdk.transforms.windowing.Window.Remerge&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html#remerge--">remerge</a></span>()</code>
<div class="block">Creates a <code>Window</code> <code>PTransform</code> that does not change assigned windows, but will
cause windows to be merged again as part of the next <a href="../../../../../../org/apache/beam/sdk/transforms/GroupByKey.html" title="class in org.apache.beam.sdk.transforms"><code>GroupByKey</code></a>.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing">Window</a>&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="type parameter in Window">T</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html#triggering-org.apache.beam.sdk.transforms.windowing.Trigger-">triggering</a></span>(<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Trigger.html" title="class in org.apache.beam.sdk.transforms.windowing">Trigger</a>&nbsp;trigger)</code>
<div class="block">Sets a non-default trigger for this <code>Window</code> <code>PTransform</code>.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing">Window</a>&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="type parameter in Window">T</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html#withAllowedLateness-org.joda.time.Duration-">withAllowedLateness</a></span>(<a href="https://static.javadoc.io/joda-time/joda-time/2.10.3/org/joda/time/Duration.html?is-external=true" title="class or interface in org.joda.time">Duration</a>&nbsp;allowedLateness)</code>
<div class="block">Override the amount of lateness allowed for data elements in the output <a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values"><code>PCollection</code></a> and
downstream <a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values"><code>PCollections</code></a> until explicitly set again.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing">Window</a>&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="type parameter in Window">T</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html#withAllowedLateness-org.joda.time.Duration-org.apache.beam.sdk.transforms.windowing.Window.ClosingBehavior-">withAllowedLateness</a></span>(<a href="https://static.javadoc.io/joda-time/joda-time/2.10.3/org/joda/time/Duration.html?is-external=true" title="class or interface in org.joda.time">Duration</a>&nbsp;allowedLateness,
<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.ClosingBehavior.html" title="enum in org.apache.beam.sdk.transforms.windowing">Window.ClosingBehavior</a>&nbsp;behavior)</code>
<div class="block">Override the amount of lateness allowed for data elements in the pipeline.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing">Window</a>&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="type parameter in Window">T</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html#withOnTimeBehavior-org.apache.beam.sdk.transforms.windowing.Window.OnTimeBehavior-">withOnTimeBehavior</a></span>(<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.OnTimeBehavior.html" title="enum in org.apache.beam.sdk.transforms.windowing">Window.OnTimeBehavior</a>&nbsp;behavior)</code>
<div class="block"><b><i>(Experimental)</i></b> Override the default <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.OnTimeBehavior.html" title="enum in org.apache.beam.sdk.transforms.windowing"><code>Window.OnTimeBehavior</code></a>, to control whether to
output an empty on-time pane.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing">Window</a>&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="type parameter in Window">T</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html#withTimestampCombiner-org.apache.beam.sdk.transforms.windowing.TimestampCombiner-">withTimestampCombiner</a></span>(<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/TimestampCombiner.html" title="enum in org.apache.beam.sdk.transforms.windowing">TimestampCombiner</a>&nbsp;timestampCombiner)</code>
<div class="block"><b><i>(Experimental)</i></b> Override the default <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/TimestampCombiner.html" title="enum in org.apache.beam.sdk.transforms.windowing"><code>TimestampCombiner</code></a>, to control the
output timestamp of values output from a <a href="../../../../../../org/apache/beam/sdk/transforms/GroupByKey.html" title="class in org.apache.beam.sdk.transforms"><code>GroupByKey</code></a> operation.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.beam.sdk.transforms.PTransform">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.beam.sdk.transforms.<a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms">PTransform</a></h3>
<code><a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html#compose-org.apache.beam.sdk.transforms.SerializableFunction-">compose</a>, <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html#compose-java.lang.String-org.apache.beam.sdk.transforms.SerializableFunction-">compose</a>, <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html#getAdditionalInputs--">getAdditionalInputs</a>, <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html#getDefaultOutputCoder--">getDefaultOutputCoder</a>, <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html#getDefaultOutputCoder-InputT-">getDefaultOutputCoder</a>, <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html#getDefaultOutputCoder-InputT-org.apache.beam.sdk.values.PCollection-">getDefaultOutputCoder</a>, <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html#getName--">getName</a>, <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html#toString--">toString</a>, <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html#validate-org.apache.beam.sdk.options.PipelineOptions-">validate</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.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, 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="Window--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Window</h4>
<pre>public&nbsp;Window()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="into-org.apache.beam.sdk.transforms.windowing.WindowFn-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>into</h4>
<pre>public static&nbsp;&lt;T&gt;&nbsp;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing">Window</a>&lt;T&gt;&nbsp;into(<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/WindowFn.html" title="class in org.apache.beam.sdk.transforms.windowing">WindowFn</a>&lt;? super T,?&gt;&nbsp;fn)</pre>
<div class="block">Creates a <code>Window</code> <code>PTransform</code> that uses the given <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/WindowFn.html" title="class in org.apache.beam.sdk.transforms.windowing"><code>WindowFn</code></a> to window the
data.
<p>The resulting <code>PTransform</code>'s types have been bound, with both the input and output
being a <code>PCollection&lt;T&gt;</code>, inferred from the types of the argument <code>WindowFn</code>. It is
ready to be applied, or further properties can be set on it first.</div>
</li>
</ul>
<a name="configure--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>configure</h4>
<pre>public static&nbsp;&lt;T&gt;&nbsp;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing">Window</a>&lt;T&gt;&nbsp;configure()</pre>
<div class="block">Returns a new builder for a <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing"><code>Window</code></a> transform for setting windowing parameters other
than the windowing function.</div>
</li>
</ul>
<a name="getWindowFn--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWindowFn</h4>
<pre><a href="https://static.javadoc.io/com.google.code.findbugs/jsr305/3.0.2/javax/annotation/Nullable.html?is-external=true" title="class or interface in javax.annotation">@Nullable</a>
public abstract&nbsp;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/WindowFn.html" title="class in org.apache.beam.sdk.transforms.windowing">WindowFn</a>&lt;? super <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="type parameter in Window">T</a>,?&gt;&nbsp;getWindowFn()</pre>
</li>
</ul>
<a name="triggering-org.apache.beam.sdk.transforms.windowing.Trigger-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>triggering</h4>
<pre><a href="../../../../../../org/apache/beam/sdk/annotations/Experimental.html" title="annotation in org.apache.beam.sdk.annotations">@Experimental</a>(<a href="../../../../../../org/apache/beam/sdk/annotations/Experimental.html#value--">value</a>=<a href="../../../../../../org/apache/beam/sdk/annotations/Experimental.Kind.html#TRIGGER">TRIGGER</a>)
public&nbsp;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing">Window</a>&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="type parameter in Window">T</a>&gt;&nbsp;triggering(<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Trigger.html" title="class in org.apache.beam.sdk.transforms.windowing">Trigger</a>&nbsp;trigger)</pre>
<div class="block">Sets a non-default trigger for this <code>Window</code> <code>PTransform</code>. Elements that are
assigned to a specific window will be output when the trigger fires.
<p><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Trigger.html" title="class in org.apache.beam.sdk.transforms.windowing"><code>Trigger</code></a> has more details on the available
triggers.
<p>Must also specify allowed lateness using <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html#withAllowedLateness-org.joda.time.Duration-"><code>withAllowedLateness(org.joda.time.Duration)</code></a> and accumulation mode
using either <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html#discardingFiredPanes--"><code>discardingFiredPanes()</code></a> or <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html#accumulatingFiredPanes--"><code>accumulatingFiredPanes()</code></a>.</div>
</li>
</ul>
<a name="discardingFiredPanes--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>discardingFiredPanes</h4>
<pre><a href="../../../../../../org/apache/beam/sdk/annotations/Experimental.html" title="annotation in org.apache.beam.sdk.annotations">@Experimental</a>(<a href="../../../../../../org/apache/beam/sdk/annotations/Experimental.html#value--">value</a>=<a href="../../../../../../org/apache/beam/sdk/annotations/Experimental.Kind.html#TRIGGER">TRIGGER</a>)
public&nbsp;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing">Window</a>&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="type parameter in Window">T</a>&gt;&nbsp;discardingFiredPanes()</pre>
<div class="block">Returns a new <code>Window</code> <code>PTransform</code> that uses the registered WindowFn and
Triggering behavior, and that discards elements in a pane after they are triggered.
<p>Does not modify this transform. The resulting <code>PTransform</code> is sufficiently specified
to be applied, but more properties can still be specified.</div>
</li>
</ul>
<a name="accumulatingFiredPanes--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>accumulatingFiredPanes</h4>
<pre><a href="../../../../../../org/apache/beam/sdk/annotations/Experimental.html" title="annotation in org.apache.beam.sdk.annotations">@Experimental</a>(<a href="../../../../../../org/apache/beam/sdk/annotations/Experimental.html#value--">value</a>=<a href="../../../../../../org/apache/beam/sdk/annotations/Experimental.Kind.html#TRIGGER">TRIGGER</a>)
public&nbsp;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing">Window</a>&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="type parameter in Window">T</a>&gt;&nbsp;accumulatingFiredPanes()</pre>
<div class="block">Returns a new <code>Window</code> <code>PTransform</code> that uses the registered WindowFn and
Triggering behavior, and that accumulates elements in a pane after they are triggered.
<p>Does not modify this transform. The resulting <code>PTransform</code> is sufficiently specified
to be applied, but more properties can still be specified.</div>
</li>
</ul>
<a name="withAllowedLateness-org.joda.time.Duration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withAllowedLateness</h4>
<pre><a href="../../../../../../org/apache/beam/sdk/annotations/Experimental.html" title="annotation in org.apache.beam.sdk.annotations">@Experimental</a>(<a href="../../../../../../org/apache/beam/sdk/annotations/Experimental.html#value--">value</a>=<a href="../../../../../../org/apache/beam/sdk/annotations/Experimental.Kind.html#TRIGGER">TRIGGER</a>)
public&nbsp;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing">Window</a>&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="type parameter in Window">T</a>&gt;&nbsp;withAllowedLateness(<a href="https://static.javadoc.io/joda-time/joda-time/2.10.3/org/joda/time/Duration.html?is-external=true" title="class or interface in org.joda.time">Duration</a>&nbsp;allowedLateness)</pre>
<div class="block">Override the amount of lateness allowed for data elements in the output <a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values"><code>PCollection</code></a> and
downstream <a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values"><code>PCollections</code></a> until explicitly set again. Like the other
properties on this <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing"><code>Window</code></a> operation, this will be applied at the next <a href="../../../../../../org/apache/beam/sdk/transforms/GroupByKey.html" title="class in org.apache.beam.sdk.transforms"><code>GroupByKey</code></a>. Any elements that are later than this as decided by the system-maintained
watermark will be dropped.
<p>This value also determines how long state will be kept around for old windows. Once no
elements will be added to a window (because this duration has passed) any state associated with
the window will be cleaned up.
<p>Depending on the trigger this may not produce a pane with <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/PaneInfo.html#isLast"><code>PaneInfo.isLast</code></a>. See
<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.ClosingBehavior.html#FIRE_IF_NON_EMPTY"><code>Window.ClosingBehavior.FIRE_IF_NON_EMPTY</code></a> for more details.</div>
</li>
</ul>
<a name="withTimestampCombiner-org.apache.beam.sdk.transforms.windowing.TimestampCombiner-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withTimestampCombiner</h4>
<pre><a href="../../../../../../org/apache/beam/sdk/annotations/Experimental.html" title="annotation in org.apache.beam.sdk.annotations">@Experimental</a>(<a href="../../../../../../org/apache/beam/sdk/annotations/Experimental.html#value--">value</a>=<a href="../../../../../../org/apache/beam/sdk/annotations/Experimental.Kind.html#OUTPUT_TIME">OUTPUT_TIME</a>)
public&nbsp;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing">Window</a>&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="type parameter in Window">T</a>&gt;&nbsp;withTimestampCombiner(<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/TimestampCombiner.html" title="enum in org.apache.beam.sdk.transforms.windowing">TimestampCombiner</a>&nbsp;timestampCombiner)</pre>
<div class="block"><b><i>(Experimental)</i></b> Override the default <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/TimestampCombiner.html" title="enum in org.apache.beam.sdk.transforms.windowing"><code>TimestampCombiner</code></a>, to control the
output timestamp of values output from a <a href="../../../../../../org/apache/beam/sdk/transforms/GroupByKey.html" title="class in org.apache.beam.sdk.transforms"><code>GroupByKey</code></a> operation.</div>
</li>
</ul>
<a name="withAllowedLateness-org.joda.time.Duration-org.apache.beam.sdk.transforms.windowing.Window.ClosingBehavior-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withAllowedLateness</h4>
<pre><a href="../../../../../../org/apache/beam/sdk/annotations/Experimental.html" title="annotation in org.apache.beam.sdk.annotations">@Experimental</a>(<a href="../../../../../../org/apache/beam/sdk/annotations/Experimental.html#value--">value</a>=<a href="../../../../../../org/apache/beam/sdk/annotations/Experimental.Kind.html#TRIGGER">TRIGGER</a>)
public&nbsp;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing">Window</a>&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="type parameter in Window">T</a>&gt;&nbsp;withAllowedLateness(<a href="https://static.javadoc.io/joda-time/joda-time/2.10.3/org/joda/time/Duration.html?is-external=true" title="class or interface in org.joda.time">Duration</a>&nbsp;allowedLateness,
<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.ClosingBehavior.html" title="enum in org.apache.beam.sdk.transforms.windowing">Window.ClosingBehavior</a>&nbsp;behavior)</pre>
<div class="block">Override the amount of lateness allowed for data elements in the pipeline. Like the other
properties on this <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing"><code>Window</code></a> operation, this will be applied at the next <a href="../../../../../../org/apache/beam/sdk/transforms/GroupByKey.html" title="class in org.apache.beam.sdk.transforms"><code>GroupByKey</code></a>. Any elements that are later than this as decided by the system-maintained
watermark will be dropped.
<p>This value also determines how long state will be kept around for old windows. Once no
elements will be added to a window (because this duration has passed) any state associated with
the window will be cleaned up.</div>
</li>
</ul>
<a name="withOnTimeBehavior-org.apache.beam.sdk.transforms.windowing.Window.OnTimeBehavior-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withOnTimeBehavior</h4>
<pre><a href="../../../../../../org/apache/beam/sdk/annotations/Experimental.html" title="annotation in org.apache.beam.sdk.annotations">@Experimental</a>(<a href="../../../../../../org/apache/beam/sdk/annotations/Experimental.html#value--">value</a>=<a href="../../../../../../org/apache/beam/sdk/annotations/Experimental.Kind.html#TRIGGER">TRIGGER</a>)
public&nbsp;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing">Window</a>&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="type parameter in Window">T</a>&gt;&nbsp;withOnTimeBehavior(<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.OnTimeBehavior.html" title="enum in org.apache.beam.sdk.transforms.windowing">Window.OnTimeBehavior</a>&nbsp;behavior)</pre>
<div class="block"><b><i>(Experimental)</i></b> Override the default <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.OnTimeBehavior.html" title="enum in org.apache.beam.sdk.transforms.windowing"><code>Window.OnTimeBehavior</code></a>, to control whether to
output an empty on-time pane.</div>
</li>
</ul>
<a name="getOutputStrategyInternal-org.apache.beam.sdk.values.WindowingStrategy-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOutputStrategyInternal</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/beam/sdk/values/WindowingStrategy.html" title="class in org.apache.beam.sdk.values">WindowingStrategy</a>&lt;?,?&gt;&nbsp;getOutputStrategyInternal(<a href="../../../../../../org/apache/beam/sdk/values/WindowingStrategy.html" title="class in org.apache.beam.sdk.values">WindowingStrategy</a>&lt;?,?&gt;&nbsp;inputStrategy)</pre>
<div class="block">Get the output strategy of this <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing"><code>Window PTransform</code></a>. For internal use only.</div>
</li>
</ul>
<a name="expand-org.apache.beam.sdk.values.PCollection-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>expand</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values">PCollection</a>&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="type parameter in Window">T</a>&gt;&nbsp;expand(<a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values">PCollection</a>&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="type parameter in Window">T</a>&gt;&nbsp;input)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html#expand-InputT-">PTransform</a></code></span></div>
<div class="block">Override this method to specify how this <code>PTransform</code> should be expanded on the given
<code>InputT</code>.
<p>NOTE: This method should not be called directly. Instead apply the <code>PTransform</code> should
be applied to the <code>InputT</code> using the <code>apply</code> method.
<p>Composite transforms, which are defined in terms of other transforms, should return the
output of one of the composed transforms. Non-composite transforms, which do not apply any
transforms internally, should return a new unbound output and register evaluators (via
backend-specific registration methods).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html#expand-InputT-">expand</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms">PTransform</a>&lt;<a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values">PCollection</a>&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="type parameter in Window">T</a>&gt;,<a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values">PCollection</a>&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="type parameter in Window">T</a>&gt;&gt;</code></dd>
</dl>
</li>
</ul>
<a name="populateDisplayData-org.apache.beam.sdk.transforms.display.DisplayData.Builder-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>populateDisplayData</h4>
<pre>public&nbsp;void&nbsp;populateDisplayData(<a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Builder.html" title="interface in org.apache.beam.sdk.transforms.display">DisplayData.Builder</a>&nbsp;builder)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html#populateDisplayData-org.apache.beam.sdk.transforms.display.DisplayData.Builder-">PTransform</a></code></span></div>
<div class="block">Register display data for the given transform or component.
<p><code>populateDisplayData(DisplayData.Builder)</code> is invoked by Pipeline runners to collect
display data via <a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html#from-org.apache.beam.sdk.transforms.display.HasDisplayData-"><code>DisplayData.from(HasDisplayData)</code></a>. Implementations may call <code>super.populateDisplayData(builder)</code> in order to register display data in the current namespace,
but should otherwise use <code>subcomponent.populateDisplayData(builder)</code> to use the namespace
of the subcomponent.
<p>By default, does not register any display data. Implementors may override this method to
provide their own display data.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/beam/sdk/transforms/display/HasDisplayData.html#populateDisplayData-org.apache.beam.sdk.transforms.display.DisplayData.Builder-">populateDisplayData</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/beam/sdk/transforms/display/HasDisplayData.html" title="interface in org.apache.beam.sdk.transforms.display">HasDisplayData</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html#populateDisplayData-org.apache.beam.sdk.transforms.display.DisplayData.Builder-">populateDisplayData</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms">PTransform</a>&lt;<a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values">PCollection</a>&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="type parameter in Window">T</a>&gt;,<a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values">PCollection</a>&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="type parameter in Window">T</a>&gt;&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>builder</code> - The builder to populate with display data.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../org/apache/beam/sdk/transforms/display/HasDisplayData.html" title="interface in org.apache.beam.sdk.transforms.display"><code>HasDisplayData</code></a></dd>
</dl>
</li>
</ul>
<a name="getKindString--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getKindString</h4>
<pre>protected&nbsp;java.lang.String&nbsp;getKindString()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html#getKindString--">PTransform</a></code></span></div>
<div class="block">Returns the name to use by default for this <code>PTransform</code> (not including the names of any
enclosing <code>PTransform</code>s).
<p>By default, returns the base name of this <code>PTransform</code>'s class.
<p>The caller is responsible for ensuring that names of applied <code>PTransform</code>s are unique,
e.g., by adding a uniquifying suffix when needed.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html#getKindString--">getKindString</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms">PTransform</a>&lt;<a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values">PCollection</a>&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="type parameter in Window">T</a>&gt;,<a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values">PCollection</a>&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="type parameter in Window">T</a>&gt;&gt;</code></dd>
</dl>
</li>
</ul>
<a name="remerge--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>remerge</h4>
<pre>public static&nbsp;&lt;T&gt;&nbsp;org.apache.beam.sdk.transforms.windowing.Window.Remerge&lt;T&gt;&nbsp;remerge()</pre>
<div class="block">Creates a <code>Window</code> <code>PTransform</code> that does not change assigned windows, but will
cause windows to be merged again as part of the next <a href="../../../../../../org/apache/beam/sdk/transforms/GroupByKey.html" title="class in org.apache.beam.sdk.transforms"><code>GroupByKey</code></a>.</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Trigger.OnceTrigger.html" title="class in org.apache.beam.sdk.transforms.windowing"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/beam/sdk/transforms/windowing/Window.Assign.html" title="class in org.apache.beam.sdk.transforms.windowing"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/beam/sdk/transforms/windowing/Window.html" target="_top">Frames</a></li>
<li><a href="Window.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><a href="#fields.inherited.from.class.org.apache.beam.sdk.transforms.PTransform">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>