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

pl.touk.nussknacker.engine.management.sample.SampleAdditionalInfoProvider.scala Maven / Gradle / Ivy

package pl.touk.nussknacker.engine.management.sample

import com.typesafe.config.Config
import pl.touk.nussknacker.engine.additionalInfo.{AdditionalInfo, AdditionalInfoProvider, MarkdownAdditionalInfo}
import pl.touk.nussknacker.engine.api.MetaData
import pl.touk.nussknacker.engine.graph.node
import pl.touk.nussknacker.engine.graph.node.Enricher
import pl.touk.nussknacker.engine.graph.service.ServiceRef

import scala.concurrent.Future

//used in NodeResourcesSpec
class SampleAdditionalInfoProvider extends AdditionalInfoProvider {

  override def nodeAdditionalInfo(config: Config)(nodeData: node.NodeData): Future[Option[AdditionalInfo]] = {
    nodeData match {
      case Enricher(_, ServiceRef("paramService", idParam :: Nil), _, _) =>
        Future.successful(Some {
          val id = idParam.expression.expression.replace("'", "")
          MarkdownAdditionalInfo(s"""
            |Samples:
            |
            || id  | value |
            || --- | ----- |
            || a   | generated |
            || b   | not existent |
            |
            |Results for $id can be found [here](http://touk.pl?id=$id)
            |""".stripMargin)
        })
      case _ => Future.successful(None)
    }
  }

  override def propertiesAdditionalInfo(config: Config)(metaData: MetaData): Future[Option[AdditionalInfo]] = {
    val properties = metaData.additionalFields.properties
    (properties.get("environment"), properties.get("numberOfThreads")) match {
      case (Some(environment), Some(numberOfThreads)) =>
        Future.successful(Some {
          MarkdownAdditionalInfo(s"$numberOfThreads threads will be used on environment '$environment'")
        })
      case _ => Future.successful(None)
    }
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy