Packages

t

org.opalj.fpcf

ComputationSpecification

trait ComputationSpecification extends AnyRef

Specification of the properties and the life-cycle methods of a fixpoint computation (FPC) that are relevant when computing the correct scheduling order and actually executing the fixpoint computations.

Note

The PropertyStore can be used without using ComputationSpecifications and AnalysisScenarios; both latter classes just provide convenience functionality that ensures that common issues are identified early on/are avoided.

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

Type Members

  1. abstract type InitializationData

Abstract Value Members

  1. abstract def afterPhaseCompletion(ps: PropertyStore): Unit

    Called after phase completion.

  2. abstract def beforeSchedule(ps: PropertyStore): Unit

    Called directly before the analysis is scheduled.

    Called directly before the analysis is scheduled. I.e., after phase setup, but potentially after other analyses are already scheduled.

  3. abstract def derives: Set[PropertyKind]

    Returns the set of property kinds derived by the underlying analysis.

  4. abstract def init(ps: PropertyStore): InitializationData

    Called before any analysis is called/scheduled that will be executed in the same phase.

    Called before any analysis is called/scheduled that will be executed in the same phase. This enables further initialization of the computations that will eventually be executed. For example to initialize global configuration information.

    If an org.opalj.fpcf.AnalysisScenario is used to compute a schedule and to execute it later on, init will be called before any analysis is scheduled – independent of the batch in which it will run.

    A computation specification MUST NOT call any methods of the property store that may trigger or schedule computations; i.e., it must – in particular – not call the methods apply, schedule*, register* or waitOnPhaseCompletion.

  5. abstract def isLazy: Boolean

    Has to be true if a computation is performed lazily.

    Has to be true if a computation is performed lazily. This is used to check that we never schedule multiple lazy analyses which compute the same kind of property.

    Note

    Collaboratively computed properties can only be computed by eager analyses.

  6. abstract def schedule(ps: PropertyStore, i: InitializationData): Unit

    Called by the scheduler to start execution of this analysis.

    Called by the scheduler to start execution of this analysis.

    The analysis may very well be a lazy computation.

  7. abstract def uses: Set[PropertyKind]

    Returns the kinds of properties which are queried by this analysis.

    Returns the kinds of properties which are queried by this analysis.

    Note

    This set consists only of property kinds 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.

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  10. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. def name: String

    Returns a short descriptive name of the computation which is described by this specification.

    Returns a short descriptive name of the computation which is described by this specification.

    The default name is the name of this class.

    This method should be overridden.

  13. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  16. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  17. def toString(): String
    Definition Classes
    ComputationSpecification → AnyRef → Any
  18. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  20. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped