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

com.ing.baker.runtime.javadsl.RecipeInstanceState.scala Maven / Gradle / Ivy

package com.ing.baker.runtime.javadsl

import com.ing.baker.runtime.common.LanguageDataStructures.JavaApi
import com.ing.baker.runtime.{common, scaladsl}
import com.ing.baker.types.Value

import java.util.stream.Collectors
import scala.annotation.nowarn
import scala.collection.JavaConverters._

/**
  * Holds the 'state' of a process instance.
  *
  * @param recipeInstanceId The process identifier
  * @param ingredients      The accumulated ingredients
  * @param events           The events that have occurred so far
  */
case class RecipeInstanceState(
    recipeId: String,
    recipeInstanceId: String,
    ingredients: java.util.Map[String, Value],
    recipeInstanceMetadata: java.util.Map[String, String],
    events: java.util.List[EventMoment]
  ) extends common.RecipeInstanceState with JavaApi {

  type EventType = EventMoment

  /**
    * Returns the accumulated ingredients.
    *
    * @return The accumulated ingredients
    */
  def getIngredients: java.util.Map[String, Value] = ingredients

  /**
    * Returns the accumulated ingredients.
    *
    * @return The accumulated ingredients
    */
  def getRecipeInstanceMetadata: java.util.Map[String, String] = recipeInstanceMetadata

  /**
    * Returns the RuntimeEvents
    *
    * @return The events occurred so far
    */
  def getEvents: java.util.List[EventMoment] = events

  /**
    * Returns the names of the events occurred so far.
    *
    * @return The names of the events occurred so far
    */
  def getEventNames: java.util.List[String] = events.stream().map[String](_.name).collect(Collectors.toList[String])

  /**
    * Returns the process identifier.
    *
    * @return The process identifier
    */
  def getRecipeInstanceId: String = recipeInstanceId

  @nowarn
  def asScala: scaladsl.RecipeInstanceState =
    scaladsl.RecipeInstanceState(recipeId, recipeInstanceId, ingredients.asScala.toMap, recipeInstanceMetadata.asScala.toMap, events.asScala.map(_.asScala).toIndexedSeq)
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy