Package org.kie.internal.runtime.manager

## Interface EventListenerProducer<T>

- Type Parameters:
    `T` - type of the event listener - ProcessEventListener, AgendaEventListener, WorkingMemoryEventListener

      public interface EventListenerProducer<T>

  Allows do define custom producers for know EventListeners. Intention of this is that there might be several implementations that might provide different listener instance based on the context they are executed in.
  It will be invoked by RegisterableItemsFactory implementation (especially InjectableRegisterableItemsFactory in CDI world) for every KieSession. Recommendation is to always produce new instances to avoid unexpected results.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `List<T>` | `getEventListeners​(String identifier, Map<String,​Object> params)` | Returns list of instances for given (T) type of listeners Parameters that might be given are as follows: ksession taskService runtimeManager

- - ### Method Detail

    - #### getEventListeners

          List<T> getEventListeners​(String identifier,
                                    Map<String,​Object> params)

      Returns list of instances for given (T) type of listeners
      Parameters that might be given are as follows:
      - ksession
      - taskService
      - runtimeManager
      Parameters:
        `identifier` - - identifier of the owner - usually RuntimeManager that allows the producer to filter out and provide valid instances for given owner
        `params` - - owner might provide some parameters, usually KieSession, TaskService, RuntimeManager instances
      Returns:
        list of listener instances (recommendation is to always return new instances when this method is invoked)