Class CronExpression

java.lang.Object
org.redisson.executor.CronExpression
All Implemented Interfaces:
Serializable, Cloneable

public final class CronExpression extends Object implements Serializable, Cloneable
Author:
Sharada Jambula, James House, Contributions from Mads Henderson, Refactoring from CronTrigger to CronExpression by Aaron Craven
See Also:
  • Field Details

    • SECOND

      protected static final int SECOND
      See Also:
    • MINUTE

      protected static final int MINUTE
      See Also:
    • HOUR

      protected static final int HOUR
      See Also:
    • DAY_OF_MONTH

      protected static final int DAY_OF_MONTH
      See Also:
    • MONTH

      protected static final int MONTH
      See Also:
    • DAY_OF_WEEK

      protected static final int DAY_OF_WEEK
      See Also:
    • YEAR

      protected static final int YEAR
      See Also:
    • ALL_SPEC_INT

      protected static final int ALL_SPEC_INT
      See Also:
    • NO_SPEC_INT

      protected static final int NO_SPEC_INT
      See Also:
    • ALL_SPEC

      protected static final Integer ALL_SPEC
    • NO_SPEC

      protected static final Integer NO_SPEC
    • monthMap

      protected static final Map<String,Integer> monthMap
    • dayMap

      protected static final Map<String,Integer> dayMap
    • seconds

      protected transient TreeSet<Integer> seconds
    • minutes

      protected transient TreeSet<Integer> minutes
    • hours

      protected transient TreeSet<Integer> hours
    • daysOfMonth

      protected transient TreeSet<Integer> daysOfMonth
    • months

      protected transient TreeSet<Integer> months
    • daysOfWeek

      protected transient TreeSet<Integer> daysOfWeek
    • years

      protected transient TreeSet<Integer> years
    • lastdayOfWeek

      protected transient boolean lastdayOfWeek
    • nthdayOfWeek

      protected transient int nthdayOfWeek
    • lastdayOfMonth

      protected transient boolean lastdayOfMonth
    • nearestWeekday

      protected transient boolean nearestWeekday
    • lastdayOffset

      protected transient int lastdayOffset
    • expressionParsed

      protected transient boolean expressionParsed
    • MAX_YEAR

      public static final int MAX_YEAR
  • Constructor Details

    • CronExpression

      public CronExpression(String cronExpression)
      Constructs a new CronExpression based on the specified parameter.
      Parameters:
      cronExpression - String representation of the cron expression the new object should represent
    • CronExpression

      public CronExpression(CronExpression expression)
      Constructs a new CronExpression as a copy of an existing instance.
      Parameters:
      expression - The existing cron expression to be copied
  • Method Details

    • isSatisfiedBy

      public boolean isSatisfiedBy(Date date)
      Indicates whether the given date satisfies the cron expression. Note that milliseconds are ignored, so two Dates falling on different milliseconds of the same second will always have the same result here.
      Parameters:
      date - the date to evaluate
      Returns:
      a boolean indicating whether the given date satisfies the cron expression
    • getNextValidTimeAfter

      public Date getNextValidTimeAfter(Date date)
      Returns the next date/time after the given date/time which satisfies the cron expression.
      Parameters:
      date - the date/time at which to begin the search for the next valid date/time
      Returns:
      the next valid date/time
    • getNextInvalidTimeAfter

      public Date getNextInvalidTimeAfter(Date date)
      Returns the next date/time after the given date/time which does not satisfy the expression
      Parameters:
      date - the date/time at which to begin the search for the next invalid date/time
      Returns:
      the next valid date/time
    • getTimeZone

      public TimeZone getTimeZone()
      Returns the time zone for which this CronExpression will be resolved.
      Returns:
      time zone
    • setTimeZone

      public void setTimeZone(TimeZone timeZone)
      Sets the time zone for which this CronExpression will be resolved.
      Parameters:
      timeZone - object
    • toString

      public String toString()
      Returns the string representation of the CronExpression
      Overrides:
      toString in class Object
      Returns:
      a string representation of the CronExpression
    • isValidExpression

      public static boolean isValidExpression(String cronExpression)
      Indicates whether the specified cron expression can be parsed into a valid cron expression
      Parameters:
      cronExpression - the expression to evaluate
      Returns:
      a boolean indicating whether the given expression is a valid cron expression
    • validateExpression

      public static void validateExpression(String cronExpression) throws ParseException
      Throws:
      ParseException
    • buildExpression

      protected void buildExpression(String expression) throws ParseException
      Throws:
      ParseException
    • storeExpressionVals

      protected int storeExpressionVals(int pos, String s, int type) throws ParseException
      Throws:
      ParseException
    • checkNext

      protected int checkNext(int pos, String s, int val, int type) throws ParseException
      Throws:
      ParseException
    • getCronExpression

      public String getCronExpression()
    • getExpressionSummary

      public String getExpressionSummary()
    • getExpressionSetSummary

      protected String getExpressionSetSummary(Set<Integer> set)
    • getExpressionSetSummary

      protected String getExpressionSetSummary(ArrayList<Integer> list)
    • skipWhiteSpace

      protected int skipWhiteSpace(int i, String s)
    • findNextWhiteSpace

      protected int findNextWhiteSpace(int i, String s)
    • addToSet

      protected void addToSet(int val, int end, int incr, int type) throws ParseException
      Throws:
      ParseException
    • getValue

      protected org.redisson.executor.ValueSet getValue(int v, String s, int i)
    • getNumericValue

      protected int getNumericValue(String s, int i)
    • getMonthNumber

      protected int getMonthNumber(String s)
    • getDayOfWeekNumber

      protected int getDayOfWeekNumber(String s)
    • getTimeAfter

      public Date getTimeAfter(Date afterTime)
    • setCalendarHour

      protected void setCalendarHour(Calendar cal, int hour)
      Advance the calendar to the particular hour paying particular attention to daylight saving problems.
      Parameters:
      cal - the calendar to operate on
      hour - the hour to set
    • getTimeBefore

      public Date getTimeBefore(Date endTime)
    • getFinalFireTime

      public Date getFinalFireTime()
    • isLeapYear

      protected boolean isLeapYear(int year)
    • getLastDayOfMonth

      protected int getLastDayOfMonth(int monthNum, int year)
    • clone

      @Deprecated public Object clone()
      Deprecated.
      Overrides:
      clone in class Object