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

pl.touk.nussknacker.engine.splittedgraph.part.scala Maven / Gradle / Ivy

package pl.touk.nussknacker.engine.splittedgraph

import pl.touk.nussknacker.engine.graph.node.{
  EndingNode => _,
  OneOutputSubsequentNode => _,
  SourceNode => _,
  SubsequentNode => _,
  _
}
import pl.touk.nussknacker.engine.splittedgraph.end.End
import pl.touk.nussknacker.engine.splittedgraph.splittednode._

object part {

  sealed trait ProcessPart {
    type T <: NodeData
    def node: SplittedNode[T]
    def id: String = node.id
    def nextParts: List[SubsequentPart]
    def ends: List[End]
  }

  case class SourcePart(node: SourceNode[StartingNodeData], nextParts: List[SubsequentPart], ends: List[End])
      extends ProcessPart {
    override type T = StartingNodeData
  }

  sealed trait SubsequentPart extends ProcessPart

  case class CustomNodePart(node: SubsequentNode[CustomNode], nextParts: List[SubsequentPart], ends: List[End])
      extends SubsequentPart {
    override type T = CustomNode
  }

  case class SinkPart(node: EndingNode[Sink]) extends SubsequentPart {
    override type T = Sink

    override def nextParts: List[SubsequentPart] = List.empty
    override def ends: List[End]                 = List.empty
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy