Interface ITimeBasedEventRule<T>
- Type Parameters:
T
- Represents the type of the additional data that the event trigger might have. This type will define the `additionalData` type that the `ITimeBasedEventRuleEnabler` will receive when enabling triggers and what `fireTrigger` will receive as the `additionalData` parameter. In case additional data is not needed for your implementation, it can be set to `java.lang.Object`.
public interface ITimeBasedEventRule<T>
Implement this class to enable, revoke and define the fire trigger logic from a subscription.
-
Method Summary
Modifier and TypeMethodDescriptionvoid
enableTriggers
(com.persequor.event.Event sourceEvent, ITimeBasedEventTriggerEnabler<T> enabler) Enable triggers based on an event.void
fireTrigger
(com.persequor.event.Event sourceEvent, String triggerKey, ZonedDateTime plannedFireTime, T additionalData) Fire trigger based on the event, trigger key and fire time used for setting up the trigger.For displaying this processor in the UI, please return a human-readable name.getId()
Get the identifier for the time-based event trigger, where it is used to distinguish between the bound triggers.hasIntegrityIssues
(TimeBasedTrigger trigger) Implement this if the trigger implementation supports integrity checksvoid
revokeTriggers
(com.persequor.event.Event revokeEvent, ITimeBasedEventTriggerRevoker revoker) Revoke triggers based on an event.
-
Method Details
-
enableTriggers
void enableTriggers(com.persequor.event.Event sourceEvent, ITimeBasedEventTriggerEnabler<T> enabler) Enable triggers based on an event. Responsible for defining the logic for when triggers should be enabled.- Parameters:
sourceEvent
- - Event from which triggers will be enabled.enabler
- - Responsible enabler of triggers. SeeITimeBasedEventTriggerEnabler
for available methods.
-
revokeTriggers
Revoke triggers based on an event. Responsible for defining the logic for when triggers should be revoked.- Parameters:
revokeEvent
- - Event from which triggers will be revoked.revoker
- - Responsible revoker of triggers. SeeITimeBasedEventTriggerRevoker
for available methods.
-
fireTrigger
void fireTrigger(com.persequor.event.Event sourceEvent, String triggerKey, ZonedDateTime plannedFireTime, T additionalData) Fire trigger based on the event, trigger key and fire time used for setting up the trigger. Responsible for defining the logic of when and what the action should be when a trigger is being fired.- Parameters:
sourceEvent
- - Event from which the trigger origins.triggerKey
- - Trigger key defined when enabling the trigger.plannedFireTime
- - Fire time defined when enabling the trigger.additionalData
- - Additional data that was set when the trigger was enabled.
-
getHumanReadableName
String getHumanReadableName()For displaying this processor in the UI, please return a human-readable name.- Returns:
- human-readable name
-
getId
String getId()Get the identifier for the time-based event trigger, where it is used to distinguish between the bound triggers. It is required to be unique across all registered event triggers.- Returns:
- unique identifier
-
hasIntegrityIssues
Implement this if the trigger implementation supports integrity checks- Parameters:
trigger
- to evaluate- Returns:
- empty if there are no integrity issues, else the error String
-