Trait

org.opalj.ai.dataflow.solver

NaiveSolver

Related Doc: package solver

Permalink

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

Implements the infrastructure for solving a data-flow problem.

Self Type
NaiveSolver[Source, Params]
Source
NaiveSolver.scala
Linear Supertypes
DataFlowProblemSolver[Source, Params], DataFlowProblem[Source, Params], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. NaiveSolver
  2. DataFlowProblemSolver
  3. DataFlowProblem
  4. AnyRef
  5. 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]
    Definition Classes
    DataFlowProblemSolver

Abstract Value Members

  1. abstract def initializeSourcesAndSinks(): Unit

    Permalink
    Definition Classes
    DataFlowProblem
  2. abstract val p: Params

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

    Permalink
    Definition Classes
    DataFlowProblem
  4. 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.

  5. 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.

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. def doSolve(): String

    Permalink
    Definition Classes
    NaiveSolverDataFlowProblem
  13. final def eq(arg0: AnyRef): Boolean

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

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

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

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

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

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

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

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

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

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

    Permalink
    Attributes
    protected[this]
    Definition Classes
    DataFlowProblem
  24. 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
  25. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  26. lazy val theDomain: Domain

    Permalink
    Definition Classes
    NaiveSolverDataFlowProblemSolver
  27. def toString(): String

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

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

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

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

    Permalink
    Definition Classes
    DataFlowProblem

Inherited from DataFlowProblemSolver[Source, Params]

Inherited from DataFlowProblem[Source, Params]

Inherited from AnyRef

Inherited from Any

Ungrouped