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.

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 enhancement - 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 clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  6. def createAndApply(): Unit

    Execute the enhancement and apply result to the underlying graph

    Execute the enhancement and apply result to the underlying graph

    Definition Classes
    CpgPassCpgPassBase
  7. 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

  8. 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
  9. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  10. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  11. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  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()
  14. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  15. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  16. def name: String

    Name of the enhancement pass.

    Name of the enhancement 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()
  19. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  20. def serialize(appliedDiffGraph: AppliedDiffGraph, inverse: Boolean): GeneratedMessageV3
    Attributes
    protected
    Definition Classes
    CpgPassBase
  21. def store(overlay: GeneratedMessageV3, name: String, serializedCpg: SerializedCpg): Unit
    Attributes
    protected
    Definition Classes
    CpgPassBase
  22. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  23. def toString(): String
    Definition Classes
    AnyRef → Any
  24. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  25. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  26. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  27. def withStartEndTimesLogged[A](fun: => A): A
    Attributes
    protected
    Definition Classes
    CpgPassBase

Inherited from CpgPassBase

Inherited from AnyRef

Inherited from Any

Ungrouped