blob: b7b4cf64fd3bc196773b3e1a968a96de7108042c [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>
<title>CronTrigger</title>
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
<link rel="shortcut icon" href="/img/jakarta-favicon.ico">
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="CronTrigger";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="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="../../../jakarta/enterprise/concurrent/ContextServiceDefinition.List.html" title="annotation in jakarta.enterprise.concurrent"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../jakarta/enterprise/concurrent/LastExecution.html" title="interface in jakarta.enterprise.concurrent"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?jakarta/enterprise/concurrent/CronTrigger.html" target="_top">Frames</a></li>
<li><a href="CronTrigger.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">jakarta.enterprise.concurrent</div>
<h2 title="Class CronTrigger" class="title">Class CronTrigger</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>jakarta.enterprise.concurrent.CronTrigger</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../jakarta/enterprise/concurrent/Trigger.html" title="interface in jakarta.enterprise.concurrent">Trigger</a>, <a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html" title="interface in jakarta.enterprise.concurrent">ZonedTrigger</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">CronTrigger</span>
extends java.lang.Object
implements <a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html" title="interface in jakarta.enterprise.concurrent">ZonedTrigger</a></pre>
<div class="block"><p>Cron-based <a href="../../../jakarta/enterprise/concurrent/Trigger.html" title="interface in jakarta.enterprise.concurrent"><code>Trigger</code></a> implementation, which supports 5 or 6 fields
delimited by a single space character, plus a <code>ZoneId</code>.
Basic cron syntax is supported. For more advanced scenarios, you can
subclass this implementation or combine multiple <code>CronTrigger</code>
instances in a <code>Trigger</code> implementation of your own.
</p>
<table>
<caption><b>Cron Expression Fields</b></caption>
<tr valign="top"><td>seconds (optional)</td><td>0-59, *. When absent, 0 is assumed</td></tr>
<tr valign="top"><td>minutes</td><td>0-59, *</td></tr>
<tr valign="top"><td>hours</td><td>0-23, *</td></tr>
<tr valign="top"><td>dayOfMonth</td><td>0-31, *, L</td></tr>
<tr valign="top"><td>month</td><td>1-12, JAN-DEC, January-December, *</td></tr>
<tr valign="top"><td>dayOfWeek</td><td>SUN-SAT, Sunday-Saturday, 0-7, *.
0 and 7 both represent Sunday: 0 to designate the first day of the week,
and 7 for consistency with <code>DayOfWeek</code>.</td></tr>
</table>
<br>
<table>
<caption><b>Cron Expression Syntax</b></caption>
<tr valign="top"><td><code>,</code></td>
<td>delimits lists for all fields. For example, <code>MON,WED,FRI</code> or <code>MAY,SEP</code></td></tr>
<tr valign="top"><td><code>-</code></td>
<td>delimits ranges for all fields. For example, <code>MON-FRI</code> or <code>9-17</code></td></tr>
<tr valign="top"><td><code>/</code></td>
<td>specifies a repeating increment for all fields except dayOfWeek.
For example, <code>6/7</code> for the <code>hours</code> field equates to <code>6,13,20</code>.</td></tr>
<tr valign="top"><td><code>#</code></td>
<td>specifies an ordinal day of week. For example,
<code>FRI#1,SAT#L</code> is the first Friday and last Saturday of the month.
<br><code>#</code> cannot be used within ranges (<code>-</code>) and increments (<code>/</code>).</td></tr>
<tr valign="top"><td><code>*</code></td>
<td>indicates any value is permitted.</td></tr>
<tr valign="top"><td><code>L</code></td>
<td>indicates the last day of the month.
<code>2L</code> indicates the second-to-last day, and so forth.</td></tr>
</table>
<br>
<table>
<caption><b>Cron Expression Examples</b></caption>
<tr valign="top"><td><code>0 * * * *</code></td>
<td>every hour at the top of the hour</td></tr>
<tr valign="top"><td><code>0 9-17 * * MON-FRI</code></td>
<td>weekdays from 9am to 5pm, at the top of each hour</td></tr>
<tr valign="top"><td><code>0 13/3 * MAY-SEP SAT,SUN</code></td>
<td>weekends from May to September, every 3 hours, starting at 1pm</td></tr>
<tr valign="top"><td><code>30 10 * APR,AUG TUE#2,TUE#L</code></td>
<td>second and last Tuesdays of April and August at 10:30am</td></tr>
<tr valign="top"><td><code>15 22 4 10,20,L * *</code></td>
<td>4:22:15 AM on the 10th, 20th, and last day of every month</td></tr>
<tr valign="top"><td><code>0 8-11,13-16 2L JAN-MAR *</code></td>
<td>8AM-11AM and 1PM-4PM on the second-to-last day of January, February, and March</td></tr>
</table>
<p>A constructor is provided that accepts a cron expression such as the above and a timezone id. For example,
<pre>
trigger = new CronTrigger("0 7 * SEP-MAY MON-FRI", ZoneId.of("America/New_York"));
</pre>
<p>Another constructor allows cron fields to be specified in a fluent manner, in any order. For example,
<pre>
trigger = new CronTrigger(ZoneId.of("America/Los_Angeles"))
.months(Month.DECEMBER)
.daysOfMonth(24)
.hours(16, 18);
</pre>
<p>
The <a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#getNextRunTime-jakarta.enterprise.concurrent.LastExecution-java.time.ZonedDateTime-"><code>getNextRunTime</code></a> method of this trigger
determines the next run time based on the cron schedule.
The <a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html#skipRun-jakarta.enterprise.concurrent.LastExecution-java.time.ZonedDateTime-"><code>skipRun</code></a> method always returns false
unless overridden by a subclass.
<p>
Methods of this class that configure the cron expression fields are not thread safe. It is the
responsibility of the caller to ensure that initialization of the <code>CronTrigger</code>
happens before it is supplied to a <a href="../../../jakarta/enterprise/concurrent/ManagedScheduledExecutorService.html" title="interface in jakarta.enterprise.concurrent"><code>ManagedScheduledExecutorService</code></a> and that the
<code>CronTrigger</code> is not subsequently modified.
<p>
You can subclass <code>CronTrigger</code> to provide for more complex logic, such as in the following
example of combining two triggers to schedule twice-a-month payroll on the 15th and last day of month
or the prior Fridays when the former fall on a weekend:
<pre>
public class PayrollTrigger extends CronTrigger {
private final CronTrigger fridaysBeforeWeekendPayrollDay;
PayrollTrigger() {
// Every 15th and last day of the month that is a weekday,
super("0 10 15,L * MON-FRI", ZoneId.of("America/Chicago"));
// Every 13th, 14th, third-to-last, and second-to-last day of the month that is a Friday,
fridaysBeforeWeekendPayrollDay = new CronTrigger(
"0 10 13,14,3L,2L * FRI", getZoneId());
}
public ZonedDateTime getNextRunTime(LastExecution lastExec, ZonedDateTime scheduledAt) {
ZonedDateTime time1 = super.getNextRunTime(lastExec, scheduledAt);
ZonedDateTime time2 = fridaysBeforeWeekendPayrollDay.getNextRunTime(lastExec, scheduledAt);
return time1.isBefore(time2) ? time1 : time2;
}
}
</pre></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#CronTrigger-java.lang.String-java.time.ZoneId-">CronTrigger</a></span>(java.lang.String&nbsp;cron,
java.time.ZoneId&nbsp;zone)</code>
<div class="block">Constructor that accepts a cron expression.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#CronTrigger-java.time.ZoneId-">CronTrigger</a></span>(java.time.ZoneId&nbsp;zone)</code>
<div class="block">Constructor for the fluent configuration pattern.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#daysOfMonth-int...-">daysOfMonth</a></span>(int...&nbsp;d)</code>
<div class="block">Configure the day-of-month cron field, overwriting any previous value for day-of-month.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#daysOfMonth-java.lang.String-">daysOfMonth</a></span>(java.lang.String&nbsp;d)</code>
<div class="block">Configure the day-of-month cron field, overwriting any previous value for day-of-month.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#daysOfWeek-java.time.DayOfWeek...-">daysOfWeek</a></span>(java.time.DayOfWeek...&nbsp;d)</code>
<div class="block">Configure the day-of-week cron field, overwriting any previous value for day-of-week.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#daysOfWeek-java.lang.String-">daysOfWeek</a></span>(java.lang.String&nbsp;d)</code>
<div class="block">Configure the day-of-week cron field, overwriting any previous value for day-of-week.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>java.time.ZonedDateTime</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#getNextRunTime-jakarta.enterprise.concurrent.LastExecution-java.time.ZonedDateTime-">getNextRunTime</a></span>(<a href="../../../jakarta/enterprise/concurrent/LastExecution.html" title="interface in jakarta.enterprise.concurrent">LastExecution</a>&nbsp;lastExecutionInfo,
java.time.ZonedDateTime&nbsp;taskScheduledTime)</code>
<div class="block">Using the cron schedule, and based on the end of the most recent execution
(or absent that, the initial scheduling time), retrieve the next time
that the task should run after.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>java.time.ZoneId</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#getZoneId--">getZoneId</a></span>()</code>
<div class="block">Returns the timezone to use for
<code>ZonedDateTime</code> that is supplied to the
<a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#getNextRunTime-jakarta.enterprise.concurrent.LastExecution-java.time.ZonedDateTime-"><code>getNextRunTime</code></a> and
<a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html#skipRun-jakarta.enterprise.concurrent.LastExecution-java.time.ZonedDateTime-"><code>skipRun</code></a> methods.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#hours-int...-">hours</a></span>(int...&nbsp;h)</code>
<div class="block">Configure the hours cron field, overwriting any previous value for hours.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#hours-java.lang.String-">hours</a></span>(java.lang.String&nbsp;h)</code>
<div class="block">Configure the hours cron field, overwriting any previous value for hours.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#minutes-int...-">minutes</a></span>(int...&nbsp;m)</code>
<div class="block">Configure the minutes cron field, overwriting any previous value for minutes.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#minutes-java.lang.String-">minutes</a></span>(java.lang.String&nbsp;m)</code>
<div class="block">Configure the minutes cron field, overwriting any previous value for minutes.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#months-java.time.Month...-">months</a></span>(java.time.Month...&nbsp;m)</code>
<div class="block">Configure the month cron field, overwriting any previous value for month.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#months-java.lang.String-">months</a></span>(java.lang.String&nbsp;m)</code>
<div class="block">Configure the months cron field, overwriting any previous value for months.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>protected java.time.ZonedDateTime</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#next-java.time.ZonedDateTime-">next</a></span>(java.time.ZonedDateTime&nbsp;from)</code>
<div class="block">Advance to the next date/time according to the cron schedule.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#seconds-int...-">seconds</a></span>(int...&nbsp;s)</code>
<div class="block">Configure the seconds cron field, overwriting any previous value for seconds.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#seconds-java.lang.String-">seconds</a></span>(java.lang.String&nbsp;s)</code>
<div class="block">Configure the seconds cron field, overwriting any previous value for seconds.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#toString--">toString</a></span>()</code>
<div class="block">Readable representation of the CronTrigger, which displays fields in list form
or with the * character for brevity.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.jakarta.enterprise.concurrent.ZonedTrigger">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;jakarta.enterprise.concurrent.<a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html" title="interface in jakarta.enterprise.concurrent">ZonedTrigger</a></h3>
<code><a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html#getNextRunTime-jakarta.enterprise.concurrent.LastExecution-java.util.Date-">getNextRunTime</a>, <a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html#skipRun-jakarta.enterprise.concurrent.LastExecution-java.util.Date-">skipRun</a>, <a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html#skipRun-jakarta.enterprise.concurrent.LastExecution-java.time.ZonedDateTime-">skipRun</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="CronTrigger-java.lang.String-java.time.ZoneId-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CronTrigger</h4>
<pre>public&nbsp;CronTrigger(java.lang.String&nbsp;cron,
java.time.ZoneId&nbsp;zone)</pre>
<div class="block">Constructor that accepts a cron expression.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cron</code> - cron expression.</dd>
<dd><code>zone</code> - timezone ID to use for <code>ZonedDateTime</code> that is supplied to
<a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#getNextRunTime-jakarta.enterprise.concurrent.LastExecution-java.time.ZonedDateTime-"><code>getNextRunTime</code></a> and
<a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html#skipRun-jakarta.enterprise.concurrent.LastExecution-java.time.ZonedDateTime-"><code>skipRun</code></a> methods.
Null indicates to use the system default.</dd>
</dl>
</li>
</ul>
<a name="CronTrigger-java.time.ZoneId-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>CronTrigger</h4>
<pre>public&nbsp;CronTrigger(java.time.ZoneId&nbsp;zone)</pre>
<div class="block">Constructor for the fluent configuration pattern.
Seconds, minutes, and hours default to 0. The remaining fields default to *.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>zone</code> - timezone ID to use for <code>ZonedDateTime</code> that is supplied to
<a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#getNextRunTime-jakarta.enterprise.concurrent.LastExecution-java.time.ZonedDateTime-"><code>getNextRunTime</code></a> and
<a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html#skipRun-jakarta.enterprise.concurrent.LastExecution-java.time.ZonedDateTime-"><code>skipRun</code></a> methods.
Null indicates to use the system default.</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getNextRunTime-jakarta.enterprise.concurrent.LastExecution-java.time.ZonedDateTime-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNextRunTime</h4>
<pre>public&nbsp;java.time.ZonedDateTime&nbsp;getNextRunTime(<a href="../../../jakarta/enterprise/concurrent/LastExecution.html" title="interface in jakarta.enterprise.concurrent">LastExecution</a>&nbsp;lastExecutionInfo,
java.time.ZonedDateTime&nbsp;taskScheduledTime)</pre>
<div class="block">Using the cron schedule, and based on the end of the most recent execution
(or absent that, the initial scheduling time), retrieve the next time
that the task should run after.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html#getNextRunTime-jakarta.enterprise.concurrent.LastExecution-java.time.ZonedDateTime-">getNextRunTime</a></code>&nbsp;in interface&nbsp;<code><a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html" title="interface in jakarta.enterprise.concurrent">ZonedTrigger</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lastExecutionInfo</code> - information about the last execution of the task.
This value will be null if the task has not yet run.</dd>
<dd><code>taskScheduledTime</code> - the date/time at which the
<code>ManagedScheduledExecutorService.schedule</code>
method was invoked to schedule the task.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the date/time after which the next execution of the task should start.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.time.DateTimeException</code> - if a next time cannot be determined from the cron expression.</dd>
</dl>
</li>
</ul>
<a name="getZoneId--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getZoneId</h4>
<pre>public final&nbsp;java.time.ZoneId&nbsp;getZoneId()</pre>
<div class="block">Returns the timezone to use for
<code>ZonedDateTime</code> that is supplied to the
<a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#getNextRunTime-jakarta.enterprise.concurrent.LastExecution-java.time.ZonedDateTime-"><code>getNextRunTime</code></a> and
<a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html#skipRun-jakarta.enterprise.concurrent.LastExecution-java.time.ZonedDateTime-"><code>skipRun</code></a> methods.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html#getZoneId--">getZoneId</a></code>&nbsp;in interface&nbsp;<code><a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html" title="interface in jakarta.enterprise.concurrent">ZonedTrigger</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>timezone to use for operations on this trigger.</dd>
</dl>
</li>
</ul>
<a name="daysOfMonth-int...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>daysOfMonth</h4>
<pre>public&nbsp;<a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a>&nbsp;daysOfMonth(int...&nbsp;d)</pre>
<div class="block">Configure the day-of-month cron field, overwriting any previous value for day-of-month.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>d</code> - one or more day numbers ranging from 1 to 31.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance.</dd>
</dl>
</li>
</ul>
<a name="daysOfMonth-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>daysOfMonth</h4>
<pre>public&nbsp;<a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a>&nbsp;daysOfMonth(java.lang.String&nbsp;d)</pre>
<div class="block">Configure the day-of-month cron field, overwriting any previous value for day-of-month.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>d</code> - dayOfMonth cron field. For example, <code>15,L</code>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance.</dd>
</dl>
</li>
</ul>
<a name="daysOfWeek-java.time.DayOfWeek...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>daysOfWeek</h4>
<pre>public&nbsp;<a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a>&nbsp;daysOfWeek(java.time.DayOfWeek...&nbsp;d)</pre>
<div class="block">Configure the day-of-week cron field, overwriting any previous value for day-of-week.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>d</code> - one or more days of the week.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance.</dd>
</dl>
</li>
</ul>
<a name="daysOfWeek-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>daysOfWeek</h4>
<pre>public&nbsp;<a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a>&nbsp;daysOfWeek(java.lang.String&nbsp;d)</pre>
<div class="block">Configure the day-of-week cron field, overwriting any previous value for day-of-week.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>d</code> - dayOfWeek cron field. For example, <code>MON-FRI,SAT#L</code>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance.</dd>
</dl>
</li>
</ul>
<a name="hours-int...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hours</h4>
<pre>public&nbsp;<a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a>&nbsp;hours(int...&nbsp;h)</pre>
<div class="block">Configure the hours cron field, overwriting any previous value for hours.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>h</code> - one or more hour values ranging from 0 to 23.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance.</dd>
</dl>
</li>
</ul>
<a name="hours-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hours</h4>
<pre>public&nbsp;<a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a>&nbsp;hours(java.lang.String&nbsp;h)</pre>
<div class="block">Configure the hours cron field, overwriting any previous value for hours.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>h</code> - hours cron field. For example, <code>9-17</code> for 9am to 5pm.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance.</dd>
</dl>
</li>
</ul>
<a name="minutes-int...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>minutes</h4>
<pre>public&nbsp;<a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a>&nbsp;minutes(int...&nbsp;m)</pre>
<div class="block">Configure the minutes cron field, overwriting any previous value for minutes.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>m</code> - one or more minute values ranging from 0 to 59.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance.</dd>
</dl>
</li>
</ul>
<a name="minutes-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>minutes</h4>
<pre>public&nbsp;<a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a>&nbsp;minutes(java.lang.String&nbsp;m)</pre>
<div class="block">Configure the minutes cron field, overwriting any previous value for minutes.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>m</code> - minutes cron field. For example, <code>5/10</code> for 10 minute intervals
starting at 5 minutes after the hour (:05, :15, :25, :35, :45, :55).</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance.</dd>
</dl>
</li>
</ul>
<a name="months-java.time.Month...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>months</h4>
<pre>public&nbsp;<a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a>&nbsp;months(java.time.Month...&nbsp;m)</pre>
<div class="block">Configure the month cron field, overwriting any previous value for month.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>m</code> - one or more months.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance.</dd>
</dl>
</li>
</ul>
<a name="months-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>months</h4>
<pre>public&nbsp;<a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a>&nbsp;months(java.lang.String&nbsp;m)</pre>
<div class="block">Configure the months cron field, overwriting any previous value for months.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>m</code> - months cron field. For example, <code>SEP-NOV,FEB-MAY</code>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance.</dd>
</dl>
</li>
</ul>
<a name="seconds-int...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>seconds</h4>
<pre>public&nbsp;<a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a>&nbsp;seconds(int...&nbsp;s)</pre>
<div class="block">Configure the seconds cron field, overwriting any previous value for seconds.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>s</code> - one or more seconds values ranging from 0 to 59.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance.</dd>
</dl>
</li>
</ul>
<a name="seconds-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>seconds</h4>
<pre>public&nbsp;<a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a>&nbsp;seconds(java.lang.String&nbsp;s)</pre>
<div class="block">Configure the seconds cron field, overwriting any previous value for seconds.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>s</code> - seconds cron field. For example, <code>30</code>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance.</dd>
</dl>
</li>
</ul>
<a name="toString--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;java.lang.String&nbsp;toString()</pre>
<div class="block">Readable representation of the CronTrigger, which displays fields in list form
or with the * character for brevity.
<p>
For example,
<pre>CronTrigger@89abcdef seconds 0, minutes 0, hours 9, *, months 3,6,9,12, SAT#2,SAT#4</pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>readable representation of the parsed cron expression.</dd>
</dl>
</li>
</ul>
<a name="next-java.time.ZonedDateTime-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>next</h4>
<pre>protected&nbsp;java.time.ZonedDateTime&nbsp;next(java.time.ZonedDateTime&nbsp;from)</pre>
<div class="block">Advance to the next date/time according to the cron schedule.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>from</code> - the date/time from which to compute the next time.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>next date/time according to the cron schedule, or the original time if it matches.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="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="../../../jakarta/enterprise/concurrent/ContextServiceDefinition.List.html" title="annotation in jakarta.enterprise.concurrent"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../jakarta/enterprise/concurrent/LastExecution.html" title="interface in jakarta.enterprise.concurrent"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?jakarta/enterprise/concurrent/CronTrigger.html" target="_top">Frames</a></li>
<li><a href="CronTrigger.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>