javax.ejb

Class 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 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:

    • 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 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")
    • 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 expression x/y, the attribute is constrained to every yth 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:

    • If the 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.
    • 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 the Schedule 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 Detail

      • ScheduleExpression

        public ScheduleExpression()
        Create a schedule with the default values.
    • Method Detail

      • second

        public ScheduleExpression second(String s)
        Set the second attribute.
        Parameters:
        s - the attribute value as a String
      • second

        public ScheduleExpression second(int s)
        Set the second attribute.
        Parameters:
        s - the attribute value as an int, if the value is a simple integer value
      • 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 a String
      • minute

        public ScheduleExpression minute(int m)
        Set the minute attribute.
        Parameters:
        m - the attribute value as an int, if the value is a simple integer value
      • 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 a String
      • hour

        public ScheduleExpression hour(int h)
        Set the hour attribute.
        Parameters:
        h - the attribute value as an int, if the value is a simple integer value
      • 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 a String
      • dayOfMonth

        public ScheduleExpression dayOfMonth(int d)
        Set the day of the month attribute.
        Parameters:
        d - the attribute value as an int, if the value is a simple integer value
      • 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 a String
      • month

        public ScheduleExpression month(int m)
        Set the month attribute.
        Parameters:
        m - the attribute value as an int, if the value is a simple integer value
      • 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 a String
      • dayOfWeek

        public ScheduleExpression dayOfWeek(int d)
        Set the day of the week attribute.
        Parameters:
        d - the attribute value as an int, if the value is a simple integer value
      • 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 a String
      • year

        public ScheduleExpression year(int y)
        Set the year attribute.
        Parameters:
        y - the attribute value as an int, if the value is a simple integer value
      • 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
      • getTimezone

        public String getTimezone()
        Return the timezone, if set; otherwise null.
        Returns:
        timezone
      • getStart

        public Date getStart()
        Return the start date, if set; otherwise null.
        Returns:
        start date
      • getEnd

        public Date getEnd()
        Return the end date, if set; otherwise null.
        Returns:
        end date

Traduction non disponible

Les API Java ne sont pas encore traduites en français sur l'infobrol. Seule la version anglaise est disponible pour l'instant.

Version en cache

21/08/2025 19:07:38 Cette version de la page est en cache (à la date du 21/08/2025 19:07:38) afin d'accélérer le traitement.
Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la version plus récente de la page.

Document créé le 11/06/2005, dernière modification le 18/08/2025
Source du document imprimé : https://www.gaudry.be/java-api-javaee-rf-javax/ejb/scheduleexpression.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : https://docs.oracle.com

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.