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 the execution. The value must be a number with the milliseconds since 1st January 1970 GMT.
      See Also:
    • PROP_START_TIME

      public static final String PROP_START_TIME
      Key for the start time which specifies at which hour and minute of the day this trigger will fire. The value must be a number with the milliseconds since 1st January 1970 GMT. Only 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)
      Construct 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 taskPlanner GUI. This are display-infos or available options to configure. The returned information contains fields which describes the values a user can specify in the WEB GUI. The field is also responsible to replace any 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 only to be used by API, only then 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)
      Update values according to the give 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 key with their values that have changed
    • 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)
      Construct Summary infos for the component represented by given definition.

      The summary info is used when the webgui displays the component.

      When implementing a factory for a component only to be used per API, only then 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 infos containing text lines to be displayed in the webgui for this component.
    • getNextExecutionTimes

      public List<ZonedDateTime> getNextExecutionTimes(TriggerDefinition definition)
      Returns the calculated time of the next executions. If the trigger is e.g. event based and does not provide a time, null is returned. In case time based trigger is configured incorrectly or does not have any future executions, then 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 time of the next execution. Normally 3 future executions are returned, or less if there are not 3 more from now.