Class ScheduleExpression
- java.lang.Object
-
- jakarta.ejb.ScheduleExpression
-
- All Implemented Interfaces:
Serializable
public class ScheduleExpression extends Object implements Serializable
A calendar-based timeout expression for an enterprise bean timer.
Each attribute used to define a calendar-based timeout schedule has two overloaded setter methods, one that takes a String and one that takes an int. The int version is merely a convenience method for setting the attribute in the common case that the value is a simple integer value.
For example,
scheduleExpression.second(10)
is semantically equivalent toscheduleExpression.second("10")
There are seven attributes that constitute a schedule specification which are listed below. In addition, thetimezone
attribute may be used to specify a non-default time zone in whose context the schedule specification is to be evaluated.The attributes that specify the calendar-based schedule itself are as follows:
- second : one or more seconds within a minute
Allowable values: [0,59]
- minute : one or more minutes within an hour
Allowable values : [0,59]
- hour : one or more hours within a day
Allowable values : [0,23]
- dayOfMonth : one or more days within a month
Allowable values:
- [1,31]
- [-7, -1]
- "Last"
- {"1st", "2nd", "3rd", "4th", "5th", "Last"} {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}
"Last" means the last day of the month
-x (where x is in the range [-7, -1]) means x day(s) before the last day of the month
"1st","2nd", etc. applied to a day of the week identifies a single occurrence of that day within the month.
- month : one or more months within a year
Allowable values :
- [1,12]
- {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", Dec"}
- dayOfWeek : one or more days within a week
Allowable values :
- [0,7]
- {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}
"0" and "7" both refer to Sunday
- year : a particular calendar year
Allowable values : a four-digit calendar year
Each attribute supports values expressed in one of the following forms
- Single Value. This constrains the attribute to only one of its possible values.
Example: second = "10" Example: month = "Sep"
- Wild Card. "*" represents all allowable values for a given attribute.
Example: second = "*" Example: dayOfWeek = "*"
- List. This constrains the attribute to two or more allowable values or ranges, with a comma used as a separator
character within the string. Each item in the list must be a single value or range. List items cannot be lists, wild
cards, or increments. Duplicate values are ignored.
Example: second = "10,20,30" Example: dayOfWeek = "Mon,Wed,Fri" Example: minute = "0-10,30,40"
- Range. This constrains the attribute to an inclusive range of values, with a dash separating both ends of the
range. Each side of the range must be a single attribute value. Members of a range cannot be lists, wild cards,
ranges, or increments. If
x
is larger thany
in a range"x-y"
, the range is equivalent to"x-max, min-y"
, wheremax
is the largest value of the corresponding attribute andmin
is the smallest. The range"x-x"
, where both range values are the same, evaluates to the single valuex
. The day of the week range"0-7"
is equivalent to"*"
.Example: second = "1-10" Example: dayOfWeek = "Fri-Mon" Example: dayOfMonth = "27-3" (Equivalent to "27-Last , 1-3")
- Increments. The forward slash constrains an attribute based on a starting point and an interval, and is used to
specify every
N
seconds, minutes, or hours within the minute, hour, or day, respectively. For the expressionx/y
, the attribute is constrained to everyy
th value within the set of allowable values beginning at timex
. Thex
value is inclusive. The wild card character (*
) can be used in thex
position, and is equivalent to0
. The use of increments is only supported within thesecond
,minute
, andhour
attributes. For thesecond
andminute
attributes,x
andy
must each be in the range[0,59]
. For thehour
attribute,x
andy
must each be in the range[0,23]
.Example: minute = "∗/5" (Every five minutes within the hour)
This is equivalent to:minute = "0,5,10,15,20,25,30,35,40,45,50,55"
Example: second = "30/10" (Every 10 seconds within the minute, starting at second 30)
This is equivalent to:second = "30,40,50"
Note that the set of matching increment values stops once the maximum value for that attribute is exceeded. It does not "roll over" past the boundary.
Example : ( minute = "∗/14", hour="1,2")
This is equivalent to:
(minute = "0,14,28,42,56", hour = "1,2")
(Every 14 minutes within the hour, for the hours of 1 and 2 a.m.)
The following additional rules apply to the schedule specification attributes:
- If the
dayOfMonth
attribute has a non-wildcard value and thedayOfWeek
attribute has a non-wildcard value, then any day matching either thedayOfMonth
value or thedayOfWeek
value will be considered to apply. - Whitespace is ignored, except for string constants and numeric values.
- All string constants (e.g.,
"Sun"
,"Jan"
,"1st"
, etc.) are case insensitive.
Schedule-based timer times are evaluated in the context of the default time zone associated with the container in which the application is executing. A schedule-based timer may optionally override this default and associate itself with a specific time zone. If the schedule-based timer is associated with a specific time zone, all its times are evaluated in the context of that time zone, regardless of the default time zone in which the container is executing.
None of the ScheduleExpression methods are required to be called. The defaults are :
- second: "0"
- minute: "0"
- hour: "0"
- dayOfMonth: "*"
- month: "*"
- dayOfWeek: "*"
- year: "*"
- timezone : default JVM time zone
- start : upon timer creation
- end : no end date
Applications must not rely on the getter methods that return the attributes of a calendar-based timeout schedule to return them in the same syntactic format in which they were passed in to a
ScheduleExpression
method or supplied to theSchedule
annotation, and portable implementations must not assume any particular syntactic format. Implementations are required only to preserve semantic equivalence.- Since:
- EJB 3.1
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description ScheduleExpression()
Create a schedule with the default values.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ScheduleExpression
dayOfMonth(int d)
Set the day of the month attribute.ScheduleExpression
dayOfMonth(String d)
Set the day of the month attribute.ScheduleExpression
dayOfWeek(int d)
Set the day of the week attribute.ScheduleExpression
dayOfWeek(String d)
Set the day of the week attribute.ScheduleExpression
end(Date e)
Set the end date.String
getDayOfMonth()
Return the value of the day of the month attribute.String
getDayOfWeek()
Return the value of the day of the week attribute.Date
getEnd()
Return the end date, if set; otherwise null.String
getHour()
Return the value of the hour attribute.String
getMinute()
Return the value of the minute attribute.String
getMonth()
Return the value of the month attribute.String
getSecond()
Return the value of the second attribute.Date
getStart()
Return the start date, if set; otherwise null.String
getTimezone()
Return the timezone, if set; otherwise null.String
getYear()
Return the value of the year attribute.ScheduleExpression
hour(int h)
Set the hour attribute.ScheduleExpression
hour(String h)
Set the hour attribute.ScheduleExpression
minute(int m)
Set the minute attribute.ScheduleExpression
minute(String m)
Set the minute attribute.ScheduleExpression
month(int m)
Set the month attribute.ScheduleExpression
month(String m)
Set the month attribute.ScheduleExpression
second(int s)
Set the second attribute.ScheduleExpression
second(String s)
Set the second attribute.ScheduleExpression
start(Date s)
Set the start date.ScheduleExpression
timezone(String timezoneID)
Set the timezone.String
toString()
ScheduleExpression
year(int y)
Set the year attribute.ScheduleExpression
year(String y)
Set the year attribute.
-
-
-
Method Detail
-
second
public ScheduleExpression second(String s)
Set the second attribute.- Parameters:
s
- the attribute value as aString
- Returns:
- a
ScheduleExpression
object.
-
second
public ScheduleExpression second(int s)
Set the second attribute.- Parameters:
s
- the attribute value as anint
, if the value is a simple integer value- Returns:
- a
ScheduleExpression
object.
-
getSecond
public String getSecond()
Return the value of the second attribute.- Returns:
- second
-
minute
public ScheduleExpression minute(String m)
Set the minute attribute.- Parameters:
m
- the attribute value as aString
- Returns:
- a
ScheduleExpression
object.
-
minute
public ScheduleExpression minute(int m)
Set the minute attribute.- Parameters:
m
- the attribute value as anint
, if the value is a simple integer value- Returns:
- a
ScheduleExpression
object.
-
getMinute
public String getMinute()
Return the value of the minute attribute.- Returns:
- minute
-
hour
public ScheduleExpression hour(String h)
Set the hour attribute.- Parameters:
h
- the attribute value as aString
- Returns:
- a
ScheduleExpression
object.
-
hour
public ScheduleExpression hour(int h)
Set the hour attribute.- Parameters:
h
- the attribute value as anint
, if the value is a simple integer value- Returns:
- a
ScheduleExpression
object.
-
getHour
public String getHour()
Return the value of the hour attribute.- Returns:
- hour
-
dayOfMonth
public ScheduleExpression dayOfMonth(String d)
Set the day of the month attribute.- Parameters:
d
- the attribute value as aString
- Returns:
- a
ScheduleExpression
object.
-
dayOfMonth
public ScheduleExpression dayOfMonth(int d)
Set the day of the month attribute.- Parameters:
d
- the attribute value as anint
, if the value is a simple integer value- Returns:
- a
ScheduleExpression
object.
-
getDayOfMonth
public String getDayOfMonth()
Return the value of the day of the month attribute.- Returns:
- day of the month
-
month
public ScheduleExpression month(String m)
Set the month attribute.- Parameters:
m
- the attribute value as aString
- Returns:
- a
ScheduleExpression
object.
-
month
public ScheduleExpression month(int m)
Set the month attribute.- Parameters:
m
- the attribute value as anint
, if the value is a simple integer value- Returns:
- a
ScheduleExpression
object.
-
getMonth
public String getMonth()
Return the value of the month attribute.- Returns:
- month
-
dayOfWeek
public ScheduleExpression dayOfWeek(String d)
Set the day of the week attribute.- Parameters:
d
- the attribute value as aString
- Returns:
- a
ScheduleExpression
object.
-
dayOfWeek
public ScheduleExpression dayOfWeek(int d)
Set the day of the week attribute.- Parameters:
d
- the attribute value as anint
, if the value is a simple integer value- Returns:
- a
ScheduleExpression
object.
-
getDayOfWeek
public String getDayOfWeek()
Return the value of the day of the week attribute.- Returns:
- day of the week
-
year
public ScheduleExpression year(String y)
Set the year attribute.- Parameters:
y
- the attribute value as aString
- Returns:
- a
ScheduleExpression
object.
-
year
public ScheduleExpression year(int y)
Set the year attribute.- Parameters:
y
- the attribute value as anint
, if the value is a simple integer value- Returns:
- a
ScheduleExpression
object.
-
getYear
public String getYear()
Return the value of the year attribute.- Returns:
- year
-
timezone
public ScheduleExpression timezone(String timezoneID)
Set the timezone.- Parameters:
timezoneID
- the Time zone specified as an ID String- Returns:
- a
ScheduleExpression
object.
-
getTimezone
public String getTimezone()
Return the timezone, if set; otherwise null.- Returns:
- timezone
-
start
public ScheduleExpression start(Date s)
Set the start date.- Parameters:
s
- the start date- Returns:
- a
ScheduleExpression
object.
-
getStart
public Date getStart()
Return the start date, if set; otherwise null.- Returns:
- start date
-
end
public ScheduleExpression end(Date e)
Set the end date.- Parameters:
e
- the end date- Returns:
- a
ScheduleExpression
object.
-
getEnd
public Date getEnd()
Return the end date, if set; otherwise null.- Returns:
- end date
-
-