Source code for jivago.event.config.runnable_event_handler_binder

from jivago.config.abstract_binder import AbstractBinder
from jivago.event.config.annotations import EventHandler
from jivago.inject.service_locator import ServiceLocator
from jivago.lang.annotations import Override
from jivago.lang.registry import Registry
from jivago.lang.runnable import Runnable


[docs] class RunnableEventHandlerBinder(AbstractBinder): def __init__(self, root_package: str, registry: Registry): self.root_package = root_package self.registry = registry
[docs] @Override def bind(self, service_locator: ServiceLocator): for registration in self.registry.get_annotated_in_package(EventHandler, self.root_package): if registration.is_class_registration() and issubclass(registration.registered, Runnable): runner_class = registration.registered service_locator.bind(runner_class, runner_class)