Class TimeTriggerFactory

All Implemented Interfaces:
com.inet.plugin.NamedExtension

public class TimeTriggerFactory extends TriggerFactory<Trigger>
A Task Planner trigger that executes a task when the configured time settings apply.

Since version 22.4, this also handles TimeTriggerForCustomSettings.

Since:
taskplanner 3.0
See Also:
  • TimeTrigger
  • Field Details

    • EXTENSION_NAME

      public static final String EXTENSION_NAME
      Extension name of the time trigger to use in triggerDefinitions.
      See Also:
    • PROP_START_DAY

      public static final String PROP_START_DAY
      Key for the start day, which specifies the earliest day for execution. The value must be a number containing the milliseconds since 1 January 1970 GMT.
      See Also:
    • PROP_START_TIME

      public static final String PROP_START_TIME
      Key for the start time, which specifies the hour and minute of the day when this trigger fires. The value must be a number containing the milliseconds since 1 January 1970 GMT. Only the hour and minute are used.
      See Also:
    • PROP_REPEAT_SELECT

      public static final String PROP_REPEAT_SELECT
      Key for the repeat-interval of this trigger. Value must be a String representation of the RepeatInterval enum or null.
      See Also:
    • PROP_WHICH_SELECT

      public static final String PROP_WHICH_SELECT
      Key for the Monthly day setting, which determines on which day of the month this trigger fires. The value must be a string representation of the MonthlyDay enum.
      See Also:
  • Constructor Details

    • TimeTriggerFactory

      public TimeTriggerFactory()
      Creates a new TimeTriggerFactory instance.
      Since:
      taskplanner 3.0
  • Method Details

    • createInstanceFrom

      protected Trigger createInstanceFrom(TriggerDefinition definition, com.inet.id.GUID taskID)
      Constructs a component (PRODUCT) from the given definition.
      Overrides:
      createInstanceFrom in class AbstractFactory<Trigger, TriggerDefinition, TriggerInfo, SummaryInfo>
      Parameters:
      definition - the definition holding information for the PRODUCT
      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:
      a new PRODUCT
    • getInformation

      public TriggerInfo getInformation(com.inet.id.GUID taskID)
      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 fields that describe the values a user can specify in the web GUI. The fields are also responsible for replacing placeholders for the corresponding property in a serial task. 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:
      getInformation in class AbstractFactory<Trigger, 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
    • addTimeZoneDifferenceHintIfRequired

      public static void addTimeZoneDifferenceHintIfRequired(ArrayList<Field> fields)
      FOR INTERNAL USE ONLY. If the client and server use a different timezone, then this adds an extra label for the user so he knows he configures the server locale.
      Parameters:
      fields - fields to add to
    • updateValues

      public Map<String,String> updateValues(TriggerDefinition definition, com.inet.id.GUID taskID)
      Updates values according to the given definition.

      The given definition is guaranteed to belong to this factory.

      Overrides:
      updateValues in class SeriesIndependentFactory<Trigger, TriggerDefinition, TriggerInfo, SummaryInfo>
      Parameters:
      definition - the definition with the current properties
      taskID - 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
    • validate

      public void validate(TriggerDefinition triggerDefinition, com.inet.id.GUID taskID) throws ValidationException
      Validate the given definition.

      The given definition is guaranteed to belong to this factory

      Specified by:
      validate in class SeriesIndependentFactory<Trigger, TriggerDefinition, TriggerInfo, SummaryInfo>
      Parameters:
      triggerDefinition - the definition to validate
      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.
      Throws:
      ValidationException - if the component has some errors
    • getSummary

      public SummaryInfo getSummary(TriggerDefinition definition)
      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:
      getSummary in class AbstractFactory<Trigger, 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

      public List<ZonedDateTime> getNextExecutionTimes(TriggerDefinition definition)
      Returns the calculated times of the next executions. If the trigger is, for example, event-based and does not provide a time, null is returned. If a time-based trigger is configured incorrectly or has no future executions, an empty list is returned.
      Overrides:
      getNextExecutionTimes in class TriggerFactory<Trigger>
      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.