Trait

org.opalj.ai.project

AIProject

Related Doc: package project

Permalink

trait AIProject[Source, D <: Domain with OptionalReport] extends AnyRef

Template class for analyzing complete Java projects that use the abstract interpreter.

This trait is intended to be used in combination with the Analysis and the AnalysisExecutor traits to easily create a readily executable analysis (see the Demos project for examples).

Source
AIProject.scala
Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. AIProject
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def ai: AI[D]

    Permalink

    Returns the abstract interpreter that should be used for performing the abstract interpretations.

  2. abstract def domain(project: Project[Source], method: Method): D

    Permalink

    Returns the (initial) domain object that will be used to analyze an entry point.

    Returns the (initial) domain object that will be used to analyze an entry point.

    The analysis of all entry points may happen concurrently unless analyzeInParallel is false.

  3. abstract def entryPoints(project: Project[Source]): Iterable[Method]

    Permalink

    A project's entry points.

    A project's entry points.

    In case of a very simple command-line application, the set of entry points may just consist of the application's main method.

    If, for example, a desktop application with a GUI is to be analyzed, the entry points are usually the application's main method and all those listeners that react on system-level events (mouse move events, keyboard events etc.)

    In case of a framework, the set of entry points typically encompasses all non-private constructors, all non-private static methods and all static initializers. Additionally, listeners for system-level events are also entry points.

    returns

    All methods that are potential entry points.

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. def analyze(project: Project[Source], parameters: Seq[String]): ReportableAnalysisResult

    Permalink

    Analyzes the given project by first determining the entry points of the analysis and then starting an independent analysis for each entry point using its own domain.

    Analyzes the given project by first determining the entry points of the analysis and then starting an independent analysis for each entry point using its own domain.

    Note

    This method is intended to be overridden by subtraits that need to get hold on the specified analysis parameters. In this case (in the subtrait) it is recommended to first analyze the parameters and afterwards to call this method using super.analyze(...).

  5. val analyzeInParallel: Boolean

    Permalink

    If true (default) all entry points will be analyzed in parallel.

    If true (default) all entry points will be analyzed in parallel.

    Needs to be overridden by subclasses if the entry points should be analyzed sequentially.

    Attributes
    protected
  6. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  7. def clone(): AnyRef

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

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

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

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

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

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

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

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

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

    Permalink
    Definition Classes
    AnyRef
  17. final def synchronized[T0](arg0: ⇒ T0): T0

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

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

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped