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

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. AIProject
  2. AnyRef
  3. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  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], classFile: ClassFile, 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[(ClassFile, 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. def +(other: String): String

    Permalink
    Implicit information
    This member is added by an implicit conversion from AIProject[Source, D] to any2stringadd[AIProject[Source, D]] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. def ->[B](y: B): (AIProject[Source, D], B)

    Permalink
    Implicit information
    This member is added by an implicit conversion from AIProject[Source, D] to ArrowAssoc[AIProject[Source, D]] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  5. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  6. 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(...).

  7. 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
  8. final def asInstanceOf[T0]: T0

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

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  10. def ensuring(cond: (AIProject[Source, D]) ⇒ Boolean, msg: ⇒ Any): AIProject[Source, D]

    Permalink
    Implicit information
    This member is added by an implicit conversion from AIProject[Source, D] to Ensuring[AIProject[Source, D]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  11. def ensuring(cond: (AIProject[Source, D]) ⇒ Boolean): AIProject[Source, D]

    Permalink
    Implicit information
    This member is added by an implicit conversion from AIProject[Source, D] to Ensuring[AIProject[Source, D]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  12. def ensuring(cond: Boolean, msg: ⇒ Any): AIProject[Source, D]

    Permalink
    Implicit information
    This member is added by an implicit conversion from AIProject[Source, D] to Ensuring[AIProject[Source, D]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  13. def ensuring(cond: Boolean): AIProject[Source, D]

    Permalink
    Implicit information
    This member is added by an implicit conversion from AIProject[Source, D] to Ensuring[AIProject[Source, D]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  14. final def eq(arg0: AnyRef): Boolean

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

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

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  17. def formatted(fmtstr: String): String

    Permalink
    Implicit information
    This member is added by an implicit conversion from AIProject[Source, D] to StringFormat[AIProject[Source, D]] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @inline()
  18. final def getClass(): Class[_]

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

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

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

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

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

    Permalink
    Definition Classes
    AnyRef
  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 [B](y: B): (AIProject[Source, D], B)

    Permalink
    Implicit information
    This member is added by an implicit conversion from AIProject[Source, D] to ArrowAssoc[AIProject[Source, D]] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd from AIProject[Source, D] to any2stringadd[AIProject[Source, D]]

Inherited by implicit conversion StringFormat from AIProject[Source, D] to StringFormat[AIProject[Source, D]]

Inherited by implicit conversion Ensuring from AIProject[Source, D] to Ensuring[AIProject[Source, D]]

Inherited by implicit conversion ArrowAssoc from AIProject[Source, D] to ArrowAssoc[AIProject[Source, D]]

Ungrouped