Trait/Object

org.opalj.fpcf

FPCFAnalysisRunner

Related Docs: object FPCFAnalysisRunner | package fpcf

Permalink

trait FPCFAnalysisRunner extends AnyRef

Provides the generic infrastructure that is implemented by all factories for FPCF analyses. Analyses that are created sing this factory will then be run using the PropertyStore. I.e., this trait is typically implemented by the singleton object that facilitates the creation of analyses.

Example:
Note

It is possible to use an analysis that directly uses the property store and an analysis that uses this factory infrastructure at the same time.

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

Abstract Value Members

  1. abstract def derivedProperties: Set[PropertyKind]

    Permalink

    Returns a set of integers that contains the id of every Property that is derived by the underlying analysis which is described by this FPCFAnalysisRunner.

    Returns a set of integers that contains the id of every Property that is derived by the underlying analysis which is described by this FPCFAnalysisRunner.

    This method has to be overridden in every subclass since it is used by the FPCFAnalysesManager to guarantee the save execution of all FPCFAnalysis.

    Attributes
    protected[org.opalj.fpcf]
  2. abstract def start(project: SomeProject, propertyStore: PropertyStore): FPCFAnalysis

    Permalink

    Starts the analysis for the given project.

    Starts the analysis for the given project. This method is typically implicitly called by the FPCFAnalysesManager.

    Attributes
    protected[org.opalj.fpcf]

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

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

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

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

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

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

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

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

    Permalink
    Definition Classes
    Any
  12. def name: String

    Permalink

    Returns a short descriptive name of the analysis for which this is the factory.

    Returns a short descriptive name of the analysis for which this is the factory.

    The default name is the name of this class.

    This method should be overridden.

  13. final def ne(arg0: AnyRef): Boolean

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

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

    Permalink
    Definition Classes
    AnyRef
  16. def recommendations: Set[FPCFAnalysisRunner]

    Permalink

    Returns the information which kind of analyses should be executed to achieve more precise analysis results.

    Returns the information which kind of analyses should be executed to achieve more precise analysis results.

    This set should include all analyses that are required to get the most precise result. FIXME Transitively used analyses also should be added here since more than one analysis could depend on the same property.

    Real requirements of the analysis should be added to the requirements definition. The set for recommendations should be disjunct to the requirements set.

    Note

    These analyses are not required. Hence, the analysis will always compute a correct result. If the set of recommendations is not empty, you may lose precision for every analysis that is not executed in parallel.

  17. def requirements: Set[FPCFAnalysisRunner]

    Permalink

    Returns the information which other analyses strictly need to be executed before this analysis can be performed.

    Returns the information which other analyses strictly need to be executed before this analysis can be performed.

    Note

    An analysis should be listed as a requirement if and only if the analysis strictly depends on the computed property of the analysis and the property has no fallback (which is generally not the case!). If no strict requirements are defined then this analysis can be run even if no other analyses are executed. This provides the end user more leeway in specifying the analyses that should be analyzed.

  18. final def start(project: SomeProject): FPCFAnalysis

    Permalink

    Starts the analysis for the given project.

    Starts the analysis for the given project. This method is typically implicitly called by the FPCFAnalysesManager.

    Attributes
    protected[org.opalj.fpcf]
  19. final def synchronized[T0](arg0: ⇒ T0): T0

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

    Permalink
    Definition Classes
    AnyRef → Any
  21. final val uniqueId: Int

    Permalink

    The unique id of this factory.

    The unique id of this factory.

    Every factory for a specific analysis is automatically associated with a unique id.

  22. def usedProperties: Set[PropertyKind]

    Permalink

    Returns a set of integers that contains the id of every Property or [SetProperty] that is used by the underlying analysis which is described by this FPCFAnalysisRunner.

    Returns a set of integers that contains the id of every Property or [SetProperty] that is used by the underlying analysis which is described by this FPCFAnalysisRunner.

    The analyses with this id's are not explicitly required which is the case when the used properties define a (save) fallback value which is set by the PropertyStore if required.

    This set consists only of property id's which are directly used by the analysis.

    Self usages don't have to be documented since the analysis will derive this property during the computation.

    Attributes
    protected[org.opalj.fpcf]
  23. final def wait(): Unit

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

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

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

Inherited from AnyRef

Inherited from Any

Ungrouped