abstract class CpgPass extends CpgPassBase

Base class for CPG pass - a program, which receives an input graph and outputs a sequence of additive diff graphs. These diff graphs can be merged into the original graph ("applied"), they can be serialized into a binary format, and finally, they can be added to an existing cpg.bin.zip file.

A pass is provided by inheriting from this class and implementing run, a method, which creates the sequence of diff graphs from an input graph.

Overview of steps and their meaning:

  1. Create: A sequence of diff graphs is created from the source graph 2. Apply: Each diff graph can be applied to the source graph 3. Serialize: After applying a diff graph, the diff graph can be serialized into a CPG overlay 4. Store: The CPG overlay can be stored in a serialized CPG.
Annotations
@deprecated
Deprecated

(Since version v1.3.508) Please use SimpleCpgPass as a replacement.

Linear Supertypes
CpgPassBase, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. CpgPass
  2. CpgPassBase
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new CpgPass(cpg: Cpg, outName: String = "", keyPool: Option[KeyPool] = None)

    cpg

    the source CPG this pass traverses

Abstract Value Members

  1. abstract def run(): Iterator[DiffGraph]

    Main method of pass - to be implemented by child class

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def baseLogger: Logger
    Attributes
    protected
    Definition Classes
    CpgPassBase
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  7. def createAndApply(): Unit

    Execute the pass and apply result to the underlying graph

    Execute the pass and apply result to the underlying graph

    Definition Classes
    CpgPassCpgPassBase
  8. def createApplyAndSerialize(inverse: Boolean = false): Iterator[GeneratedMessageV3]

    Execute and create a serialized overlay

    Execute and create a serialized overlay

    inverse

    invert the diffgraph before serializing

  9. def createApplySerializeAndStore(serializedCpg: SerializedCpg, inverse: Boolean = false, prefix: String = ""): Unit

    Run a CPG pass to create diff graphs, apply diff graphs, create corresponding overlays and add them to the serialized CPG.

    Run a CPG pass to create diff graphs, apply diff graphs, create corresponding overlays and add them to the serialized CPG. The name of the overlay is derived from the class name of the pass.

    serializedCpg

    the destination serialized CPG to add overlays to

    inverse

    invert the diffgraph before serializing

    prefix

    a prefix to add to the output name

    Definition Classes
    CpgPassCpgPassBase
  10. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  11. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  12. def generateOutFileName(prefix: String, outName: String, index: Int): String
    Attributes
    protected
    Definition Classes
    CpgPassBase
  13. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  14. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  15. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  16. def name: String

    Name of the pass.

    Name of the pass. By default it is inferred from the name of the class, override if needed.

    Definition Classes
    CpgPassBase
  17. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  18. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  19. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  20. def runWithBuilder(builder: DiffGraphBuilder): Int

    Runs the cpg pass, adding changes to the passed builder.

    Runs the cpg pass, adding changes to the passed builder. Use with caution -- API is unstable. Returns max(nParts, 1), where nParts is either the number of parallel parts, or the number of iterarator elements in case of legacy passes. Includes init() and finish() logic.

    Definition Classes
    CpgPassCpgPassBase
  21. def runWithBuilderLogged(builder: DiffGraphBuilder): Int

    Wraps runWithBuilder with logging, and swallows raised exceptions.

    Wraps runWithBuilder with logging, and swallows raised exceptions. Use with caution -- API is unstable. A return value of -1 indicates failure, otherwise the return value of runWithBuilder is passed through.

    Definition Classes
    CpgPassBase
  22. def serialize(appliedDiffGraph: AppliedDiffGraph, inverse: Boolean): GeneratedMessageV3
    Attributes
    protected
    Definition Classes
    CpgPassBase
  23. def store(overlay: GeneratedMessageV3, name: String, serializedCpg: SerializedCpg): Unit
    Attributes
    protected
    Definition Classes
    CpgPassBase
  24. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  25. def toString(): String
    Definition Classes
    AnyRef → Any
  26. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  27. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  28. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  29. def withStartEndTimesLogged[A](fun: => A): A
    Attributes
    protected
    Definition Classes
    CpgPassBase

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

Inherited from CpgPassBase

Inherited from AnyRef

Inherited from Any

Ungrouped