Class CronTriggerFactory
- All Implemented Interfaces:
com.inet.plugin.NamedExtension
CronTrigger components.- Since:
- taskplanner 3.0
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringName of the Cron trigger to use as extension name in theTriggerDefinitionstatic final StringThe cron expression which determines the time when this trigger will start the task. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected com.inet.taskplanner.server.api.trigger.cron.CronTriggercreateInstanceFrom(TriggerDefinition definition, com.inet.id.GUID taskID) Constructs a component (PRODUCT) from the given definition.getInformation(com.inet.id.GUID taskID) Returns an information object about components which can be produced with this factory.static List<SummaryEntry> getNextExecutionsAsSummary(List<ZonedDateTime> nextExecutions) FOR INTERNAL USE ONLY.static List<ZonedDateTime> getNextExecutionsForCronExpression(String cronExpression) FOR INTERNAL USE ONLY.static List<ZonedDateTime> getNextExecutionsForCronExpression(String cronExpression, ZonedDateTime startDate, @Nullable Predicate<ZonedDateTime> acceptDate) FOR INTERNAL USE ONLY.static StringgetNextExecutionsSummaryText(List<ZonedDateTime> nextExecutionDates) FOR INTERNAL USE ONLY.getNextExecutionTimes(TriggerDefinition definition) Returns the calculated times of the next executions.getSummary(TriggerDefinition definition) Constructs summary information for the component represented by the given definition.updateValues(TriggerDefinition definition, com.inet.id.GUID taskID) Updates values according to the given definition.voidvalidate(TriggerDefinition definition, com.inet.id.GUID taskID) Validate the given definition.static StringvalidateCronExpression(@Nullable String cronExpression) FOR INTERNAL USE ONLY.Methods inherited from class SeriesIndependentFactory
createFromMethods inherited from class AbstractFactory
checkDefinitionArgument, createInstanceFrom, getExtensionName, getInformation, getKeywords, isAvailable, isSupportedForSystemTasks
-
Field Details
-
EXTENSION_NAME
Name of the Cron trigger to use as extension name in theTriggerDefinition- See Also:
-
PROP_CRON_EXPRESSION
The cron expression which determines the time when this trigger will start the task.Format:
[minute] [hour] [dayOfMonth] [month] [dayOfWeek] [year]
One of dayOfMonth and dayOfWeek must be '?' and year can be omitted.Example:
TriggerDefinition cron = new TriggerDefinition(CronTriggerFactory.EXTENSION_NAME); cron.setProperty(CronTriggerFactory.PROP_CRON_EXPRESSION, "30 10 ? * 2"); //at 10:30 on each Monday- See Also:
-
-
Constructor Details
-
CronTriggerFactory
public CronTriggerFactory()Creates a new CronTriggerFactory instance.- Since:
- taskplanner 3.0
-
-
Method Details
-
getInformation
Returns an information object about components which can be produced with this factory.The returned info contains information about how such a component is to be presented in the Task Planner web GUI. This includes display information and available configuration options. The returned information contains
fieldsthat describe the values a user can specify in the web GUI. The fields are also responsible for replacing placeholders for the corresponding property in aserialtask. That means properties without a field definition will not get any series placeholder replaced.If you implement a factory for a component used only through the API, you can return null here.
- Specified by:
getInformationin classAbstractFactory<com.inet.taskplanner.server.api.trigger.cron.CronTrigger, TriggerDefinition, TriggerInfo, SummaryInfo>- Parameters:
taskID- the ID of the task the definition belongs or will belong to, for optional use. Can be null if the operation is done for a non-saved task.- Returns:
- an information object for components this factory can produce
-
updateValues
Updates values according to the given definition.The given definition is guaranteed to belong to this factory.
- Overrides:
updateValuesin classSeriesIndependentFactory<com.inet.taskplanner.server.api.trigger.cron.CronTrigger, TriggerDefinition, TriggerInfo, SummaryInfo>- Parameters:
definition- the definition with the current propertiestaskID- the ID of the task the definition belongs or will belong to, for optional use- Returns:
- a map of property keys and their changed values
-
getNextExecutionsSummaryText
FOR INTERNAL USE ONLY.
Generates the text of the next executions- Parameters:
nextExecutionDates- list of next execution dates to get the summary text for- Returns:
- the next executions text
-
validate
public void validate(TriggerDefinition definition, com.inet.id.GUID taskID) throws ValidationException Validate the given definition.The given definition is guaranteed to belong to this factory
- Specified by:
validatein classSeriesIndependentFactory<com.inet.taskplanner.server.api.trigger.cron.CronTrigger, TriggerDefinition, TriggerInfo, SummaryInfo>- Parameters:
definition- the definition to validatetaskID- the ID of the task the definition belongs or will belong to, for optional use. Can be null if the operation is done for a non-saved task.- Throws:
ValidationException- if the component has some errors
-
validateCronExpression
FOR INTERNAL USE ONLY. Validate the given cron expression and returns the error message.- Parameters:
cronExpression- the expression to validate- Returns:
- Message describing the error in the expression. Null if expression is ok. Message may also say that expression is null.
-
createInstanceFrom
protected com.inet.taskplanner.server.api.trigger.cron.CronTrigger createInstanceFrom(TriggerDefinition definition, com.inet.id.GUID taskID) Constructs a component (PRODUCT) from the given definition.- Overrides:
createInstanceFromin classAbstractFactory<com.inet.taskplanner.server.api.trigger.cron.CronTrigger, TriggerDefinition, TriggerInfo, SummaryInfo>- Parameters:
definition- the definition holding information for the PRODUCTtaskID- the ID of the task the definition belongs or will belong to, for optional use. Can be null if the operation is done for a non-saved task.- Returns:
- a new PRODUCT
-
getSummary
Constructs summary information for the component represented by the given definition.The summary information is used when the web GUI displays the component.
When implementing a factory for a component to be used only through the API, you can return null here.
- Specified by:
getSummaryin classAbstractFactory<com.inet.taskplanner.server.api.trigger.cron.CronTrigger, TriggerDefinition, TriggerInfo, SummaryInfo>- Parameters:
definition- the definition with the settings made by a user- Returns:
- summary information containing text lines to be displayed in the web GUI for this component.
-
getNextExecutionTimes
Returns the calculated times of the next executions. If the trigger is, for example, event-based and does not provide a time,nullis returned. If a time-based trigger is configured incorrectly or has no future executions, an empty list is returned.- Overrides:
getNextExecutionTimesin classTriggerFactory<com.inet.taskplanner.server.api.trigger.cron.CronTrigger>- Parameters:
definition- the current definition where to get the next executions for- Returns:
- the calculated times of the next executions. Normally three future executions are returned, or fewer if there are not three more from now.
-
getNextExecutionsAsSummary
FOR INTERNAL USE ONLY. Creates a list ofsummary entriesfor the supplied next-execution dates.- Parameters:
nextExecutions- list of next execution dates to get the summary text for- Returns:
- a list of summary entries; it is empty when the supplied list is empty
- See Also:
-
getNextExecutionsForCronExpression
FOR INTERNAL USE ONLY. Get the date of the next executions for the given cron expression fromnow.- Parameters:
cronExpression- the expression to analyse- Returns:
- a list of future executions; can be empty if there are no future executions or the expression is invalid or null.
-
getNextExecutionsForCronExpression
public static List<ZonedDateTime> getNextExecutionsForCronExpression(String cronExpression, ZonedDateTime startDate, @Nullable Predicate<ZonedDateTime> acceptDate) FOR INTERNAL USE ONLY. Gets the dates of the next executions for the given cron expression, starting from the given date.- Parameters:
cronExpression- the expression to analysestartDate- date from which to find the next executionsacceptDate- optional filter which will be applied on next execution date. Each next execution will be checked with this, and if the filter declines a date, that date will not be used as a next execution date. It continues until enough next dates have passed the filter. BEWARE of possible endless loops!- Returns:
- a list of future executions; can be empty if there are no future executions or the expression is invalid or null.
-