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

io.joern.dataflowengineoss.language.dotextension.DdgNodeDot.scala Maven / Gradle / Ivy

package io.joern.dataflowengineoss.language.dotextension

import io.joern.dataflowengineoss.DefaultSemantics
import io.joern.dataflowengineoss.dotgenerator.{DotCpg14Generator, DotDdgGenerator, DotPdgGenerator}
import io.joern.dataflowengineoss.language.*
import io.joern.dataflowengineoss.semanticsloader.Semantics
import io.shiftleft.codepropertygraph.generated.nodes.Method
import io.shiftleft.semanticcpg.language.*
import io.shiftleft.semanticcpg.language.dotextension.{ImageViewer, Shared}

class DdgNodeDot(val traversal: Iterator[Method]) extends AnyVal {

  def dotDdg(implicit semantics: Semantics = DefaultSemantics()): Iterator[String] =
    DotDdgGenerator.toDotDdg(traversal)

  def dotPdg(implicit semantics: Semantics = DefaultSemantics()): Iterator[String] =
    DotPdgGenerator.toDotPdg(traversal)

  def dotCpg14(implicit semantics: Semantics = DefaultSemantics()): Iterator[String] =
    DotCpg14Generator.toDotCpg14(traversal)

  def plotDotDdg(implicit viewer: ImageViewer, semantics: Semantics = DefaultSemantics()): Unit = {
    Shared.plotAndDisplay(traversal.dotDdg.l, viewer)
  }

  def plotDotPdg(implicit viewer: ImageViewer, semantics: Semantics = DefaultSemantics()): Unit = {
    Shared.plotAndDisplay(traversal.dotPdg.l, viewer)
  }

  def plotDotCpg14(implicit viewer: ImageViewer, semantics: Semantics = DefaultSemantics()): Unit = {
    Shared.plotAndDisplay(traversal.dotCpg14.l, viewer)
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy