public class ScheduleExpression
extends java.lang.Object
implements java.io.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 to
scheduleExpression.second("10")There are seven attributes that constitute a schedule specification which are listed below. In addition, the
timezone
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:
Allowable values: [0,59]
Allowable values : [0,59]
Allowable values : [0,23]
Allowable values:
"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.
Allowable values :
Allowable values :
"0" and "7" both refer to Sunday
Allowable values : a four-digit calendar year
Each attribute supports values expressed in one of the following forms
Example: second = "10" Example: month = "Sep"
Example: second = "*" Example: dayOfWeek = "*"
Example: second = "10,20,30" Example: dayOfWeek = "Mon,Wed,Fri" Example: minute = "0-10,30,40"
x
is larger than y
in a range "x-y"
, the range is
equivalent to "x-max, min-y"
, where max
is the largest value of the corresponding attribute
and min
is the smallest. The range "x-x"
, where both range values are the same, evaluates
to the single value x
. 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")
N
seconds, minutes, or hours within the minute, hour, or day, respectively. For the
expression x/y
, the attribute is constrained to every y
th value within the set of allowable
values beginning at time x
. The x
value is inclusive. The wild card character
(*
) can be used in the x
position, and is equivalent to 0
. The use of
increments is only supported within the second
, minute
, and hour
attributes.
For the second
and minute
attributes, x
and y
must each be in the
range [0,59]
. For the hour
attribute, x
and y
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:
dayOfMonth
attribute has a non-wildcard value and the dayOfWeek
attribute has a
non-wildcard value, then any day matching either the dayOfMonth
value or the dayOfWeek
value will be considered to apply.
"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 :
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 the Schedule
annotation, and portable implementations must not assume any particular
syntactic format. Implementations are required only to preserve semantic equivalence.
Constructor and Description |
---|
ScheduleExpression()
Create a schedule with the default values.
|
Modifier and Type | Method and Description |
---|---|
ScheduleExpression |
dayOfMonth(int d)
Set the day of the month attribute.
|
ScheduleExpression |
dayOfMonth(java.lang.String d)
Set the day of the month attribute.
|
ScheduleExpression |
dayOfWeek(int d)
Set the day of the week attribute.
|
ScheduleExpression |
dayOfWeek(java.lang.String d)
Set the day of the week attribute.
|
ScheduleExpression |
end(java.util.Date e)
Set the end date.
|
java.lang.String |
getDayOfMonth()
Return the value of the day of the month attribute.
|
java.lang.String |
getDayOfWeek()
Return the value of the day of the week attribute.
|
java.util.Date |
getEnd()
Return the end date, if set; otherwise null.
|
java.lang.String |
getHour()
Return the value of the hour attribute.
|
java.lang.String |
getMinute()
Return the value of the minute attribute.
|
java.lang.String |
getMonth()
Return the value of the month attribute.
|
java.lang.String |
getSecond()
Return the value of the second attribute.
|
java.util.Date |
getStart()
Return the start date, if set; otherwise null.
|
java.lang.String |
getTimezone()
Return the timezone, if set; otherwise null.
|
java.lang.String |
getYear()
Return the value of the year attribute.
|
ScheduleExpression |
hour(int h)
Set the hour attribute.
|
ScheduleExpression |
hour(java.lang.String h)
Set the hour attribute.
|
ScheduleExpression |
minute(int m)
Set the minute attribute.
|
ScheduleExpression |
minute(java.lang.String m)
Set the minute attribute.
|
ScheduleExpression |
month(int m)
Set the month attribute.
|
ScheduleExpression |
month(java.lang.String m)
Set the month attribute.
|
ScheduleExpression |
second(int s)
Set the second attribute.
|
ScheduleExpression |
second(java.lang.String s)
Set the second attribute.
|
ScheduleExpression |
start(java.util.Date s)
Set the start date.
|
ScheduleExpression |
timezone(java.lang.String timezoneID)
Set the timezone.
|
java.lang.String |
toString() |
ScheduleExpression |
year(int y)
Set the year attribute.
|
ScheduleExpression |
year(java.lang.String y)
Set the year attribute.
|
public ScheduleExpression()
public ScheduleExpression second(java.lang.String s)
s
- the attribute value as a String
ScheduleExpression
object.public ScheduleExpression second(int s)
s
- the attribute value as an int
, if the value is a simple integer valueScheduleExpression
object.public java.lang.String getSecond()
public ScheduleExpression minute(java.lang.String m)
m
- the attribute value as a String
ScheduleExpression
object.public ScheduleExpression minute(int m)
m
- the attribute value as an int
, if the value is a simple integer valueScheduleExpression
object.public java.lang.String getMinute()
public ScheduleExpression hour(java.lang.String h)
h
- the attribute value as a String
ScheduleExpression
object.public ScheduleExpression hour(int h)
h
- the attribute value as an int
, if the value is a simple integer valueScheduleExpression
object.public java.lang.String getHour()
public ScheduleExpression dayOfMonth(java.lang.String d)
d
- the attribute value as a String
ScheduleExpression
object.public ScheduleExpression dayOfMonth(int d)
d
- the attribute value as an int
, if the value is a simple integer valueScheduleExpression
object.public java.lang.String getDayOfMonth()
public ScheduleExpression month(java.lang.String m)
m
- the attribute value as a String
ScheduleExpression
object.public ScheduleExpression month(int m)
m
- the attribute value as an int
, if the value is a simple integer valueScheduleExpression
object.public java.lang.String getMonth()
public ScheduleExpression dayOfWeek(java.lang.String d)
d
- the attribute value as a String
ScheduleExpression
object.public ScheduleExpression dayOfWeek(int d)
d
- the attribute value as an int
, if the value is a simple integer valueScheduleExpression
object.public java.lang.String getDayOfWeek()
public ScheduleExpression year(java.lang.String y)
y
- the attribute value as a String
ScheduleExpression
object.public ScheduleExpression year(int y)
y
- the attribute value as an int
, if the value is a simple integer valueScheduleExpression
object.public java.lang.String getYear()
public ScheduleExpression timezone(java.lang.String timezoneID)
timezoneID
- the Time zone specified as an ID StringScheduleExpression
object.public java.lang.String getTimezone()
public ScheduleExpression start(java.util.Date s)
s
- the start dateScheduleExpression
object.public java.util.Date getStart()
public ScheduleExpression end(java.util.Date e)
e
- the end dateScheduleExpression
object.public java.util.Date getEnd()
public java.lang.String toString()
toString
in class java.lang.Object