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. 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.
- Alphabetic
- By Inheritance
- L0FieldMutabilityAnalysis
- FPCFAnalysis
- ProjectBasedAnalysis
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
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
-
final
def
ch: ClassHierarchy
- Definition Classes
- ProjectBasedAnalysis
-
implicit final
def
classHierarchy: ClassHierarchy
- Definition Classes
- ProjectBasedAnalysis
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
def
determineFieldMutability(field: Field): PropertyComputationResult
Analyzes the mutability of private static non-final fields.
Analyzes the mutability of private static non-final fields.
This analysis is only defined and soundy if the class file does not contain native methods and the method body of all non-abstract methods is available. (If the analysis is scheduled using its companion object, all class files with native methods are filtered.)
- field
A field without native methods and where the method body of all non-abstract methods is available.
-
def
determineFieldMutabilityLazy(e: Entity): PropertyComputationResult
Invoked for in the lazy computation case.
Invoked for in the lazy computation case. Final fields are considered org.opalj.fpcf.properties.DeclaredFinalField, non-final and non-private fields or fields of library classes whose method bodies are not available are considered org.opalj.fpcf.properties.NonFinalFieldByAnalysis. For all other cases the call is delegated to determineFieldMutability.
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final val fieldAccessInformation: FieldAccessInformation
-
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
-
implicit final
def
logContext: LogContext
- Definition Classes
- ProjectBasedAnalysis
-
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
p: Project[_]
- Definition Classes
- ProjectBasedAnalysis
-
val
project: SomeProject
- Definition Classes
- L0FieldMutabilityAnalysis → ProjectBasedAnalysis
-
implicit final
val
propertyStore: PropertyStore
- Definition Classes
- FPCFAnalysis
-
final
def
ps: PropertyStore
- Definition Classes
- FPCFAnalysis
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- 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( ... )