diff --git a/lib/src/main/java/rife/scheduler/Frequency.java b/lib/src/main/java/rife/scheduler/Frequency.java
index 9bd98068..c27a8311 100644
--- a/lib/src/main/java/rife/scheduler/Frequency.java
+++ b/lib/src/main/java/rife/scheduler/Frequency.java
@@ -6,7 +6,6 @@ package rife.scheduler;
import rife.config.RifeConfig;
import rife.scheduler.exceptions.FrequencyException;
-import rife.tools.Localization;
import rife.tools.StringUtils;
import java.time.DayOfWeek;
@@ -522,7 +521,7 @@ public class Frequency {
weekdays_ = Arrays.copyOf(ALL_WEEKDAYS, ALL_WEEKDAYS.length);
}
- long getNextDate(long start)
+ long getNextTimestamp(long start)
throws FrequencyException {
if (start < 0) throw new IllegalArgumentException("start should be positive");
diff --git a/lib/src/main/java/rife/scheduler/Task.java b/lib/src/main/java/rife/scheduler/Task.java
index 18230833..3bc2f7cf 100644
--- a/lib/src/main/java/rife/scheduler/Task.java
+++ b/lib/src/main/java/rife/scheduler/Task.java
@@ -7,12 +7,20 @@ package rife.scheduler;
import rife.config.RifeConfig;
import rife.scheduler.exceptions.FrequencyException;
import rife.scheduler.exceptions.SchedulerException;
-import rife.tools.Localization;
import rife.validation.*;
import java.util.Calendar;
import java.util.Date;
+/**
+ * A task contains all the information for the scheduler to plan its execution.
+ *
+ * For a task to be valid, it needs to have a type and either the one-shat planned execution
+ * needs to be specified, or the repeating frequency.
+ *
+ * @author Geert Bevin (gbevin[remove] at uwyn dot com)
+ * @since 1.0
+ */
public class Task extends MetaData implements Cloneable {
private int id_ = -1;
private String type_ = null;
@@ -22,6 +30,11 @@ public class Task extends MetaData implements Cloneable {
private TaskManager taskManager_ = null;
+ /**
+ * Create a new task.
+ *
+ * @since 1.0
+ */
public Task() {
}
@@ -31,14 +44,43 @@ public class Task extends MetaData implements Cloneable {
addRule(new InvalidPlanned());
}
+ /**
+ * Sets this task's task manager.
+ *
+ * This is not intended to be used by the user and will be set by RIFE2
+ * when processing tasks.
+ *
+ * @param taskManager the task manager to set
+ * @since 1.0
+ */
public void setTaskManager(TaskManager taskManager) {
taskManager_ = taskManager;
}
+ /**
+ * Retrieve this task's task manager.
+ *
+ * @return this task's task manager; or
+ * {@code null} if no task manager has been assigned to this task
+ * @since 1.0
+ */
public TaskManager getTaskManager() {
return taskManager_;
}
+ /**
+ * Retrieve the value of a named task option for this task.
+ *
+ * This method relies on RIFE2 having set the task manager first,
+ * without that, the option value will always be {@code null}.
+ *
+ * @param name the name of the task option to retrieve
+ * @return the value for the named option; or {@code null} if the option
+ * wasn't available or couldn't be found
+ * @throws SchedulerException when an error occurs during the retrieval
+ * of the task option
+ * @since 1.0
+ */
public String getTaskOptionValue(String name)
throws SchedulerException {
if (null == name) throw new IllegalArgumentException("name can't be null.");
@@ -66,7 +108,16 @@ public class Task extends MetaData implements Cloneable {
return taskoption.getValue();
}
- public long getNextDate()
+ /**
+ * Calculate the next timestamp in milliseconds since epoch at which this
+ * task should execute.
+ *
+ * @return the next execution timestamp; or
+ * {@code -1} if there's no next scheduled time
+ * @throws FrequencyException when an error occurred during the timestamp calculation
+ * @since 1.0
+ */
+ public long getNextTimestamp()
throws FrequencyException {
// lower towards the minute, remove seconds and milliseconds
var current_calendar = RifeConfig.tools().getCalendarInstance();
@@ -74,46 +125,91 @@ public class Task extends MetaData implements Cloneable {
current_calendar.set(Calendar.MILLISECOND, 0);
var current_time = current_calendar.getTimeInMillis();
if (planned_ <= current_time) {
- return getNextDate(current_time);
+ return getNextTimestamp(current_time);
}
return -1;
}
- public long getNextDate(long start)
+ /**
+ * Calculate the next timestamp in milliseconds since epoch at which this
+ * task should execute, starting from a provided timestamp.
+ *
+ * @param start the starting timestamp in milliseconds since epoch to look
+ * for the next execution timestamp
+ * @return the next execution timestamp; or
+ * {@code -1} if there's no next scheduled time
+ * @throws FrequencyException when an error occurred during the timestamp calculation
+ * @since 1.0
+ */
+ public long getNextTimestamp(long start)
throws FrequencyException {
if (null == frequency_) {
return -1;
} else {
- return frequency_.getNextDate(start);
+ return frequency_.getNextTimestamp(start);
}
}
- public void setId(int id) {
- id_ = id;
- }
-
- public int getId() {
- return id_;
- }
-
+ /**
+ * Sets the type of the task, which will be used to execute
+ * this task with the {@link Executor} that handles the same task type.
+ *
+ * @param type this task's type
+ * @since 1.0
+ */
public void setType(String type) {
type_ = type;
}
+ /**
+ * Sets the type of the task, which will be used to execute
+ * this task with the {@link Executor} that handles the same task type.
+ *
+ * @param type this task's type
+ * @return this task instance
+ * @since 1.0
+ */
public Task type(String type) {
setType(type);
return this;
}
+ /**
+ * Retrieves the type of this task
+ *
+ * @return this task's type; or
+ * {@code null} if no type was set
+ */
public String getType() {
return type_;
}
+ /**
+ * Sets the planned timestamp at which this task should execute next.
+ *
+ * This can be set manually for one-shot task execution, or when providing
+ * a frequency, RIFE2 will automatically set the planned timestamp based
+ * on the frequency specification.
+ *
+ * @param planned the date instance for one-shot task execution
+ * @since 1.0
+ */
public void setPlanned(Date planned) {
setPlanned(planned.getTime());
}
+ /**
+ * Sets the planned timestamp at which this task should execute next.
+ *
+ * This can be set manually for one-shot task execution, or when providing
+ * a frequency, RIFE2 will automatically set the planned timestamp based
+ * on the frequency specification.
+ *
+ * @param planned the timestamp in milliseconds since epoch for one-shot
+ * task execution
+ * @since 1.0
+ */
public void setPlanned(long planned) {
// lower towards the minute, remove seconds and milliseconds
var planned_calendar = RifeConfig.tools().getCalendarInstance();
@@ -124,42 +220,88 @@ public class Task extends MetaData implements Cloneable {
planned_ = planned_calendar.getTimeInMillis();
}
+ /**
+ * Sets the planned timestamp at which this task should execute next.
+ *
+ * This can be set manually for one-shot task execution, or when providing
+ * a frequency, RIFE2 will automatically set the planned timestamp based
+ * on the frequency specification.
+ *
+ * @param planned the date instance for one-shot task execution
+ * @return this task instance
+ * @since 1.0
+ */
public Task planned(Date planned) {
setPlanned(planned);
return this;
}
+ /**
+ * Sets the planned timestamp at which this task should execute next.
+ *
+ * @param planned the timestamp in milliseconds since epoch for one-shot
+ * task execution
+ * @return this task instance
+ * @since 1.0
+ */
public Task planned(long planned) {
setPlanned(planned);
return this;
}
+ /**
+ * Retrieve the timestamp at which this task is scheduled for the next
+ * execution.
+ *
+ * @return the next execution timestamp in milliseconds since epoch
+ * @since 1.0
+ */
public long getPlanned() {
return planned_;
}
- public void setFrequency(Frequency frequency)
- throws FrequencyException {
- if (null == frequency) {
- frequency_ = null;
- } else {
- frequency_ = frequency;
- }
+ /**
+ * Sets the frequency at which this task should execute repeatedly.
+ *
+ * @param frequency this task's frequency
+ * @since 1.0
+ */
+ public void setFrequency(Frequency frequency) {
+ frequency_ = frequency;
}
- public Task frequency(Frequency frequency)
- throws FrequencyException {
+ /**
+ * Sets the frequency at which this task should execute repeatedly.
+ *
+ * @param frequency this task's frequency
+ * @return this task instance
+ * @since 1.0
+ */
+ public Task frequency(Frequency frequency) {
setFrequency(frequency);
return this;
}
+ /**
+ * Retrieves the frequency at which this task should execute repeatedly.
+ *
+ * @return this task's frequency; or
+ * {@code null} if the frequency hasn't been set
+ * @since 1.0
+ */
public Frequency getFrequency() {
- if (null == frequency_) {
- return null;
- }
return frequency_;
}
+ /**
+ * Sets the frequency crontab-like specification at which this task should
+ * execute repeatedly.
+ *
+ * @param specification the frequency specification
+ * @throws FrequencyException when an error occurred during the parsing
+ * of the frequency specification
+ * @since 1.0
+ */
public void setFrequencySpecification(String specification)
throws FrequencyException {
if (specification == null) {
@@ -169,12 +311,30 @@ public class Task extends MetaData implements Cloneable {
}
}
+ /**
+ * Sets the frequency crontab-like specification at which this task should
+ * execute repeatedly.
+ *
+ * @param specification the frequency specification
+ * @return this task instance
+ * @throws FrequencyException when an error occurred during the parsing
+ * of the frequency specification
+ * @since 1.0
+ */
public Task frequencySpecification(String specification)
throws FrequencyException {
setFrequencySpecification(specification);
return this;
}
+ /**
+ * Retrieves the frequency specification at which this task should execute
+ * repeatedly.
+ *
+ * @return this task's frequency specification; or
+ * {@code null} if the frequency hasn't been set
+ * @since 1.0
+ */
public String getFrequencySpecification() {
if (frequency_ == null) {
return null;
@@ -182,23 +342,67 @@ public class Task extends MetaData implements Cloneable {
return frequency_.toString();
}
+ /**
+ * Create a new task option for this task.
+ *
+ * Make sure to first add this task to a task manager or scheduler so that
+ * it receives its unique ID. Without this, the task option will not be
+ * properly associated with the task.
+ *
+ * @return the newly created task option.
+ * @since 1.0
+ */
+ public TaskOption createTaskOption() {
+ return new TaskOption().taskId(id_);
+ }
+
+ /**
+ * Sets the unique ID of this task.
+ *
+ * This is intended to be used internally by RIFE2.
+ *
+ * @param id the unique ID of this task.
+ * @since 1.0
+ */
+ public void setId(int id) {
+ id_ = id;
+ }
+
+ /**
+ * Retrieves the unique ID of this task.
+ *
+ * @return this task's unique ID; or
+ * {@code -1} if the ID hasn't been set yet
+ * @since 1.0
+ */
+ public int getId() {
+ return id_;
+ }
+
+ /**
+ * Sets whether the task is currently busy being processed by an {@link Executor}.
+ *
+ * This is intended to be used internally by RIFE2.
+ *
+ * @param busy {@code true} if the task is busy; or
+ * {@code false} otherwise
+ * @since 1.0
+ */
public void setBusy(boolean busy) {
busy_ = busy;
}
- public Task busy(boolean busy) {
- setBusy(busy);
- return this;
- }
-
+ /**
+ * Indicates whether this task is currently being processed by an {@link Executor}.
+ *
+ * @return {@code true} if the task is busy; or
+ * {@code false} otherwise
+ * @since 1.0
+ */
public boolean isBusy() {
return busy_;
}
- public TaskOption createTaskOption() {
- return new TaskOption().taskId(id_);
- }
-
public Task clone()
throws CloneNotSupportedException {
return (Task) super.clone();
diff --git a/lib/src/main/java/rife/scheduler/TaskManager.java b/lib/src/main/java/rife/scheduler/TaskManager.java
index 3831f0a4..5474422a 100644
--- a/lib/src/main/java/rife/scheduler/TaskManager.java
+++ b/lib/src/main/java/rife/scheduler/TaskManager.java
@@ -8,41 +8,172 @@ import rife.scheduler.exceptions.TaskManagerException;
import java.util.Collection;
+/**
+ * This interface defines the methods that classes with
+ * {@code TaskManager} functionalities have to implement.
+ *
+ * @author Geert Bevin (gbevin[remove] at uwyn dot com)
+ * @since 1.0
+ */
public interface TaskManager {
+ /**
+ * Sets the scheduler that uses this task manager.
+ *
+ * @param scheduler this task manager's scheduler
+ * @since 1.0
+ */
void setScheduler(Scheduler scheduler);
+ /**
+ * Retrieves the scheduler of this task manager.
+ *
+ * @return this task manager's scheduler; or
+ * {@code null} if the scheduler hasn't been set
+ * @since 1.0
+ */
Scheduler getScheduler();
+ /**
+ * Adds a new task.
+ *
+ * After the task addition, the unique ID of the task should
+ * be stored in the provided task instance.
+ *
+ * @param task the task to add
+ * @return this unique ID of the added task
+ * @throws TaskManagerException when an error occurred during the task addition
+ * @since 1.0
+ */
int addTask(Task task)
throws TaskManagerException;
+ /**
+ * Update an existing task.
+ *
+ * The task instance should have the unique ID set to be able to
+ * update the existing one.
+ *
+ * @param task the updated task
+ * @return {@code true} if the task was successfully updated; or
+ * {@code false} otherwise
+ * @throws TaskManagerException when an error occurred during the task update
+ * @since 1.0
+ */
boolean updateTask(Task task)
throws TaskManagerException;
+ /**
+ * Retrieves a task from it's unique ID.
+ *
+ * @param id the unique ID of the task to retrieve
+ * @return the retrieved task; or
+ * {@code null} if no such task could be found
+ * @throws TaskManagerException when an error occurred during the task retrieval
+ * @since 1.0
+ */
Task getTask(int id)
throws TaskManagerException;
- Collection getAllTasks()
- throws TaskManagerException;
-
- Collection getTasksToProcess()
- throws TaskManagerException;
-
- Collection getScheduledTasks()
- throws TaskManagerException;
-
+ /**
+ * Remove a task.
+ *
+ * @param id the unique ID of the task to remove
+ * @return {@code true} if the task was successfully removed; or
+ * {@code false} otherwise
+ * @throws TaskManagerException when an error occurred during the task removal
+ * @since 1.0
+ */
boolean removeTask(int id)
throws TaskManagerException;
- boolean rescheduleTask(Task task, long interval, Frequency frequency)
+ /**
+ * Retrieves all the tasks that are registered with this task manager.
+ *
+ * @return a collection of all the task manager tasks
+ * @throws TaskManagerException when an error occurred during the collection of the tasks
+ * @since 1.0
+ */
+ Collection getAllTasks()
throws TaskManagerException;
- boolean concludeTask(Task task)
+ /**
+ * Retrieves the tasks that are not busy and that should be processed
+ * next by the scheduled based on the current time.
+ *
+ * @return a collection of all the tasks that need to be processed
+ * @throws TaskManagerException when an error occurred during the collection of the tasks
+ * @since 1.0
+ */
+ Collection getTasksToProcess()
throws TaskManagerException;
+ /**
+ * Retrieves the tasks that are not busy and that are schedule to
+ * execute some time in the future.
+ *
+ * @return a collection of all the tasks that are scheduled
+ * @throws TaskManagerException when an error occurred during the collection of the tasks
+ * @since 1.0
+ */
+ Collection getScheduledTasks()
+ throws TaskManagerException;
+
+ /**
+ * Reschedule an existing task at a particular timestamp.
+ *
+ * This method will also change the task instance that's provided.
+ *
+ * The task instance should have the unique ID set to be able to
+ * update the existing one.
+ *
+ * @param task the task to reschedule
+ * @param planned the planned timestamp in milliseconds since epoch
+ * @param frequency the new frequency of the task
+ * @return {@code true} if the task was successfully rescheduled; or
+ * {@code false} otherwise
+ * @throws TaskManagerException when an error occurred during the rescheduling of the task
+ * @since 1.0
+ */
+ boolean rescheduleTask(Task task, long planned, Frequency frequency)
+ throws TaskManagerException;
+
+ /**
+ * This method will be called when the scheduler processes a
+ * particular task. While being processed, the task should be set as {@code busy}.
+ *
+ * @param id the unique ID of the task to activate
+ * @return {@code true} if the task was successfully activated; or
+ * {@code false} otherwise
+ * @throws TaskManagerException when an error occurred during the activation of the task
+ * @since 1.0
+ */
boolean activateTask(int id)
throws TaskManagerException;
+ /**
+ * This method will be called when the task is fully done being executed.
+ * The task should be set as not busy.
+ *
+ * @param id the unique ID of the task to activate
+ * @return {@code true} if the task was successfully deactivated; or
+ * {@code false} otherwise
+ * @throws TaskManagerException when an error occurred during the deactivation of the task
+ * @since 1.0
+ */
boolean deactivateTask(int id)
throws TaskManagerException;
+
+ /**
+ * This method will be called by the scheduler when the task has done
+ * processing, any resources should be cleaned up and any task rescheduling, removal
+ * or deactivation should be done by the manager here.
+ *
+ * @param task the task to conclude
+ * @return @{true} when the task was successfully concluded; or
+ * {@code false} otherwise
+ * @throws TaskManagerException when an error occurred during the conclusion of the task
+ * @since 1.0
+ */
+ boolean concludeTask(Task task)
+ throws TaskManagerException;
}
diff --git a/lib/src/main/java/rife/scheduler/TaskOption.java b/lib/src/main/java/rife/scheduler/TaskOption.java
index 906adb6b..b0916210 100644
--- a/lib/src/main/java/rife/scheduler/TaskOption.java
+++ b/lib/src/main/java/rife/scheduler/TaskOption.java
@@ -8,11 +8,25 @@ import rife.validation.Validation;
import rife.validation.ValidationRuleNotNull;
import rife.validation.ValidationRuleRange;
+/**
+ * A task option provides a way to configure an existing task.
+ *
+ * For a task option to be valid, a task ID needs to be associated and
+ * both the task option name and value have to be set.
+ *
+ * @author Geert Bevin (gbevin[remove] at uwyn dot com)
+ * @since 1.0
+ */
public class TaskOption extends Validation implements Cloneable {
private int taskId_ = -1;
private String name_ = null;
private String value_ = null;
+ /**
+ * Create a new task option instance that is not associated with any task.
+ *
+ * @since 1.0
+ */
public TaskOption() {
}
@@ -22,47 +36,105 @@ public class TaskOption extends Validation implements Cloneable {
addRule(new ValidationRuleNotNull("value"));
}
+ /**
+ * Sets the task ID that this task option is associated with.
+ *
+ * @param taskId the associated task ID
+ * @since 1.0
+ */
public void setTaskId(int taskId) {
taskId_ = taskId;
}
+ /**
+ * Sets the task ID that this task option is associated with.
+ *
+ * @param taskId the associated task ID
+ * @return this task option instance
+ * @since 1.0
+ */
public TaskOption taskId(int taskId) {
setTaskId(taskId);
return this;
}
+ /**
+ * Retrieves the task ID this task option is associated with.
+ *
+ * @return the associated task ID; or
+ * {@code -1} when no task has been associated
+ */
public int getTaskId() {
return taskId_;
}
+ /**
+ * Sets the name of this task option.
+ *
+ * @param name this task option's name
+ * @since 1.0
+ */
public void setName(String name) {
if (null == name && 0 == name.length()) throw new IllegalArgumentException("name can't be empty.");
name_ = name;
}
+ /**
+ * Sets the name of this task option.
+ *
+ * @param name this task option's name
+ * @return this task option instance
+ * @since 1.0
+ */
public TaskOption name(String name) {
setName(name);
return this;
}
+ /**
+ * Retrieves the name of this task option.
+ *
+ * @return this task option's name; or
+ * {@code null} if the name hasn't been set yet
+ */
public String getName() {
return name_;
}
+ /**
+ * Sets the value of this task option.
+ *
+ * @param value this task option's value
+ * @since 1.0
+ */
public void setValue(String value) {
value_ = value;
}
- public String getValue() {
- return value_;
- }
-
+ /**
+ * Sets the value of this task option.
+ *
+ * @param value this task option's value
+ * @return this task option instance
+ * @since 1.0
+ */
public TaskOption value(String value) {
setValue(value);
return this;
}
+ /**
+ * Retrieves the value of this task option.
+ *
+ * @return this task option's value; or
+ * {@code null} if the value hasn't been set yet
+ * @since 1.0
+ */
+ public String getValue() {
+ return value_;
+ }
+
public TaskOption clone()
throws CloneNotSupportedException {
return (TaskOption) super.clone();
diff --git a/lib/src/main/java/rife/scheduler/TaskOptionManager.java b/lib/src/main/java/rife/scheduler/TaskOptionManager.java
index 0e3dfa8e..30ee4358 100644
--- a/lib/src/main/java/rife/scheduler/TaskOptionManager.java
+++ b/lib/src/main/java/rife/scheduler/TaskOptionManager.java
@@ -4,30 +4,115 @@
*/
package rife.scheduler;
+import rife.scheduler.exceptions.TaskManagerException;
import rife.scheduler.exceptions.TaskOptionManagerException;
import java.util.Collection;
+/**
+ * This interface defines the methods that classes with
+ * {@code TaskOptionManager} functionalities have to implement.
+ *
+ * @author Geert Bevin (gbevin[remove] at uwyn dot com)
+ * @since 1.0
+ */
public interface TaskOptionManager {
+ /**
+ * Sets the scheduler that uses this task option manager.
+ *
+ * @param scheduler this task option manager's scheduler
+ * @since 1.0
+ */
void setScheduler(Scheduler scheduler);
+ /**
+ * Retrieves the scheduler of this task option manager.
+ *
+ * @return this task option manager's scheduler; or
+ * {@code null} if the scheduler hasn't been set
+ * @since 1.0
+ */
Scheduler getScheduler();
- boolean addTaskOption(TaskOption taskoption)
+ /**
+ * Adds a new task option to a task.
+ *
+ * The provided task option needs to have the appropriate
+ * task ID set, otherwise the addition will fail.
+ *
+ * @param taskOption the task option to add
+ * @return {@code true} when the task option was successfully added; or
+ * {@code false} otherwise
+ * @throws TaskOptionManagerException when an error occurred during the task option addition
+ * @since 1.0
+ */
+ boolean addTaskOption(TaskOption taskOption)
throws TaskOptionManagerException;
- boolean updateTaskOption(TaskOption taskoption)
+ /**
+ * Update an existing task option.
+ *
+ * The provided task option needs to have the appropriate
+ * task ID set, otherwise the update will fail.
+ *
+ * @param taskOption the updated task option
+ * @return {@code true} if the task option was successfully updated; or
+ * {@code false} otherwise
+ * @throws TaskManagerException when an error occurred during the task option update
+ * @since 1.0
+ */
+ boolean updateTaskOption(TaskOption taskOption)
throws TaskOptionManagerException;
+ /**
+ * Retrieves a named task options for a particular task.
+ *
+ * @param taskId the unique ID of the task to retrieve the task option for
+ * @param name the name of the task option
+ * @return the retrieved task option instance; or
+ * {@code null} when the task option couldn't be found
+ * @throws TaskOptionManagerException when an error occurred during the task option retrieval
+ * @since 1.0
+ */
TaskOption getTaskOption(int taskId, String name)
throws TaskOptionManagerException;
+ /**
+ * Retrieves all the task options for a particular task.
+ *
+ * @param taskId the unique ID of the task to retrieve the task options for
+ * @return the retrieved task options collection
+ * @throws TaskOptionManagerException when an error occurred during the task option retrieval
+ * @since 1.0
+ */
Collection getTaskOptions(int taskId)
throws TaskOptionManagerException;
- boolean removeTaskOption(TaskOption taskoption)
+ /**
+ * Remove a particular task option.
+ *
+ * The provided task option needs to have the appropriate
+ * task ID set, otherwise the removal will fail.
+ *
+ * @param taskOption the task option to remove
+ * @return {@code true} when the task option was successfully removed; or
+ * {@code false} otherwise
+ * @throws TaskOptionManagerException when an error occurred during the task option removal
+ * @since 1.0
+ */
+ boolean removeTaskOption(TaskOption taskOption)
throws TaskOptionManagerException;
- boolean removeTaskOption(int taskid, String name)
+ /**
+ * Remove a particular task option.
+ *
+ * @param taskId the unique ID of the task to retrieve the task option for
+ * @param name the name of the task option
+ * @return {@code true} when the task option was successfully removed; or
+ * {@code false} otherwise
+ * @throws TaskOptionManagerException when an error occurred during the task option removal
+ * @since 1.0
+ */
+ boolean removeTaskOption(int taskId, String name)
throws TaskOptionManagerException;
}
diff --git a/lib/src/main/java/rife/scheduler/taskmanagers/DatabaseTasks.java b/lib/src/main/java/rife/scheduler/taskmanagers/DatabaseTasks.java
index 5cc8be53..283c1a2d 100644
--- a/lib/src/main/java/rife/scheduler/taskmanagers/DatabaseTasks.java
+++ b/lib/src/main/java/rife/scheduler/taskmanagers/DatabaseTasks.java
@@ -14,8 +14,7 @@ import rife.scheduler.taskmanagers.exceptions.*;
import java.sql.ResultSet;
import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.Collection;
+import java.util.*;
public abstract class DatabaseTasks extends DbQueryManager implements TaskManager {
private Scheduler scheduler_ = null;
@@ -159,7 +158,7 @@ public abstract class DatabaseTasks extends DbQueryManager implements TaskManage
assert tasks != null;
- return tasks;
+ return Collections.unmodifiableCollection(tasks);
}
protected Collection getTasksToProcess_(Select getTasksToProcess, ProcessTask processTask)
@@ -177,7 +176,7 @@ public abstract class DatabaseTasks extends DbQueryManager implements TaskManage
assert tasks_to_process != null;
- return tasks_to_process;
+ return Collections.unmodifiableCollection(tasks_to_process);
}
protected Collection getScheduledTasks_(Select getScheduledTasks, ProcessTask processTask)
@@ -193,7 +192,7 @@ public abstract class DatabaseTasks extends DbQueryManager implements TaskManage
assert scheduled_tasks != null;
- return scheduled_tasks;
+ return Collections.unmodifiableCollection(scheduled_tasks);
}
protected boolean removeTask_(Delete removeTask, final int id)
@@ -251,7 +250,7 @@ public abstract class DatabaseTasks extends DbQueryManager implements TaskManage
}
try {
- var next_date = task.getNextDate();
+ var next_date = task.getNextTimestamp();
if (next_date >= 0 &&
rescheduleTask(task, next_date, task.getFrequency()) &&
deactivateTask(task.getId())) {
diff --git a/lib/src/main/java/rife/scheduler/taskmanagers/MemoryTasks.java b/lib/src/main/java/rife/scheduler/taskmanagers/MemoryTasks.java
index cfab1737..a78b3686 100644
--- a/lib/src/main/java/rife/scheduler/taskmanagers/MemoryTasks.java
+++ b/lib/src/main/java/rife/scheduler/taskmanagers/MemoryTasks.java
@@ -4,10 +4,7 @@
*/
package rife.scheduler.taskmanagers;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
import rife.scheduler.*;
import rife.scheduler.exceptions.FrequencyException;
@@ -82,7 +79,7 @@ public class MemoryTasks implements TaskManager {
public Collection getAllTasks()
throws TaskManagerException {
synchronized (this) {
- return new ArrayList<>(taskMapping_.values());
+ return Collections.unmodifiableCollection(taskMapping_.values());
}
}
@@ -99,7 +96,7 @@ public class MemoryTasks implements TaskManager {
}
}
- return tasks_to_process;
+ return Collections.unmodifiableCollection(tasks_to_process);
}
public Collection getScheduledTasks()
@@ -115,7 +112,7 @@ public class MemoryTasks implements TaskManager {
}
}
- return scheduled_tasks;
+ return Collections.unmodifiableCollection(scheduled_tasks);
}
public boolean removeTask(int id)
@@ -127,23 +124,23 @@ public class MemoryTasks implements TaskManager {
}
}
- public boolean rescheduleTask(Task task, long newPlanned, Frequency frequency)
+ public boolean rescheduleTask(Task task, long planned, Frequency frequency)
throws TaskManagerException {
if (null == task) throw new IllegalArgumentException("task can't be null.");
- if (newPlanned <= 0) throw new IllegalArgumentException("newPlanned has to be bigger than 0.");
+ if (planned <= 0) throw new IllegalArgumentException("newPlanned has to be bigger than 0.");
var result = false;
Task task_tmp;
try {
task_tmp = task.clone();
- task_tmp.setPlanned(newPlanned);
+ task_tmp.setPlanned(planned);
task_tmp.setFrequency(frequency);
} catch (Throwable e) {
if (null == frequency) {
- throw new RescheduleTaskErrorException(task.getId(), newPlanned, e);
+ throw new RescheduleTaskErrorException(task.getId(), planned, e);
} else {
- throw new RescheduleTaskErrorException(task.getId(), newPlanned, frequency, e);
+ throw new RescheduleTaskErrorException(task.getId(), planned, frequency, e);
}
}
result = updateTask(task_tmp);
@@ -163,7 +160,7 @@ public class MemoryTasks implements TaskManager {
}
try {
- var next_date = task.getNextDate();
+ var next_date = task.getNextTimestamp();
if (next_date >= 0 &&
rescheduleTask(task, next_date, task.getFrequency()) &&
deactivateTask(task.getId())) {
diff --git a/lib/src/main/java/rife/scheduler/taskmanagers/databasedrivers/generic.java b/lib/src/main/java/rife/scheduler/taskmanagers/databasedrivers/generic.java
index ebdf33ee..8e97f659 100644
--- a/lib/src/main/java/rife/scheduler/taskmanagers/databasedrivers/generic.java
+++ b/lib/src/main/java/rife/scheduler/taskmanagers/databasedrivers/generic.java
@@ -162,9 +162,9 @@ public class generic extends DatabaseTasks {
return removeTask_(removeTask_, id);
}
- public boolean rescheduleTask(Task task, long interval, Frequency frequency)
+ public boolean rescheduleTask(Task task, long planned, Frequency frequency)
throws TaskManagerException {
- return rescheduleTask_(task, interval, frequency);
+ return rescheduleTask_(task, planned, frequency);
}
public boolean concludeTask(Task task)
diff --git a/lib/src/main/java/rife/scheduler/taskoptionmanagers/DatabaseTaskOptions.java b/lib/src/main/java/rife/scheduler/taskoptionmanagers/DatabaseTaskOptions.java
index 48e1281d..0256d95d 100644
--- a/lib/src/main/java/rife/scheduler/taskoptionmanagers/DatabaseTaskOptions.java
+++ b/lib/src/main/java/rife/scheduler/taskoptionmanagers/DatabaseTaskOptions.java
@@ -19,8 +19,7 @@ import rife.scheduler.exceptions.TaskOptionManagerException;
import java.sql.ResultSet;
import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.Collection;
+import java.util.*;
public abstract class DatabaseTaskOptions extends DbQueryManager implements TaskOptionManager {
private Scheduler scheduler_ = null;
@@ -73,7 +72,7 @@ public abstract class DatabaseTaskOptions extends DbQueryManager implements Task
throws TaskOptionManagerException {
assert addTaskOption != null;
- if (null == taskoption) throw new IllegalArgumentException("taskoption can't be null.");
+ if (null == taskoption) throw new IllegalArgumentException("taskOption can't be null.");
var result = false;
@@ -93,7 +92,7 @@ public abstract class DatabaseTaskOptions extends DbQueryManager implements Task
throws TaskOptionManagerException {
assert updateTaskOption != null;
- if (null == taskoption) throw new IllegalArgumentException("taskoption can't be null.");
+ if (null == taskoption) throw new IllegalArgumentException("taskOption can't be null.");
var result = false;
try {
@@ -112,7 +111,7 @@ public abstract class DatabaseTaskOptions extends DbQueryManager implements Task
throws TaskOptionManagerException {
assert getTaskOption != null;
- if (taskId < 0) throw new IllegalArgumentException("taskid can't be negative.");
+ if (taskId < 0) throw new IllegalArgumentException("taskId can't be negative.");
if (null == name) throw new IllegalArgumentException("name can't be null.");
if (0 == name.length()) throw new IllegalArgumentException("name can't be empty.");
@@ -134,7 +133,7 @@ public abstract class DatabaseTaskOptions extends DbQueryManager implements Task
throws TaskOptionManagerException {
assert getTaskOptions != null;
- if (taskId < 0) throw new IllegalArgumentException("taskid can't be negative.");
+ if (taskId < 0) throw new IllegalArgumentException("taskId can't be negative.");
var task_options = new ArrayList();
processTaskOption.setCollection(task_options);
@@ -147,12 +146,12 @@ public abstract class DatabaseTaskOptions extends DbQueryManager implements Task
assert task_options != null;
- return task_options;
+ return Collections.unmodifiableCollection(task_options);
}
protected boolean _removeTaskOption(Delete removeTaskOption, TaskOption taskoption)
throws TaskOptionManagerException {
- if (null == taskoption) throw new IllegalArgumentException("taskoption can't be null.");
+ if (null == taskoption) throw new IllegalArgumentException("taskOption can't be null.");
return _removeTaskOption(removeTaskOption, taskoption.getTaskId(), taskoption.getName());
}
@@ -161,7 +160,7 @@ public abstract class DatabaseTaskOptions extends DbQueryManager implements Task
throws TaskOptionManagerException {
assert removeTaskOption != null;
- if (taskId < 0) throw new IllegalArgumentException("taskid can't be negative.");
+ if (taskId < 0) throw new IllegalArgumentException("taskId can't be negative.");
if (null == name) throw new IllegalArgumentException("name can't be null.");
if (0 == name.length()) throw new IllegalArgumentException("name can't be empty.");
diff --git a/lib/src/main/java/rife/scheduler/taskoptionmanagers/MemoryTaskOptions.java b/lib/src/main/java/rife/scheduler/taskoptionmanagers/MemoryTaskOptions.java
index 03a5890b..2a1a2980 100644
--- a/lib/src/main/java/rife/scheduler/taskoptionmanagers/MemoryTaskOptions.java
+++ b/lib/src/main/java/rife/scheduler/taskoptionmanagers/MemoryTaskOptions.java
@@ -4,10 +4,7 @@
*/
package rife.scheduler.taskoptionmanagers;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
import rife.scheduler.Scheduler;
import rife.scheduler.TaskOption;
@@ -35,15 +32,15 @@ public class MemoryTaskOptions implements TaskOptionManager {
return scheduler_;
}
- public boolean addTaskOption(TaskOption taskoption)
+ public boolean addTaskOption(TaskOption taskOption)
throws TaskOptionManagerException {
- if (null == taskoption) throw new IllegalArgumentException("taskoption can't be null.");
- if (taskoption.getTaskId() < 0) throw new IllegalArgumentException("the task id is required.");
+ if (null == taskOption) throw new IllegalArgumentException("taskOption can't be null.");
+ if (taskOption.getTaskId() < 0) throw new IllegalArgumentException("the task id is required.");
synchronized (this) {
TaskOption cloned_taskoption = null;
try {
- cloned_taskoption = taskoption.clone();
+ cloned_taskoption = taskOption.clone();
} catch (CloneNotSupportedException e) {
throw new AddTaskOptionErrorException(cloned_taskoption, e);
}
@@ -80,15 +77,15 @@ public class MemoryTaskOptions implements TaskOptionManager {
}
}
- public boolean updateTaskOption(TaskOption taskoption)
+ public boolean updateTaskOption(TaskOption taskOption)
throws TaskOptionManagerException {
- if (null == taskoption) throw new IllegalArgumentException("taskoption can't be null.");
- if (taskoption.getTaskId() < 0) throw new IllegalArgumentException("the task id is required.");
+ if (null == taskOption) throw new IllegalArgumentException("taskOption can't be null.");
+ if (taskOption.getTaskId() < 0) throw new IllegalArgumentException("the task id is required.");
synchronized (this) {
TaskOption cloned_taskoption = null;
try {
- cloned_taskoption = taskoption.clone();
+ cloned_taskoption = taskOption.clone();
} catch (CloneNotSupportedException e) {
throw new AddTaskOptionErrorException(cloned_taskoption, e);
}
@@ -104,15 +101,15 @@ public class MemoryTaskOptions implements TaskOptionManager {
// get the task options for the same task id
var task_id = cloned_taskoption.getTaskId();
- var taskoptions = taskOptionsMapping_.get(task_id);
- if (null == taskoptions) {
+ var task_options = taskOptionsMapping_.get(task_id);
+ if (null == task_options) {
return false;
}
// obtain the task option with same name
TaskOption task_option_to_remove = null;
- for (var taskoption_to_check : taskoptions) {
- if (taskoption_to_check.getName().equals(cloned_taskoption.getName())) {
- task_option_to_remove = taskoption_to_check;
+ for (var task_option_to_check : task_options) {
+ if (task_option_to_check.getName().equals(cloned_taskoption.getName())) {
+ task_option_to_remove = task_option_to_check;
break;
}
}
@@ -122,9 +119,9 @@ public class MemoryTaskOptions implements TaskOptionManager {
return false;
}
- // remove the old taskoption and store the new one
- taskoptions.remove(task_option_to_remove);
- taskoptions.add(cloned_taskoption);
+ // remove the old task option and store the new one
+ task_options.remove(task_option_to_remove);
+ task_options.add(cloned_taskoption);
return true;
}
@@ -158,15 +155,15 @@ public class MemoryTaskOptions implements TaskOptionManager {
if (taskId < 0) throw new IllegalArgumentException("taskId can't be negative.");
synchronized (this) {
- return taskOptionsMapping_.get(taskId);
+ return Collections.unmodifiableCollection(taskOptionsMapping_.get(taskId));
}
}
- public boolean removeTaskOption(TaskOption taskoption)
+ public boolean removeTaskOption(TaskOption taskOption)
throws TaskOptionManagerException {
- if (null == taskoption) throw new IllegalArgumentException("taskoption can't be null.");
+ if (null == taskOption) throw new IllegalArgumentException("taskOption can't be null.");
- return removeTaskOption(taskoption.getTaskId(), taskoption.getName());
+ return removeTaskOption(taskOption.getTaskId(), taskOption.getName());
}
public boolean removeTaskOption(int taskId, String name)
diff --git a/lib/src/main/java/rife/scheduler/taskoptionmanagers/databasedrivers/com_mysql_cj_jdbc_Driver.java b/lib/src/main/java/rife/scheduler/taskoptionmanagers/databasedrivers/com_mysql_cj_jdbc_Driver.java
index 056e4c76..c69f2b1d 100644
--- a/lib/src/main/java/rife/scheduler/taskoptionmanagers/databasedrivers/com_mysql_cj_jdbc_Driver.java
+++ b/lib/src/main/java/rife/scheduler/taskoptionmanagers/databasedrivers/com_mysql_cj_jdbc_Driver.java
@@ -36,38 +36,38 @@ public class com_mysql_cj_jdbc_Driver extends generic {
.whereParameter("id", "=");
}
- public boolean addTaskOption(final TaskOption taskoption)
+ public boolean addTaskOption(final TaskOption taskOption)
throws TaskOptionManagerException {
- if (null == taskoption) throw new IllegalArgumentException("taskoption can't be null.");
+ if (null == taskOption) throw new IllegalArgumentException("taskoption can't be null.");
// simulate TaskID foreign key
try {
if (!executeHasResultRows(taskIdExists_, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement) {
statement
- .setInt("id", taskoption.getTaskId());
+ .setInt("id", taskOption.getTaskId());
}
})) {
- throw new InexistentTaskIdException(taskoption.getTaskId());
+ throw new InexistentTaskIdException(taskOption.getTaskId());
}
} catch (DatabaseException e) {
- throw new AddTaskOptionErrorException(taskoption, e);
+ throw new AddTaskOptionErrorException(taskOption, e);
}
try {
return _addTaskOption(addTaskOption_, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement) {
statement
- .setInt("task_id", taskoption.getTaskId())
- .setString("name", taskoption.getName())
- .setString("val", taskoption.getValue());
+ .setInt("task_id", taskOption.getTaskId())
+ .setString("name", taskOption.getName())
+ .setString("val", taskOption.getValue());
}
- }, taskoption);
+ }, taskOption);
} catch (TaskOptionManagerException e) {
if (null != e.getCause() &&
null != e.getCause().getCause()) {
if (-1 != e.getCause().getCause().getMessage().toLowerCase().indexOf("duplicate")) {
- throw new DuplicateTaskOptionException(taskoption.getTaskId(), taskoption.getName());
+ throw new DuplicateTaskOptionException(taskOption.getTaskId(), taskOption.getName());
}
}
@@ -75,38 +75,38 @@ public class com_mysql_cj_jdbc_Driver extends generic {
}
}
- public boolean updateTaskOption(final TaskOption taskoption)
+ public boolean updateTaskOption(final TaskOption taskOption)
throws TaskOptionManagerException {
- if (null == taskoption) throw new IllegalArgumentException("taskoption can't be null.");
+ if (null == taskOption) throw new IllegalArgumentException("taskoption can't be null.");
// simulate TaskID foreign key
try {
if (!executeHasResultRows(taskIdExists_, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement) {
statement
- .setInt("id", taskoption.getTaskId());
+ .setInt("id", taskOption.getTaskId());
}
})) {
- throw new InexistentTaskIdException(taskoption.getTaskId());
+ throw new InexistentTaskIdException(taskOption.getTaskId());
}
} catch (DatabaseException e) {
- throw new UpdateTaskOptionErrorException(taskoption, e);
+ throw new UpdateTaskOptionErrorException(taskOption, e);
}
try {
return _updateTaskOption(updateTaskOption_, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement) {
statement
- .setInt("task_id", taskoption.getTaskId())
- .setString("name", taskoption.getName())
- .setString("val", taskoption.getValue());
+ .setInt("task_id", taskOption.getTaskId())
+ .setString("name", taskOption.getName())
+ .setString("val", taskOption.getValue());
}
- }, taskoption);
+ }, taskOption);
} catch (TaskOptionManagerException e) {
if (null != e.getCause() &&
null != e.getCause().getCause()) {
if (e.getCause().getCause().getMessage().toLowerCase().contains("duplicate")) {
- throw new DuplicateTaskOptionException(taskoption.getTaskId(), taskoption.getName());
+ throw new DuplicateTaskOptionException(taskOption.getTaskId(), taskOption.getName());
}
}
diff --git a/lib/src/main/java/rife/scheduler/taskoptionmanagers/databasedrivers/generic.java b/lib/src/main/java/rife/scheduler/taskoptionmanagers/databasedrivers/generic.java
index fb172687..d1eb40e7 100644
--- a/lib/src/main/java/rife/scheduler/taskoptionmanagers/databasedrivers/generic.java
+++ b/lib/src/main/java/rife/scheduler/taskoptionmanagers/databasedrivers/generic.java
@@ -78,25 +78,25 @@ public class generic extends DatabaseTaskOptions {
return remove_(dropTableTaskOption_);
}
- public boolean addTaskOption(final TaskOption taskoption)
+ public boolean addTaskOption(final TaskOption taskOption)
throws TaskOptionManagerException {
try {
return _addTaskOption(addTaskOption_, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement) {
statement
- .setInt("task_id", taskoption.getTaskId())
- .setString("name", taskoption.getName())
- .setString("val", taskoption.getValue());
+ .setInt("task_id", taskOption.getTaskId())
+ .setString("name", taskOption.getName())
+ .setString("val", taskOption.getValue());
}
- }, taskoption);
+ }, taskOption);
} catch (TaskOptionManagerException e) {
if (null != e.getCause() &&
null != e.getCause().getCause()) {
String message = e.getCause().getCause().getMessage().toUpperCase();
if (message.contains(createTableTaskOption_.getForeignKeys().get(0).getName())) {
- throw new InexistentTaskIdException(taskoption.getTaskId());
+ throw new InexistentTaskIdException(taskOption.getTaskId());
} else if (message.contains(createTableTaskOption_.getPrimaryKeys().get(0).getName())) {
- throw new DuplicateTaskOptionException(taskoption.getTaskId(), taskoption.getName());
+ throw new DuplicateTaskOptionException(taskOption.getTaskId(), taskOption.getName());
}
}
@@ -104,25 +104,25 @@ public class generic extends DatabaseTaskOptions {
}
}
- public boolean updateTaskOption(final TaskOption taskoption)
+ public boolean updateTaskOption(final TaskOption taskOption)
throws TaskOptionManagerException {
try {
return _updateTaskOption(updateTaskOption_, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement) {
statement
- .setInt("task_id", taskoption.getTaskId())
- .setString("name", taskoption.getName())
- .setString("val", taskoption.getValue());
+ .setInt("task_id", taskOption.getTaskId())
+ .setString("name", taskOption.getName())
+ .setString("val", taskOption.getValue());
}
- }, taskoption);
+ }, taskOption);
} catch (TaskOptionManagerException e) {
if (null != e.getCause() &&
null != e.getCause().getCause()) {
String message = e.getCause().getCause().getMessage().toUpperCase();
if (message.contains(createTableTaskOption_.getForeignKeys().get(0).getName())) {
- throw new InexistentTaskIdException(taskoption.getTaskId());
+ throw new InexistentTaskIdException(taskOption.getTaskId());
} else if (message.contains(createTableTaskOption_.getPrimaryKeys().get(0).getName())) {
- throw new DuplicateTaskOptionException(taskoption.getTaskId(), taskoption.getName());
+ throw new DuplicateTaskOptionException(taskOption.getTaskId(), taskOption.getName());
}
}
@@ -140,9 +140,9 @@ public class generic extends DatabaseTaskOptions {
return _getTaskOptions(getTaskOptions_, new ProcessTaskOption(), taskId);
}
- public boolean removeTaskOption(TaskOption taskoption)
+ public boolean removeTaskOption(TaskOption taskOption)
throws TaskOptionManagerException {
- return _removeTaskOption(removeTaskOption_, taskoption);
+ return _removeTaskOption(removeTaskOption_, taskOption);
}
public boolean removeTaskOption(int taskId, String name)
diff --git a/lib/src/test/java/rife/scheduler/TestFrequency.java b/lib/src/test/java/rife/scheduler/TestFrequency.java
index ce72fd88..8cd3e85e 100644
--- a/lib/src/test/java/rife/scheduler/TestFrequency.java
+++ b/lib/src/test/java/rife/scheduler/TestFrequency.java
@@ -1290,119 +1290,119 @@ public class TestFrequency {
frequency = new Frequency("* * * * *");
previous = calendar_time;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(minute, next - previous);
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(minute, next - previous);
frequency = new Frequency("28 * * * *"); // 2002/09/01 10:29
previous = calendar_time;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(59 * minute, next - previous); // 2002/09/01 11:28
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(hour, next - previous); // 2002/09/01 12:28
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(hour, next - previous); // 2002/09/01 13:28
frequency = new Frequency("*/3 * * * *"); // 2002/09/01 10:29
previous = calendar_time;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(minute, next - previous); // 2002/09/01 10:30
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(3 * minute, next - previous); // 2002/09/01 10:33
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(3 * minute, next - previous); // 2002/09/01 10:36
frequency = new Frequency("28-56/7 * * * *"); // 2002/09/01 10:29
previous = calendar_time;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(6 * minute, next - previous); // 2002/09/01 10:35
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(7 * minute, next - previous); // 2002/09/01 10:42
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(7 * minute, next - previous); // 2002/09/01 10:49
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(7 * minute, next - previous); // 2002/09/01 10:56
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(32 * minute, next - previous); // 2002/09/01 11:28
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(7 * minute, next - previous); // 2002/09/01 11:35
frequency = new Frequency("56-40/13 * * * *"); // 2002/09/01 10:29
previous = calendar_time;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(6 * minute, next - previous); // 2002/09/01 10:35
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(21 * minute, next - previous); // 2002/09/01 10:56
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(13 * minute, next - previous); // 2002/09/01 11:09
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(13 * minute, next - previous); // 2002/09/01 11:22
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(13 * minute, next - previous); // 2002/09/01 11:35
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(21 * minute, next - previous); // 2002/09/01 11:56
frequency = new Frequency("31,37-57/4,59-4,7 * * * *"); // 2002/09/01 10:29
previous = calendar_time;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(2 * minute, next - previous); // 2002/09/01 10:31
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(6 * minute, next - previous); // 2002/09/01 10:37
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(4 * minute, next - previous); // 2002/09/01 10:41
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(4 * minute, next - previous); // 2002/09/01 10:45
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(4 * minute, next - previous); // 2002/09/01 10:49
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(4 * minute, next - previous); // 2002/09/01 10:53
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(4 * minute, next - previous); // 2002/09/01 10:57
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(2 * minute, next - previous); // 2002/09/01 10:59
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(minute, next - previous); // 2002/09/01 11:00
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(minute, next - previous); // 2002/09/01 11:01
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(minute, next - previous); // 2002/09/01 11:02
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(minute, next - previous); // 2002/09/01 11:03
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(minute, next - previous); // 2002/09/01 11:04
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(3 * minute, next - previous); // 2002/09/01 11:07
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(24 * minute, next - previous); // 2002/09/01 11:31
} catch (FrequencyException e) {
fail(ExceptionUtils.getExceptionStackTrace(e));
@@ -1425,113 +1425,113 @@ public class TestFrequency {
frequency = new Frequency("*/30 13 * * *"); // 2002/09/01 10:29
previous = calendar_time;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(2 * hour + 31 * minute, next - previous); // 2002/09/01 13:00
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(30 * minute, next - previous); // 2002/09/01 13:30
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(day - (30 * minute), next - previous); // 2002/09/02 13:00
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(30 * minute, next - previous); // 2002/09/02 13:30
frequency = new Frequency("10 13 * * *"); // 2002/09/01 10:29
previous = calendar_time;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(2 * hour + 41 * minute, next - previous); // 2002/09/01 13:10
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(day, next - previous); // 2002/09/02 13:10
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(day, next - previous); // 2002/09/03 13:10
frequency = new Frequency("34 */5 * * *"); // 2002/09/01 10:29
previous = calendar_time;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(5 * minute, next - previous); // 2002/09/01 10:34
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(5 * hour, next - previous); // 2002/09/02 15:34
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(5 * hour, next - previous); // 2002/09/02 20:34
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(4 * hour, next - previous); // 2002/09/03 00:34
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(5 * hour, next - previous); // 2002/09/03 05:34
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(5 * hour, next - previous); // 2002/09/03 10:34
frequency = new Frequency("13 7-23/7 * * *"); // 2002/09/01 10:29
previous = calendar_time;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(31 * minute + 3 * hour + 13 * minute, next - previous); // 2002/09/01 14:13
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(7 * hour, next - previous); // 2002/09/02 21:13
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(10 * hour, next - previous); // 2002/09/03 07:13
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(7 * hour, next - previous); // 2002/09/03 14:13
frequency = new Frequency("48 18-7/3 * * *"); // 2002/09/01 10:29
previous = calendar_time;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(31 * minute + 7 * hour + 48 * minute, next - previous); // 2002/09/01 18:48
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(3 * hour, next - previous); // 2002/09/01 21:48
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(3 * hour, next - previous); // 2002/09/02 00:48
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(3 * hour, next - previous); // 2002/09/02 03:48
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(3 * hour, next - previous); // 2002/09/02 06:48
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(12 * hour, next - previous); // 2002/09/02 18:48
frequency = new Frequency("14 2,4-7,10-18/3,21-0/3 * * *"); // 2002/09/01 10:29
previous = calendar_time;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(31 * minute + 2 * hour + 14 * minute, next - previous); // 2002/09/01 13:14
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(3 * hour, next - previous); // 2002/09/01 16:14
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(5 * hour, next - previous); // 2002/09/01 21:14
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(3 * hour, next - previous); // 2002/09/02 00:14
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(2 * hour, next - previous); // 2002/09/02 02:14
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(2 * hour, next - previous); // 2002/09/02 04:14
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(hour, next - previous); // 2002/09/02 05:14
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(hour, next - previous); // 2002/09/02 06:14
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(hour, next - previous); // 2002/09/02 07:14
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(3 * hour, next - previous); // 2002/09/02 10:14
} catch (FrequencyException e) {
fail(ExceptionUtils.getExceptionStackTrace(e));
@@ -1554,109 +1554,109 @@ public class TestFrequency {
frequency = new Frequency("*/30 */12 6 * *"); // 2002/09/01 10:29
previous = calendar_time;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(31 * minute + 13 * hour + 4 * day, next - previous); // 2002/09/06 00:00
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(30 * minute, next - previous); // 2002/09/06 00:30
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(30 * minute + 11 * hour, next - previous); // 2002/09/06 12:00
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(30 * minute, next - previous); // 2002/09/06 12:30
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(30 * minute + 11 * hour + 29 * day, next - previous); // 2002/10/06 00:00
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(30 * minute, next - previous); // 2002/10/06 00:30
frequency = new Frequency("19 10 */11 * *"); // 2002/09/01 10:29
previous = calendar_time;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(11 * day - 10 * minute, next - previous); // 2002/09/12 10:19
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(11 * day, next - previous); // 2002/09/23 10:19
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(8 * day, next - previous); // 2002/10/01 10:19
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(11 * day, next - previous); // 2002/10/12 10:19
frequency = new Frequency("57 10 6-18/5 * *"); // 2002/09/01 10:29
previous = calendar_time;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(28 * minute + 5 * day, next - previous); // 2002/09/06 10:57
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(5 * day, next - previous); // 2002/09/11 10:57
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(5 * day, next - previous); // 2002/09/16 10:57
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(20 * day, next - previous); // 2002/10/06 10:57
frequency = new Frequency("24 19 27-9/4 * *"); // 2002/09/01 10:29
previous = calendar_time;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(9 * hour - 5 * minute + 3 * day, next - previous); // 2002/09/04 19:24
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(4 * day, next - previous); // 2002/09/08 19:24
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(19 * day, next - previous); // 2002/09/27 19:24
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(4 * day, next - previous); // 2002/10/01 19:24
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(4 * day, next - previous); // 2002/10/05 19:24
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(4 * day, next - previous); // 2002/10/09 19:24
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(18 * day + hour, next - previous); // 2002/10/27 19:24 (daylight savings)
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(4 * day, next - previous); // 2002/10/31 19:24
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(4 * day, next - previous); // 2002/11/04 19:24
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(4 * day, next - previous); // 2002/11/08 19:24
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(19 * day, next - previous); // 2002/11/27 19:24
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(4 * day, next - previous); // 2002/12/01 19:24
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(4 * day, next - previous); // 2002/12/05 19:24
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(4 * day, next - previous); // 2002/12/09 19:24
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(18 * day, next - previous); // 2002/12/27 19:24
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(4 * day, next - previous); // 2002/12/31 19:24
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(4 * day, next - previous); // 2003/01/04 19:24
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(4 * day, next - previous); // 2003/01/08 19:24
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(19 * day, next - previous); // 2003/01/27 19:24
calendar.set(2002, Calendar.APRIL, 28, 8, 15);
@@ -1664,19 +1664,19 @@ public class TestFrequency {
frequency = new Frequency("30 9 29-4/3 * *"); // 2002/04/28 08:15
previous = calendar_time;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(15 * minute + hour + day, next - previous); // 2002/04/29 09:30
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(3 * day, next - previous); // 2002/04/02 09:30
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(27 * day, next - previous); // 2002/04/29 09:30
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(3 * day, next - previous); // 2002/05/01 09:30
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(3 * day, next - previous); // 2002/05/04 09:30
calendar.set(2002, Calendar.FEBRUARY, 1, 8, 15);
@@ -1684,28 +1684,28 @@ public class TestFrequency {
frequency = new Frequency("30 8 18-10/9 * *"); // 2002/02/01 08:15
previous = calendar_time;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(15 * minute + 4 * day, next - previous); // 2002/02/05 08:30
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(13 * day, next - previous); // 2002/02/18 08:30
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(9 * day, next - previous); // 2002/02/27 08:30
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(9 * day, next - previous); // 2002/03/08 08:30
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(10 * day, next - previous); // 2002/03/18 08:30
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(9 * day, next - previous); // 2002/03/27 08:30
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(9 * day - hour, next - previous); // 2002/04/05 08:30 (daylight savings)
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(13 * day, next - previous); // 2002/04/18 08:30
calendar.set(2004, Calendar.FEBRUARY, 1, 8, 15);
@@ -1713,105 +1713,105 @@ public class TestFrequency {
frequency = new Frequency("30 8 18-10/9 * *"); // 2004/02/01 08:15
previous = calendar_time;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(15 * minute + 4 * day, next - previous); // 2004/02/05 08:30
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(13 * day, next - previous); // 2004/02/18 08:30
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(9 * day, next - previous); // 2004/02/27 08:30
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(9 * day, next - previous); // 2004/03/07 08:30 (leap year)
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(11 * day, next - previous); // 2004/03/18 08:30
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(9 * day, next - previous); // 2004/03/27 08:30
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(9 * day - hour, next - previous); // 2004/04/05 08:30 (daylight savings)
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(13 * day, next - previous); // 2004/04/18 08:30
frequency = new Frequency("15 7 6,9-12,15-27/4,26-4/3 * *"); // 2004/02/01 08:15
previous = calendar_time;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(3 * day - hour, next - previous); // 2004/02/04 07:15
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(2 * day, next - previous); // 2004/02/06 07:15
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(3 * day, next - previous); // 2004/02/09 07:15
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(day, next - previous); // 2004/02/10 07:15
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(day, next - previous); // 2004/02/11 07:15
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(day, next - previous); // 2004/02/12 07:15
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(3 * day, next - previous); // 2004/02/15 07:15
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(4 * day, next - previous); // 2004/02/19 07:15
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(4 * day, next - previous); // 2004/02/23 07:15
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(3 * day, next - previous); // 2004/02/26 07:15
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(day, next - previous); // 2004/02/27 07:15
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(2 * day, next - previous); // 2004/02/29 07:15
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(3 * day, next - previous); // 2004/03/03 07:15 (leap year)
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(3 * day, next - previous); // 2004/03/06 07:15
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(3 * day, next - previous); // 2004/03/09 07:15
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(day, next - previous); // 2004/03/10 07:15
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(day, next - previous); // 2004/03/11 07:15
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(day, next - previous); // 2004/03/12 07:15
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(3 * day, next - previous); // 2004/03/15 07:15
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(4 * day, next - previous); // 2004/03/19 07:15
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(4 * day, next - previous); // 2004/03/23 07:15
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(3 * day, next - previous); // 2004/03/26 07:15
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(day, next - previous); // 2004/03/27 07:15
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(2 * day - hour, next - previous); // 2004/03/29 07:15 (daylight savings)
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(3 * day, next - previous); // 2004/04/01 07:15
calendar.set(2003, Calendar.DECEMBER, 20, 17, 10);
@@ -1819,25 +1819,25 @@ public class TestFrequency {
frequency = new Frequency("20 19 20-10/5 * *"); // 2003/12/20 17:10
previous = calendar_time;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(10 * minute + 2 * hour, next - previous); // 2003/12/20 19:20
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(5 * day, next - previous); // 2003/12/25 19:20
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(5 * day, next - previous); // 2003/12/30 19:20
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(5 * day, next - previous); // 2004/01/04 19:20
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(5 * day, next - previous); // 2004/01/09 19:20
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(11 * day, next - previous); // 2004/01/20 19:20
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(5 * day, next - previous); // 2004/01/25 19:20
} catch (FrequencyException e) {
fail(ExceptionUtils.getExceptionStackTrace(e));
@@ -1860,114 +1860,114 @@ public class TestFrequency {
frequency = new Frequency("*/30 */12 */20 10 *"); // 2002/09/01 10:29
previous = calendar_time;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(31 * minute + 13 * hour + 29 * day, next - previous); // 2002/10/01 00:00
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(30 * minute, next - previous); // 2002/10/01 00:30
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(30 * minute + 11 * hour, next - previous); // 2002/10/01 12:00
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(30 * minute, next - previous); // 2002/10/01 12:30
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(30 * minute + 11 * hour + 19 * day, next - previous); // 2002/10/21 00:00
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(30 * minute, next - previous); // 2002/10/21 00:30
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(30 * minute + 11 * hour, next - previous); // 2002/10/21 12:00
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(30 * minute, next - previous); // 2002/10/21 12:30
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(30 * minute + 11 * hour + 344 * day, next - previous); // 2003/10/01 00:00
frequency = new Frequency("10 19 7 */4 *"); // 2002/09/01 10:29
previous = calendar_time;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(31 * minute + 8 * hour + 6 * day + 10 * minute, next - previous); // 2002/09/07 19:10
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals((30 + 31 + 30 + 31) * day + hour, next - previous); // 2003/01/07 19:10 (daylight savings)
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals((31 + 28 + 31 + 30) * day - hour, next - previous); // 2003/05/07 19:10 (daylight savings)
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals((31 + 30 + 31 + 31) * day, next - previous); // 2003/09/07 19:10
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals((30 + 31 + 30 + 31) * day + hour, next - previous); // 2004/01/07 19:10 (daylight savings)
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals((31 + 29 + 31 + 30) * day - hour, next - previous); // 2004/05/07 19:10 (daylight savings)
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals((31 + 30 + 31 + 31) * day, next - previous); // 2003/09/07 19:10
frequency = new Frequency("50 06 18 4-11/3 *"); // 2002/09/01 10:29
previous = calendar_time;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(31 * minute + 13 * hour + (29 + 17) * day + 6 * hour + 50 * minute, next - previous); // 2002/10/18 06:50
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals((31 + 30 + 31 + 31 + 28 + 31) * day, next - previous); // 2003/04/18 06:50
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals((30 + 31 + 30) * day, next - previous); // 2003/07/18 06:50
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals((31 + 31 + 30) * day, next - previous); // 2003/10/18 06:50
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals((31 + 30 + 31 + 31 + 29 + 31) * day, next - previous); // 2004/04/18 06:50
frequency = new Frequency("15 12 06 8-4/3 *"); // 2002/09/01 10:29
previous = calendar_time;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(31 * minute + (5 + 30 + 31) * day + hour + 15 * minute + hour, next - previous); // 2002/11/06 12:15 (daylight savings)
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals((30 + 31 + 31) * day, next - previous); // 2003/02/06 12:15
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals((28 + 31 + 30 + 31 + 30 + 31) * day - hour, next - previous); // 2003/08/06 12:15 (daylight savings)
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals((31 + 30 + 31) * day + hour, next - previous); // 2003/11/06 12:15 (daylight savings)
frequency = new Frequency("40 11 27 2,5-6,11-4/2 *"); // 2002/09/01 10:29
previous = calendar_time;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(11 * minute + hour + (26 + 30 + 31) * day + hour, next - previous); // 2002/11/27 11:40
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals((30 + 31) * day, next - previous); // 2003/01/27 11:40
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(31 * day, next - previous); // 2003/02/27 11:40
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(28 * day, next - previous); // 2003/03/27 11:40
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals((31 + 30) * day - hour, next - previous); // 2003/05/27 11:40 (daylight savings)
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(31 * day, next - previous); // 2003/06/27 11:40
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals((30 + 31 + 31 + 30 + 31) * day + hour, next - previous); // 2003/11/27 11:40
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals((30 + 31) * day, next - previous); // 2004/01/27 11:40
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(31 * day, next - previous); // 2004/02/27 11:40
} catch (FrequencyException e) {
fail(ExceptionUtils.getExceptionStackTrace(e));
@@ -1990,28 +1990,28 @@ public class TestFrequency {
frequency = new Frequency("30 12 * 10 1"); // 2002/09/01 10:29
previous = calendar_time;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(minute + 30 * day + 6 * day + 2 * hour, next - previous); // 2002/10/07 12:30
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(7 * day, next - previous); // 2002/10/14 12:30
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(7 * day, next - previous); // 2002/10/21 12:30
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(7 * day + hour, next - previous); // 2002/10/28 12:30 (daylight savings)
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(365 * day - 22 * day - hour, next - previous); // 2003/10/06 12:30 (daylight savings)
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(7 * day, next - previous); // 2003/10/13 12:30
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(7 * day, next - previous); // 2003/10/20 12:30
previous = next;
- next = frequency.getNextDate(previous);
+ next = frequency.getNextTimestamp(previous);
assertEquals(7 * day + hour, next - previous); // 2003/10/27 12:30 (daylight savings)
} catch (FrequencyException e) {
fail(ExceptionUtils.getExceptionStackTrace(e));
@@ -2028,7 +2028,7 @@ public class TestFrequency {
frequency = new Frequency("* * 31 2 *");
try {
- frequency.getNextDate(calendar_time);
+ frequency.getNextTimestamp(calendar_time);
fail();
} catch (FrequencyException e) {
assertTrue(true);
diff --git a/lib/src/test/java/rife/scheduler/taskmanagers/TestMemoryTasks.java b/lib/src/test/java/rife/scheduler/taskmanagers/TestMemoryTasks.java
index 34b2813d..07981b69 100644
--- a/lib/src/test/java/rife/scheduler/taskmanagers/TestMemoryTasks.java
+++ b/lib/src/test/java/rife/scheduler/taskmanagers/TestMemoryTasks.java
@@ -35,7 +35,8 @@ public class TestMemoryTasks {
var task = new Task();
try {
- task.type(type).planned(planned).frequency(frequency).busy(busy);
+ task.type(type).planned(planned).frequency(frequency);
+ task.setBusy(busy);
} catch (FrequencyException e) {
fail(ExceptionUtils.getExceptionStackTrace(e));
}