package analyses
- Alphabetic
- Public
- All
Type Members
-
class
ClassImmutabilityAnalysis extends FPCFAnalysis
Determines the mutability of instances of a specific class.
Determines the mutability of instances of a specific class. In case the class is abstract the (implicit) assumption is made that all abstract methods (if any) are/can be implemented without necessarily/always requiring additional state; i.e., only the currently defined fields are taken into consideration. An interfaces is always considered to be immutable. If you need to know if all possible instances of an interface or some type; i.e., all instances of the classes that implement the respective interface/inherit from some class are immutable, you can query the org.opalj.fpcf.properties.TypeImmutability property.
In case of incomplete class hierarchies or if the class hierarchy is complete, but some class files are not found the sound approximation is done that the respective classes are mutable.
This analysis uses the org.opalj.fpcf.properties.FieldMutability property to determine those fields which could be final, but which are not declared as final.
TODO Discuss the case if a constructor calls an instance method which is overrideable (See Verifiable Functional Purity Paper for some arguements.)
- trait ClassImmutabilityAnalysisScheduler extends ComputationSpecification
- class ConfiguredPurity extends AnyRef
-
class
L0AllocationFreenessAnalysis extends FPCFAnalysis
A simple analysis that identifies methods that never allocate any objects/arrays.
- trait L0AllocationFreenessAnalysisScheduler extends ComputationSpecification
-
class
L0CompileTimeConstancyAnalysis extends FPCFAnalysis
A simple analysis that identifies constant (effectively) final static fields that are deterministically initialized to the same value on every program execution.
A simple analysis that identifies constant (effectively) final static fields that are deterministically initialized to the same value on every program execution. This analysis just examines the ConstantValue attribute of the field.
- trait L0CompileTimeConstancyAnalysisScheduler extends ComputationSpecification
-
class
L0FieldMutabilityAnalysis extends FPCFAnalysis
Determines if a private, static, non-final field is always initialized at most once or if a field is or can be mutated after (lazy) initialization.
Determines if a private, static, non-final field is always initialized at most once or if a field is or can be mutated after (lazy) initialization. Field read and writes at initialization time (e.g., if the current class object is registered in some publically available data-store) are not considered. This is in-line with the semantics of final, which also does not prevent reads of partially initialized objects.
- trait L0FieldMutabilityAnalysisScheduler extends ComputationSpecification
-
class
L0PurityAnalysis extends FPCFAnalysis
Very simple, fast, sound but also imprecise analysis of the purity of methods.
Very simple, fast, sound but also imprecise analysis of the purity of methods. See the org.opalj.fpcf.properties.Purity property for details regarding the precise semantics of
(Im)Pure.This analysis is a very, very shallow implementation that immediately gives up, when something "complicated" (e.g., method calls which take objects) is encountered. It also does not perform any significant control-/data-flow analyses.
- trait L0PurityAnalysisScheduler extends ComputationSpecification
-
class
L0SelfReferenceLeakageAnalysis extends FPCFAnalysis
A shallow analysis that computes the self reference leakage property.
-
class
L1ThrownExceptionsAnalysis extends FPCFAnalysis
Analysis of thrown exceptions; computes the org.opalj.fpcf.properties.ThrownExceptions property.
-
class
MethodComplexityAnalysis extends AnyRef
A shallow analysis that tries to identify methods that are relatively simple, that is, which don't have loops and don't depend on other (more) complex methods.
A shallow analysis that tries to identify methods that are relatively simple, that is, which don't have loops and don't depend on other (more) complex methods. For such methods it often makes sense to "inline them at analysis time".
-
class
StaticDataUsageAnalysis extends FPCFAnalysis
A simple analysis that identifies methods that use global state that may vary during one or between several program executions.
- trait StaticDataUsageAnalysisScheduler extends ComputationSpecification
- abstract class ThrownExceptionsAnalysisScheduler extends ComputationSpecification
-
class
TypeImmutabilityAnalysis extends FPCFAnalysis
Determines the mutability of a specific type by checking if all subtypes of a specific type are immutable and checking that the set of types is closed.
- trait TypeImmutabilityAnalysisScheduler extends ComputationSpecification
-
class
VirtualCallAggregatingEscapeAnalysis extends FPCFAnalysis
Aggregates the escape information for virtual formal parameters.
Aggregates the escape information for virtual formal parameters. That are all possible call targets that override the method attached to the virtual method.
- sealed trait VirtualCallAggregatingEscapeAnalysisScheduler extends ComputationSpecification
-
class
VirtualMethodAllocationFreenessAnalysis extends FPCFAnalysis
Determines the aggregated allocation freeness for virtual methods.
- trait VirtualMethodAllocationFreenessAnalysisScheduler extends ComputationSpecification
-
class
VirtualMethodPurityAnalysis extends FPCFAnalysis
Determines the aggregated purity for virtual methods.
- trait VirtualMethodPurityAnalysisScheduler extends ComputationSpecification
-
class
VirtualMethodStaticDataUsageAnalysis extends FPCFAnalysis
Determines the aggregated static data usage for virtual methods.
- trait VirtualMethodStaticDataUsageAnalysisScheduler extends ComputationSpecification
-
class
VirtualMethodThrownExceptionsAnalysis extends FPCFAnalysis
Aggregates the exceptions thrown by a method over all methods which override the respective method.
- trait VirtualMethodThrownExceptionsAnalysisScheduler extends AnyRef
-
class
VirtualReturnValueFreshnessAnalysis extends FPCFAnalysis
An analysis that aggregates whether the return value for all possible methods represented by a given org.opalj.br.DeclaredMethod are always freshly allocated.
- sealed trait VirtualReturnValueFreshnessAnalysisScheduler extends ComputationSpecification
Value Members
- object ConfiguredPurityKey extends ProjectInformationKey[ConfiguredPurity, Nothing]
-
object
EagerClassImmutabilityAnalysis extends ClassImmutabilityAnalysisScheduler with FPCFEagerAnalysisScheduler
Scheduler to run the immutability analysis eagerly.
- object EagerL0AllocationFreenessAnalysis extends L0AllocationFreenessAnalysisScheduler with FPCFEagerAnalysisScheduler
- object EagerL0CompileTimeConstancyAnalysis extends L0CompileTimeConstancyAnalysisScheduler with FPCFEagerAnalysisScheduler
-
object
EagerL0FieldMutabilityAnalysis extends L0FieldMutabilityAnalysisScheduler with FPCFEagerAnalysisScheduler
Factory object to create instances of the FieldMutabilityAnalysis.
- object EagerL0PurityAnalysis extends L0PurityAnalysisScheduler with FPCFEagerAnalysisScheduler
-
object
EagerL1ThrownExceptionsAnalysis extends ThrownExceptionsAnalysisScheduler with FPCFEagerAnalysisScheduler
Factory and runner for the L1ThrownExceptionsAnalysis.
- object EagerStaticDataUsageAnalysis extends StaticDataUsageAnalysisScheduler with FPCFEagerAnalysisScheduler
-
object
EagerTypeImmutabilityAnalysis extends TypeImmutabilityAnalysisScheduler with FPCFEagerAnalysisScheduler
Starter for the type immutability analysis.
- object EagerVirtualCallAggregatingEscapeAnalysis extends VirtualCallAggregatingEscapeAnalysisScheduler with FPCFEagerAnalysisScheduler
- object EagerVirtualMethodAllocationFreenessAnalysis extends VirtualMethodAllocationFreenessAnalysisScheduler with FPCFEagerAnalysisScheduler
- object EagerVirtualMethodPurityAnalysis extends VirtualMethodPurityAnalysisScheduler with FPCFEagerAnalysisScheduler
- object EagerVirtualMethodStaticDataUsageAnalysis extends VirtualMethodStaticDataUsageAnalysisScheduler with FPCFEagerAnalysisScheduler
-
object
EagerVirtualMethodThrownExceptionsAnalysis extends VirtualMethodThrownExceptionsAnalysisScheduler with FPCFEagerAnalysisScheduler
Factory/executor of the thrown exceptions analysis.
- object EagerVirtualReturnValueFreshnessAnalysis extends VirtualReturnValueFreshnessAnalysisScheduler with FPCFEagerAnalysisScheduler
- object L0SelfReferenceLeakageAnalysis extends FPCFEagerAnalysisScheduler
-
object
LazyClassImmutabilityAnalysis extends ClassImmutabilityAnalysisScheduler with FPCFLazyAnalysisScheduler
Scheduler to run the immutability analysis lazily.
- object LazyL0AllocationFreenessAnalysis extends L0AllocationFreenessAnalysisScheduler with FPCFLazyAnalysisScheduler
- object LazyL0CompileTimeConstancyAnalysis extends L0CompileTimeConstancyAnalysisScheduler with FPCFLazyAnalysisScheduler
- object LazyL0FieldMutabilityAnalysis extends L0FieldMutabilityAnalysisScheduler with FPCFLazyAnalysisScheduler
- object LazyL0PurityAnalysis extends L0PurityAnalysisScheduler with FPCFLazyAnalysisScheduler
-
object
LazyL1ThrownExceptionsAnalysis extends ThrownExceptionsAnalysisScheduler with FPCFLazyAnalysisScheduler
Factory and runner for the L1ThrownExceptionsAnalysis.
- object LazyStaticDataUsageAnalysis extends StaticDataUsageAnalysisScheduler with FPCFLazyAnalysisScheduler
- object LazyTypeImmutabilityAnalysis extends TypeImmutabilityAnalysisScheduler with FPCFLazyAnalysisScheduler
- object LazyVirtualCallAggregatingEscapeAnalysis extends VirtualCallAggregatingEscapeAnalysisScheduler with FPCFLazyAnalysisScheduler
- object LazyVirtualMethodAllocationFreenessAnalysis extends VirtualMethodAllocationFreenessAnalysisScheduler with FPCFLazyAnalysisScheduler
- object LazyVirtualMethodPurityAnalysis extends VirtualMethodPurityAnalysisScheduler with FPCFLazyAnalysisScheduler
- object LazyVirtualMethodStaticDataUsageAnalysis extends VirtualMethodStaticDataUsageAnalysisScheduler with FPCFLazyAnalysisScheduler
-
object
LazyVirtualMethodThrownExceptionsAnalysis extends VirtualMethodThrownExceptionsAnalysisScheduler with FPCFLazyAnalysisScheduler
Factory/executor of the thrown exceptions analysis.
- object LazyVirtualReturnValueFreshnessAnalysis extends VirtualReturnValueFreshnessAnalysisScheduler with FPCFLazyAnalysisScheduler