Class TimeTriggerFactory

  • All Implemented Interfaces:
    com.inet.plugin.NamedExtension

    public class TimeTriggerFactory
    extends TriggerFactory<com.inet.taskplanner.server.api.trigger.time.TimeTrigger>
    A task planner trigger that executes a task when the configured time settings apply
    Since:
    taskplanner 3.0
    See Also:
    TimeTrigger
    • Field Detail

      • PROP_START_DAY

        public static final java.lang.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:
        Constant Field Values
      • PROP_START_TIME

        public static final java.lang.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:
        Constant Field Values
      • PROP_REPEAT_SELECT

        public static final java.lang.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:
        Constant Field Values
      • PROP_WHICH_SELECT

        public static final java.lang.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:
        Constant Field Values
    • Constructor Detail

      • TimeTriggerFactory

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

      • createInstanceFrom

        protected com.inet.taskplanner.server.api.trigger.time.TimeTrigger createInstanceFrom​(TriggerDefinition definition,
                                                                                              com.inet.id.GUID taskID)
        Construct a component (PRODUCT) from the given definition.
        Overrides:
        createInstanceFrom in class AbstractFactory<com.inet.taskplanner.server.api.trigger.time.TimeTrigger,​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<com.inet.taskplanner.server.api.trigger.time.TimeTrigger,​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

        public java.util.Map<java.lang.String,​java.lang.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<com.inet.taskplanner.server.api.trigger.time.TimeTrigger,​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<com.inet.taskplanner.server.api.trigger.time.TimeTrigger,​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<com.inet.taskplanner.server.api.trigger.time.TimeTrigger,​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 java.util.List<java.time.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<com.inet.taskplanner.server.api.trigger.time.TimeTrigger>
        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.