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.
- Alphabetic
- By Inheritance
- ComputationSpecification
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
- abstract type InitializationData
Abstract Value Members
-
abstract
def
afterPhaseCompletion(ps: PropertyStore): Unit
Called after phase completion.
-
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.
-
abstract
def
derives: Set[PropertyKind]
Returns the set of property kinds derived by the underlying analysis.
-
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,
initwill 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*orwaitOnPhaseCompletion. -
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.
-
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.
-
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
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
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
thisclass.This method should be overridden.
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- ComputationSpecification → AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )