All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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