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

pl.touk.nussknacker.ui.process.deployment.DeploymentManagerDispatcher.scala Maven / Gradle / Ivy

There is a newer version: 1.18.1
Show newest version
package pl.touk.nussknacker.ui.process.deployment

import pl.touk.nussknacker.engine.api.deployment.DeploymentManager
import pl.touk.nussknacker.engine.api.process.{ProcessIdWithName, ProcessingType}
import pl.touk.nussknacker.ui.process.processingtype.provider.ProcessingTypeDataProvider
import pl.touk.nussknacker.ui.process.repository.FetchingProcessRepository
import pl.touk.nussknacker.ui.security.api.LoggedUser

import scala.concurrent.{ExecutionContext, Future}

class DeploymentManagerDispatcher(
    managers: ProcessingTypeDataProvider[DeploymentManager, _],
    processRepository: FetchingProcessRepository[Future]
) {

  def deploymentManagerUnsafe(
      processId: ProcessIdWithName
  )(implicit ec: ExecutionContext, user: LoggedUser): Future[DeploymentManager] = {
    processRepository.fetchProcessingType(processId).map(deploymentManagerUnsafe)
  }

  def deploymentManager(
      processId: ProcessIdWithName
  )(implicit ec: ExecutionContext, user: LoggedUser): Future[Option[DeploymentManager]] = {
    for {
      processingType <- processRepository.fetchProcessingType(processId)
      maybeDeploymentManager = deploymentManager(processingType)
    } yield maybeDeploymentManager
  }

  def deploymentManager(processingType: ProcessingType)(implicit user: LoggedUser): Option[DeploymentManager] = {
    managers.forProcessingType(processingType)
  }

  def deploymentManagerUnsafe(processingType: ProcessingType)(implicit user: LoggedUser): DeploymentManager = {
    managers.forProcessingTypeUnsafe(processingType)
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy