Trait

org.opalj.ai.dataflow

DataFlowProblemSolver

Related Doc: package dataflow

Permalink

trait DataFlowProblemSolver[Source, Params] extends DataFlowProblem[Source, Params]

Implements the infrastructure for solving a data-flow problem.

Self Type
DataFlowProblemSolver[Source, Params]
Source
DataFlowProblemSolver.scala
Linear Supertypes
DataFlowProblem[Source, Params], AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. DataFlowProblemSolver
  2. DataFlowProblem
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. case class CallResult(receiver: TaintInformation, parameters: IndexedSeq[TaintInformation], result: (DomainValue) ⇒ TaintInformation) extends Product with Serializable

    Permalink
    Definition Classes
    DataFlowProblem
  2. type DomainValue = Domain.DomainValue

    Permalink
    Definition Classes
    DataFlowProblemSolverDataFlowProblem
  3. case class FieldWrite(declaringClassType: ReferenceType, name: String, fieldType: Type, context: Method, caller: TaintInformation, value: TaintInformation, receiver: TaintInformation) extends Product with Serializable

    Permalink
    Definition Classes
    DataFlowProblem
  4. case class Invoke(declaringClassType: ReferenceType, name: String, descriptor: MethodDescriptor, context: Method, caller: TaintInformation, receiver: TaintInformation, parameters: IndexedSeq[TaintInformation]) extends Product with Serializable

    Permalink
    Definition Classes
    DataFlowProblem
  5. type OnCallTaintProcessor = PartialFunction[Invoke, CallResult]

    Permalink
    Definition Classes
    DataFlowProblem
  6. type OnWriteTaintProcessor = PartialFunction[FieldWrite, (DomainValue) ⇒ TaintInformation]

    Permalink
    Definition Classes
    DataFlowProblem
  7. trait TaintInformation extends AnyRef

    Permalink

    Encapsultates taint information about a(n implicit) value.

    Encapsultates taint information about a(n implicit) value.

    Attributes
    protected[this]
    Definition Classes
    DataFlowProblem
  8. class TaintedValue extends DataFlowProblemSolver.TaintedValue with TaintInformation

    Permalink
    Attributes
    protected[this]

Abstract Value Members

  1. abstract def doSolve(): String

    Permalink
    Definition Classes
    DataFlowProblem
  2. abstract def initializeSourcesAndSinks(): Unit

    Permalink
    Definition Classes
    DataFlowProblem
  3. abstract val p: Params

    Permalink
    Definition Classes
    DataFlowProblem
  4. abstract val project: Project[Source]

    Permalink
    Definition Classes
    DataFlowProblem
  5. abstract def sinkInstructions(): Map[Method, Set[br.PC]]

    Permalink

    Identifies the program counters (PCs) of those instructions that are sinks.

    Identifies the program counters (PCs) of those instructions that are sinks.

    The returned map must not change, after solve was called!

    Definition Classes
    DataFlowProblem
    Note

    The methods have to belong to the project.

    See also

    org.opalj.ai.dataflow.spec.DataFlowProblemSpecification for the easy creation of the sinkInstructions map.

  6. abstract def sourceValues(): Map[Method, Set[ValueOrigin]]

    Permalink

    Identifies the values that we want to track (by means of the origin of the respective value) per relevant method.

    Identifies the values that we want to track (by means of the origin of the respective value) per relevant method.

    The returned map must not change, after solve was called!

    Definition Classes
    DataFlowProblem
    Note

    The methods have to belong to the project.

    See also

    org.opalj.ai.dataflow.spec.DataFlowProblemSpecification for the easy creation of the sourcesValues map.

  7. abstract val theDomain: Domain

    Permalink

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. object NotTainted extends TaintInformation with Product with Serializable

    Permalink

    The (implicitly referred to) value is not tainted.

    The (implicitly referred to) value is not tainted.

    Definition Classes
    DataFlowProblem
  5. object Tainted

    Permalink

    Extractor to match tainted values.

    Extractor to match tainted values.

    Definition Classes
    DataFlowProblem
  6. val ValueIsNotTainted: (DomainValue) ⇒ TaintInformation

    Permalink

    Factory method that – given a DomainValue – creates a TaintInformation object that encapsulates the information that the value is not tainted.

    Factory method that – given a DomainValue – creates a TaintInformation object that encapsulates the information that the value is not tainted.

    Definition Classes
    DataFlowProblem
  7. def ValueIsTainted: (DomainValue) ⇒ TaintInformation

    Permalink

    Returns a factory method that – given a DomainValue – creates a TaintedValue object that encapsulates the information that the value is tainted.

    Returns a factory method that – given a DomainValue – creates a TaintedValue object that encapsulates the information that the value is tainted.

    Definition Classes
    DataFlowProblemSolverDataFlowProblem
  8. def analyzeFeasability(): Unit

    Permalink
    Attributes
    protected[this]
    Definition Classes
    DataFlowProblem
  9. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  10. def call(f: OnCallTaintProcessor): Unit

    Permalink
    Definition Classes
    DataFlowProblem
  11. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  12. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  13. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  14. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  15. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  16. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  17. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  18. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  19. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  20. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  21. var onCallTaintProcessors: List[OnCallTaintProcessor]

    Permalink
    Attributes
    protected[this]
    Definition Classes
    DataFlowProblem
  22. var onWriteTaintProcessors: List[OnWriteTaintProcessor]

    Permalink
    Attributes
    protected[this]
    Definition Classes
    DataFlowProblem
  23. def solve(): String

    Permalink

    Tries to find paths from the sources to the sinks.

    Tries to find paths from the sources to the sinks.

    Definition Classes
    DataFlowProblem
  24. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  25. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  26. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  27. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  28. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  29. def write(f: OnWriteTaintProcessor): Unit

    Permalink
    Definition Classes
    DataFlowProblem

Inherited from DataFlowProblem[Source, Params]

Inherited from AnyRef

Inherited from Any

Ungrouped