blob: 085b2a66e55cf0ba29007373877375ecfe157c9c [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>TimeWindows (kafka 2.8.1 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="TimeWindows (kafka 2.8.1 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":42,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":42,"i7":41,"i8":9,"i9":10,"i10":10,"i11":42,"i12":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.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" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.kafka.streams.kstream</a></div>
<h2 title="Class TimeWindows" class="title">Class TimeWindows</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="Windows.html" title="class in org.apache.kafka.streams.kstream">org.apache.kafka.streams.kstream.Windows</a>&lt;org.apache.kafka.streams.kstream.internals.TimeWindow&gt;</li>
<li>
<ul class="inheritance">
<li>org.apache.kafka.streams.kstream.TimeWindows</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<pre>public final class <span class="typeNameLabel">TimeWindows</span>
extends <a href="Windows.html" title="class in org.apache.kafka.streams.kstream">Windows</a>&lt;org.apache.kafka.streams.kstream.internals.TimeWindow&gt;</pre>
<div class="block">The fixed-size time-based window specifications used for aggregations.
<p>
The semantics of time-based aggregation windows are: Every T1 (advance) milliseconds, compute the aggregate total for
T2 (size) milliseconds.
<ul>
<li> If <code>advance &lt; size</code> a hopping windows is defined:<br/>
it discretize a stream into overlapping windows, which implies that a record maybe contained in one and or
more "adjacent" windows.</li>
<li> If <code>advance == size</code> a tumbling window is defined:<br/>
it discretize a stream into non-overlapping windows, which implies that a record is only ever contained in
one and only one tumbling window.</li>
</ul>
Thus, the specified <code>TimeWindow</code>s are aligned to the epoch.
Aligned to the epoch means, that the first window starts at timestamp zero.
For example, hopping windows with size of 5000ms and advance of 3000ms, have window boundaries
[0;5000),[3000;8000),... and not [1000;6000),[4000;9000),... or even something "random" like [1452;6452),[4452;9452),...
<p>
For time semantics, see <a href="../processor/TimestampExtractor.html" title="interface in org.apache.kafka.streams.processor"><code>TimestampExtractor</code></a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="SessionWindows.html" title="class in org.apache.kafka.streams.kstream"><code>SessionWindows</code></a>,
<a href="UnlimitedWindows.html" title="class in org.apache.kafka.streams.kstream"><code>UnlimitedWindows</code></a>,
<a href="JoinWindows.html" title="class in org.apache.kafka.streams.kstream"><code>JoinWindows</code></a>,
<a href="KGroupedStream.html#windowedBy(org.apache.kafka.streams.kstream.Windows)"><code>KGroupedStream.windowedBy(Windows)</code></a>,
<a href="../processor/TimestampExtractor.html" title="interface in org.apache.kafka.streams.processor"><code>TimestampExtractor</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#advanceMs">advanceMs</a></span></code></th>
<td class="colLast">
<div class="block">The size of the window's advance interval in milliseconds, i.e., by how much a window moves forward relative to
the previous one.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sizeMs">sizeMs</a></span></code></th>
<td class="colLast">
<div class="block">The size of the windows in milliseconds.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.apache.kafka.streams.kstream.Windows">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.kafka.streams.kstream.<a href="Windows.html" title="class in org.apache.kafka.streams.kstream">Windows</a></h3>
<code><a href="Windows.html#segments">segments</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<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="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="TimeWindows.html" title="class in org.apache.kafka.streams.kstream">TimeWindows</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#advanceBy(long)">advanceBy</a></span>&#8203;(long&nbsp;advanceMs)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#advanceBy(java.time.Duration)"><code>advanceBy(Duration)</code></a> instead</div>
</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="TimeWindows.html" title="class in org.apache.kafka.streams.kstream">TimeWindows</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#advanceBy(java.time.Duration)">advanceBy</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/Duration.html?is-external=true" title="class or interface in java.time" class="externalLink">Duration</a>&nbsp;advance)</code></th>
<td class="colLast">
<div class="block">Return a window definition with the original size, but advance ("hop") the window by the given interval, which
specifies by how much a window moves forward relative to the previous one.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="TimeWindows.html" title="class in org.apache.kafka.streams.kstream">TimeWindows</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#grace(java.time.Duration)">grace</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/Duration.html?is-external=true" title="class or interface in java.time" class="externalLink">Duration</a>&nbsp;afterWindowEnd)</code></th>
<td class="colLast">
<div class="block">Reject out-of-order events that arrive more than <code>millisAfterWindowEnd</code>
after the end of its window.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#gracePeriodMs()">gracePeriodMs</a></span>()</code></th>
<td class="colLast">
<div class="block">Return the window grace period (the time to admit
out-of-order events after the end of the window.)
Delay is defined as (stream_time - record_timestamp).</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#maintainMs()">maintainMs</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">since 2.1.</div>
</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static <a href="TimeWindows.html" title="class in org.apache.kafka.streams.kstream">TimeWindows</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#of(long)">of</a></span>&#8203;(long&nbsp;sizeMs)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#of(java.time.Duration)"><code>of(Duration)</code></a> instead</div>
</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static <a href="TimeWindows.html" title="class in org.apache.kafka.streams.kstream">TimeWindows</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#of(java.time.Duration)">of</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/Duration.html?is-external=true" title="class or interface in java.time" class="externalLink">Duration</a>&nbsp;size)</code></th>
<td class="colLast">
<div class="block">Return a window definition with the given window size, and with the advance interval being equal to the window
size.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#size()">size</a></span>()</code></th>
<td class="colLast">
<div class="block">Return the size of the specified windows in milliseconds.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="TimeWindows.html" title="class in org.apache.kafka.streams.kstream">TimeWindows</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#until(long)">until</a></span>&#8203;(long&nbsp;durationMs)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">since 2.1.</div>
</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>,&#8203;org.apache.kafka.streams.kstream.internals.TimeWindow&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#windowsFor(long)">windowsFor</a></span>&#8203;(long&nbsp;timestamp)</code></th>
<td class="colLast">
<div class="block">Create all windows that contain the provided timestamp, indexed by non-negative window start timestamps.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.kafka.streams.kstream.Windows">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.kafka.streams.kstream.<a href="Windows.html" title="class in org.apache.kafka.streams.kstream">Windows</a></h3>
<code><a href="Windows.html#segments(int)">segments</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="sizeMs">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sizeMs</h4>
<pre>public final&nbsp;long sizeMs</pre>
<div class="block">The size of the windows in milliseconds.</div>
</li>
</ul>
<a id="advanceMs">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>advanceMs</h4>
<pre>public final&nbsp;long advanceMs</pre>
<div class="block">The size of the window's advance interval in milliseconds, i.e., by how much a window moves forward relative to
the previous one.</div>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="of(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>of</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
public static&nbsp;<a href="TimeWindows.html" title="class in org.apache.kafka.streams.kstream">TimeWindows</a>&nbsp;of&#8203;(long&nbsp;sizeMs)
throws <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#of(java.time.Duration)"><code>of(Duration)</code></a> instead</div>
</div>
<div class="block">Return a window definition with the given window size, and with the advance interval being equal to the window
size.
The time interval represented by the N-th window is: <code>[N * size, N * size + size)</code>.
<p>
This provides the semantics of tumbling windows, which are fixed-sized, gap-less, non-overlapping windows.
Tumbling windows are a special case of hopping windows with <code>advance == size</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sizeMs</code> - The size of the window in milliseconds</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new window definition with default maintain duration of 1 day</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the specified window size is zero or negative</dd>
</dl>
</li>
</ul>
<a id="of(java.time.Duration)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>of</h4>
<pre class="methodSignature">public static&nbsp;<a href="TimeWindows.html" title="class in org.apache.kafka.streams.kstream">TimeWindows</a>&nbsp;of&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/Duration.html?is-external=true" title="class or interface in java.time" class="externalLink">Duration</a>&nbsp;size)
throws <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></pre>
<div class="block">Return a window definition with the given window size, and with the advance interval being equal to the window
size.
The time interval represented by the N-th window is: <code>[N * size, N * size + size)</code>.
<p>
This provides the semantics of tumbling windows, which are fixed-sized, gap-less, non-overlapping windows.
Tumbling windows are a special case of hopping windows with <code>advance == size</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>size</code> - The size of the window</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new window definition with default maintain duration of 1 day</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the specified window size is zero or negative or can't be represented as <code>long milliseconds</code></dd>
</dl>
</li>
</ul>
<a id="advanceBy(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>advanceBy</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
public&nbsp;<a href="TimeWindows.html" title="class in org.apache.kafka.streams.kstream">TimeWindows</a>&nbsp;advanceBy&#8203;(long&nbsp;advanceMs)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#advanceBy(java.time.Duration)"><code>advanceBy(Duration)</code></a> instead</div>
</div>
<div class="block">Return a window definition with the original size, but advance ("hop") the window by the given interval, which
specifies by how much a window moves forward relative to the previous one.
The time interval represented by the N-th window is: <code>[N * advance, N * advance + size)</code>.
<p>
This provides the semantics of hopping windows, which are fixed-sized, overlapping windows.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>advanceMs</code> - The advance interval ("hop") in milliseconds of the window, with the requirement that <code>0 &lt; advanceMs &lt;= sizeMs</code>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new window definition with default maintain duration of 1 day</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the advance interval is negative, zero, or larger than the window size</dd>
</dl>
</li>
</ul>
<a id="advanceBy(java.time.Duration)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>advanceBy</h4>
<pre class="methodSignature">public&nbsp;<a href="TimeWindows.html" title="class in org.apache.kafka.streams.kstream">TimeWindows</a>&nbsp;advanceBy&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/Duration.html?is-external=true" title="class or interface in java.time" class="externalLink">Duration</a>&nbsp;advance)</pre>
<div class="block">Return a window definition with the original size, but advance ("hop") the window by the given interval, which
specifies by how much a window moves forward relative to the previous one.
The time interval represented by the N-th window is: <code>[N * advance, N * advance + size)</code>.
<p>
This provides the semantics of hopping windows, which are fixed-sized, overlapping windows.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>advance</code> - The advance interval ("hop") of the window, with the requirement that <code>0 &lt; advance.toMillis() &lt;= sizeMs</code>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new window definition with default maintain duration of 1 day</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the advance interval is negative, zero, or larger than the window size</dd>
</dl>
</li>
</ul>
<a id="windowsFor(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>windowsFor</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>,&#8203;org.apache.kafka.streams.kstream.internals.TimeWindow&gt;&nbsp;windowsFor&#8203;(long&nbsp;timestamp)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="Windows.html#windowsFor(long)">Windows</a></code></span></div>
<div class="block">Create all windows that contain the provided timestamp, indexed by non-negative window start timestamps.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Windows.html#windowsFor(long)">windowsFor</a></code>&nbsp;in class&nbsp;<code><a href="Windows.html" title="class in org.apache.kafka.streams.kstream">Windows</a>&lt;org.apache.kafka.streams.kstream.internals.TimeWindow&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timestamp</code> - the timestamp window should get created for</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a map of <code>windowStartTimestamp -&gt; Window</code> entries</dd>
</dl>
</li>
</ul>
<a id="size()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>size</h4>
<pre class="methodSignature">public&nbsp;long&nbsp;size()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="Windows.html#size()">Windows</a></code></span></div>
<div class="block">Return the size of the specified windows in milliseconds.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Windows.html#size()">size</a></code>&nbsp;in class&nbsp;<code><a href="Windows.html" title="class in org.apache.kafka.streams.kstream">Windows</a>&lt;org.apache.kafka.streams.kstream.internals.TimeWindow&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the size of the specified windows</dd>
</dl>
</li>
</ul>
<a id="grace(java.time.Duration)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>grace</h4>
<pre class="methodSignature">public&nbsp;<a href="TimeWindows.html" title="class in org.apache.kafka.streams.kstream">TimeWindows</a>&nbsp;grace&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/Duration.html?is-external=true" title="class or interface in java.time" class="externalLink">Duration</a>&nbsp;afterWindowEnd)
throws <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></pre>
<div class="block">Reject out-of-order events that arrive more than <code>millisAfterWindowEnd</code>
after the end of its window.
<p>
Delay is defined as (stream_time - record_timestamp).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>afterWindowEnd</code> - The grace period to admit out-of-order events to a window.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this updated builder</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if <code>afterWindowEnd</code> is negative or can't be represented as <code>long milliseconds</code></dd>
</dl>
</li>
</ul>
<a id="gracePeriodMs()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>gracePeriodMs</h4>
<pre class="methodSignature">public&nbsp;long&nbsp;gracePeriodMs()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="Windows.html#gracePeriodMs()">Windows</a></code></span></div>
<div class="block">Return the window grace period (the time to admit
out-of-order events after the end of the window.)
Delay is defined as (stream_time - record_timestamp).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Windows.html#gracePeriodMs()">gracePeriodMs</a></code>&nbsp;in class&nbsp;<code><a href="Windows.html" title="class in org.apache.kafka.streams.kstream">Windows</a>&lt;org.apache.kafka.streams.kstream.internals.TimeWindow&gt;</code></dd>
</dl>
</li>
</ul>
<a id="until(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>until</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
public&nbsp;<a href="TimeWindows.html" title="class in org.apache.kafka.streams.kstream">TimeWindows</a>&nbsp;until&#8203;(long&nbsp;durationMs)
throws <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">since 2.1. Use <a href="Materialized.html#retention"><code>Materialized.retention</code></a> or directly configure the retention in a store supplier
and use <a href="Materialized.html#as(org.apache.kafka.streams.state.WindowBytesStoreSupplier)"><code>Materialized.as(WindowBytesStoreSupplier)</code></a>.</div>
</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="Windows.html#until(long)">Windows</a></code></span></div>
<div class="block">Set the window maintain duration (retention time) in milliseconds.
This retention time is a guaranteed <i>lower bound</i> for how long a window will be maintained.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="Windows.html#until(long)">until</a></code>&nbsp;in class&nbsp;<code><a href="Windows.html" title="class in org.apache.kafka.streams.kstream">Windows</a>&lt;org.apache.kafka.streams.kstream.internals.TimeWindow&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>durationMs</code> - the window retention time</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>itself</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if <code>duration</code> is smaller than the window size</dd>
</dl>
</li>
</ul>
<a id="maintainMs()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>maintainMs</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
public&nbsp;long&nbsp;maintainMs()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">since 2.1. Use <a href="Materialized.html#retention"><code>Materialized.retention</code></a> instead.</div>
</div>
<div class="block">Return the window maintain duration (retention time) in milliseconds.
<p>
For <code>TimeWindows</code> the maintain duration is at least as small as the window size.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="Windows.html#maintainMs()">maintainMs</a></code>&nbsp;in class&nbsp;<code><a href="Windows.html" title="class in org.apache.kafka.streams.kstream">Windows</a>&lt;org.apache.kafka.streams.kstream.internals.TimeWindow&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the window maintain duration</dd>
</dl>
</li>
</ul>
<a id="equals(java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
</dl>
</li>
</ul>
<a id="hashCode()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hashCode</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
</dl>
</li>
</ul>
<a id="toString()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.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" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>