
com.qmetric.penfold.command.CommandDispatcherFactory.scala Maven / Gradle / Ivy
package com.qmetric.penfold.command
import com.qmetric.penfold.domain.store.DomainRepository
class CommandDispatcherFactory(domainRepository: DomainRepository, aggregateIdFactory: AggregateIdFactory) {
def create = {
new CommandDispatcher(Map[Class[_ <: Command], CommandHandler[_ <: Command]](//
classOf[CreateTask] -> new CreateTaskHandler(domainRepository, aggregateIdFactory), //
classOf[CreateFutureTask] -> new CreateFutureTaskHandler(domainRepository, aggregateIdFactory), //
classOf[TriggerTask] -> new TriggerTaskHandler(domainRepository), //
classOf[StartTask] -> new StartTaskHandler(domainRepository), //
classOf[RequeueTask] -> new RequeueTaskHandler(domainRepository), //
classOf[RescheduleTask] -> new RescheduleTaskHandler(domainRepository), //
classOf[UnassignTask] -> new UnassignTaskHandler(domainRepository), //
classOf[CloseTask] -> new CloseTaskHandler(domainRepository), //
classOf[CancelTask] -> new CancelTaskHandler(domainRepository), //
classOf[UpdateTaskPayload] -> new UpdateTaskPayloadHandler(domainRepository), //
classOf[ArchiveTask] -> new ArchiveTaskHandler(domainRepository) //
))
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy