Class TriggerFactory<T extends Trigger>
java.lang.Object
com.inet.taskplanner.server.api.common.AbstractFactory<T, TriggerDefinition, TriggerInfo, SummaryInfo>
com.inet.taskplanner.server.api.common.SeriesIndependentFactory<T, TriggerDefinition, TriggerInfo, SummaryInfo>
com.inet.taskplanner.server.api.trigger.TriggerFactory<T>
- Type Parameters:
T- the concrete type of the trigger implementation
- All Implemented Interfaces:
com.inet.plugin.NamedExtension
- Direct Known Subclasses:
AfterTaskTriggerFactory, CronTriggerFactory, FileChangeTriggerFactory, LowMemoryTriggerFactory, ServerStartTriggerFactory, ServerStopTriggerFactory, TimeTriggerFactory
public abstract class TriggerFactory<T extends Trigger>
extends SeriesIndependentFactory<T, TriggerDefinition, TriggerInfo, SummaryInfo>
Base class for factories producing
Trigger components from TriggerDefinition configured by users.
TriggerDefinition ----> TriggerFactory ----> Trigger
See documentation of AbstractFactory for more information about the life cycle.
When a factory is implemented, use ServerPluginManager.register(Class, Object) with
TriggerFactory.class as first argument:
spm.register(TriggerFactory.class, new MyTriggerFactory());
Implementations sample: because the extensionName must be unique and must be used when a TriggerDefinition is
created by API, it is recommended to set up a public constant with the extensionName:
public class DuckTriggerFactory extends TriggerFactory<DuckTrigger> {
public static final String EXTENSION_NAME = "DuckTrigger";
public DuckTriggerFactory(){
super(EXTENSION_NAME);
}
@Override
protected DuckTrigger createInstanceFrom( TriggerDefinition definition, GUID taskID ) {
DuckTrigger trigger = new DuckTrigger();
//put values from definition to trigger impl
...
return trigger;
}
...
//somewhere using public API
TriggerDefinition duckTrigger = new TriggerDefinition(DuckTriggerFactory.EXTENSION_NAME);
//configure it
...
- Since:
- taskplanner 3.0
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetNextExecutionTimes(TriggerDefinition definition) Returns the calculated times of the next executions.Methods inherited from class SeriesIndependentFactory
createFrom, updateValues, validateMethods inherited from class AbstractFactory
checkDefinitionArgument, createInstanceFrom, createInstanceFrom, getExtensionName, getInformation, getInformation, getKeywords, getSummary, isAvailable, isSupportedForSystemTasks
-
Constructor Details
-
TriggerFactory
-
-
Method Details
-
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.- 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.
- Since:
- taskplanner 3.0
-