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

pl.touk.nussknacker.ui.util.ScenarioActivityUtils.scala Maven / Gradle / Ivy

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

import pl.touk.nussknacker.engine.api.deployment.{DeploymentRelatedActivity, ScenarioActivity}
import pl.touk.nussknacker.ui.db.entity.ScenarioActivityType

import java.time.Instant

object ScenarioActivityUtils {

  implicit class ScenarioActivityOps(scenarioActivity: ScenarioActivity) {

    def activityType: ScenarioActivityType = {
      scenarioActivity match {
        case _: ScenarioActivity.ScenarioCreated             => ScenarioActivityType.ScenarioCreated
        case _: ScenarioActivity.ScenarioArchived            => ScenarioActivityType.ScenarioArchived
        case _: ScenarioActivity.ScenarioUnarchived          => ScenarioActivityType.ScenarioUnarchived
        case _: ScenarioActivity.ScenarioDeployed            => ScenarioActivityType.ScenarioDeployed
        case _: ScenarioActivity.ScenarioPaused              => ScenarioActivityType.ScenarioPaused
        case _: ScenarioActivity.ScenarioCanceled            => ScenarioActivityType.ScenarioCanceled
        case _: ScenarioActivity.ScenarioModified            => ScenarioActivityType.ScenarioModified
        case _: ScenarioActivity.ScenarioNameChanged         => ScenarioActivityType.ScenarioNameChanged
        case _: ScenarioActivity.CommentAdded                => ScenarioActivityType.CommentAdded
        case _: ScenarioActivity.AttachmentAdded             => ScenarioActivityType.AttachmentAdded
        case _: ScenarioActivity.ChangedProcessingMode       => ScenarioActivityType.ChangedProcessingMode
        case _: ScenarioActivity.IncomingMigration           => ScenarioActivityType.IncomingMigration
        case _: ScenarioActivity.OutgoingMigration           => ScenarioActivityType.OutgoingMigration
        case _: ScenarioActivity.PerformedSingleExecution    => ScenarioActivityType.PerformedSingleExecution
        case _: ScenarioActivity.PerformedScheduledExecution => ScenarioActivityType.PerformedScheduledExecution
        case _: ScenarioActivity.AutomaticUpdate             => ScenarioActivityType.AutomaticUpdate
        case activity: ScenarioActivity.CustomAction         => ScenarioActivityType.CustomAction(activity.actionName)
      }
    }

    def dateFinishedOpt: Option[Instant] = {
      scenarioActivity match {
        case activity: DeploymentRelatedActivity => Some(activity.result.dateFinished)
        case _                                   => None
      }
    }

  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy