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 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. See ITimeBasedEventTriggerEnabler for available methods.
    • revokeTriggers

      void revokeTriggers(com.persequor.event.Event revokeEvent, ITimeBasedEventTriggerRevoker revoker)
      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. See ITimeBasedEventTriggerRevoker 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

      default Optional<String> hasIntegrityIssues(TimeBasedTrigger trigger)
      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