Class TriggerFactory<T extends Trigger>
java.lang.Object
com.inet.taskplanner.server.api.common.AbstractFactory<COMPONENT,DEFINITION,INFO,SUMMARY>
com.inet.taskplanner.server.api.common.SeriesIndependentFactory<T,TriggerDefinition,TriggerInfo,SummaryInfo>
com.inet.taskplanner.server.api.trigger.TriggerFactory<T>
- Type Parameters:
T
-
- All Implemented Interfaces:
com.inet.plugin.NamedExtension
- Direct Known Subclasses:
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 time of the next executions.Methods inherited from class com.inet.taskplanner.server.api.common.SeriesIndependentFactory
createFrom, updateValues, validate
Methods inherited from class com.inet.taskplanner.server.api.common.AbstractFactory
checkDefinitionArgument, createInstanceFrom, createInstanceFrom, getExtensionName, getInformation, getSummary, isAvailable
-
Constructor Details
-
TriggerFactory
Creates a new TriggerFactory instance.- Parameters:
extensionName
- a unique name for those kind oftriggers
constructed with this factory. Must be unique across all registered triggers.- Since:
- taskplanner 3.0
-
-
Method Details
-
getNextExecutionTimes
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.- 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.
- Since:
- taskplanner 3.0
-