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
public ScheduleExpression second(int s)
s
- the attribute value as an int
, if the value
is a simple integer valuepublic java.lang.String getSecond()
public ScheduleExpression minute(java.lang.String m)
m
- the attribute value as a String
public ScheduleExpression minute(int m)
m
- the attribute value as an int
, if the value
is a simple integer valuepublic java.lang.String getMinute()
public ScheduleExpression hour(java.lang.String h)
h
- the attribute value as a String
public ScheduleExpression hour(int h)
h
- the attribute value as an int
, if the value
is a simple integer valuepublic java.lang.String getHour()
public ScheduleExpression dayOfMonth(java.lang.String d)
d
- the attribute value as a String
public ScheduleExpression dayOfMonth(int d)
d
- the attribute value as an int
, if the value
is a simple integer valuepublic java.lang.String getDayOfMonth()
public ScheduleExpression month(java.lang.String m)
m
- the attribute value as a String
public ScheduleExpression month(int m)
m
- the attribute value as an int
, if the value
is a simple integer valuepublic java.lang.String getMonth()
public ScheduleExpression dayOfWeek(java.lang.String d)
d
- the attribute value as a String
public ScheduleExpression dayOfWeek(int d)
d
- the attribute value as an int
, if the value
is a simple integer valuepublic java.lang.String getDayOfWeek()
public ScheduleExpression year(java.lang.String y)
y
- the attribute value as a String
public ScheduleExpression year(int y)
y
- the attribute value as an int
, if the value
is a simple integer valuepublic java.lang.String getYear()
public ScheduleExpression timezone(java.lang.String timezoneID)
timezoneID
- the Time zone specified as an ID Stringpublic java.lang.String getTimezone()
public ScheduleExpression start(java.util.Date s)
s
- the start datepublic java.util.Date getStart()
public ScheduleExpression end(java.util.Date e)
e
- the end datepublic java.util.Date getEnd()
public java.lang.String toString()
toString
in class java.lang.Object