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:
- 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.
- Alphabetic
- By Inheritance
- CpgPass
- CpgPassBase
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
Abstract Value Members
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def baseLogger: Logger
- Attributes
- protected
- Definition Classes
- CpgPassBase
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- 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
- CpgPass → CpgPassBase
- 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
- 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
- CpgPass → CpgPassBase
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def generateOutFileName(prefix: String, outName: String, index: Int): String
- Attributes
- protected
- Definition Classes
- CpgPassBase
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- 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
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- 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
- CpgPass → CpgPassBase
- 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
- def serialize(appliedDiffGraph: AppliedDiffGraph, inverse: Boolean): GeneratedMessageV3
- Attributes
- protected
- Definition Classes
- CpgPassBase
- def store(overlay: GeneratedMessageV3, name: String, serializedCpg: SerializedCpg): Unit
- Attributes
- protected
- Definition Classes
- CpgPassBase
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- def withStartEndTimesLogged[A](fun: => A): A
- Attributes
- protected
- Definition Classes
- CpgPassBase
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated