package immutability
- Alphabetic
- Public
- Protected
Type Members
- sealed trait ClassImmutability extends OrderedProperty with ClassImmutabilityPropertyMetaInformation
Describes the class immutability of org.opalj.br.ClassFile.
Describes the class immutability of org.opalj.br.ClassFile. The immutability of the classes are represented via the lower bound of the immutability of their instance fields and the immutability of its supertype.
MutableClass The class has mutable fields.
NonTransitivelyImmutableClass A class that's transitive state is not immutable but the values or objects representing this transitive state (are not / can not be) exchanged.
DependentlyImmutableClass A class that is at least non-transitively immutable. Whether it is non-transitively or transitively immutable depends on (a) generic parameter(s).
TransitivelyImmutableClass A class with a transitively immutable state.
- sealed trait ClassImmutabilityPropertyMetaInformation extends PropertyMetaInformation
- case class DependentlyImmutableClass(parameters: SortedSet[String]) extends ClassImmutability with Product with Serializable
- case class DependentlyImmutableField(parameters: SortedSet[String]) extends FieldImmutability with Product with Serializable
- case class DependentlyImmutableType(parameters: SortedSet[String]) extends TypeImmutability with Product with Serializable
- sealed trait FieldAssignability extends OrderedProperty with FieldAssignabilityPropertyMetaInformation
Describes the assignability of org.opalj.br.Field.
Describes the assignability of org.opalj.br.Field.
Assignable The referenced object can be exchanged.
UnsafelyLazilyInitialized The field is lazily initialized in a not thread safe way.
LazilyInitialized The field reference is lazily initialized in a thread safe way.
EffectivelyNonAssignable The value or object the field refers to is not exchanged.
NonAssignable The field is final.
- sealed trait FieldAssignabilityPropertyMetaInformation extends PropertyMetaInformation
- sealed trait FieldImmutability extends OrderedProperty with FieldImmutabilityPropertyMetaInformation
Describes the field immutability of org.opalj.br.Field
Describes the field immutability of org.opalj.br.Field
MutableField The field is assignable
NonTransitivelyImmutableField A not assignable field and a non-transitively immutable or mutable data type
DependentlyImmutableField A not assignable field with a generic type and parts of it are not substantiated in an non-transitively or transitively immutable
TransitivelyImmutableField A not assignable field with a transitively immutable field type or a referenced object that can not escape or its state cannot be mutated.
- sealed trait FieldImmutabilityPropertyMetaInformation extends PropertyMetaInformation
- sealed trait NonAssignableField extends FieldAssignability
- sealed trait TypeImmutability extends OrderedProperty with TypeImmutabilityPropertyMetaInformation
Specifies the immutability of a given type.
Specifies the immutability of a given type.
This property is of particular interest if the precise type cannot be computed statically. This property basically depends on the org.opalj.br.analyses.cg.TypeExtensibilityKey and ClassImmutability.
- sealed trait TypeImmutabilityPropertyMetaInformation extends PropertyMetaInformation
Value Members
- case object Assignable extends FieldAssignability with Product with Serializable
- object ClassImmutability extends ClassImmutabilityPropertyMetaInformation
- case object EffectivelyNonAssignable extends NonAssignableField with Product with Serializable
- object FieldAssignability extends FieldAssignabilityPropertyMetaInformation
- object FieldImmutability extends FieldImmutabilityPropertyMetaInformation
- case object LazilyInitialized extends NonAssignableField with Product with Serializable
- case object MutableClass extends ClassImmutability with Product with Serializable
- case object MutableField extends FieldImmutability with Product with Serializable
- case object MutableType extends TypeImmutability with Product with Serializable
- case object NonAssignable extends NonAssignableField with Product with Serializable
- case object NonTransitivelyImmutableClass extends ClassImmutability with Product with Serializable
- case object NonTransitivelyImmutableField extends FieldImmutability with Product with Serializable
- case object NonTransitivelyImmutableType extends TypeImmutability with Product with Serializable
- case object TransitivelyImmutableClass extends ClassImmutability with Product with Serializable
- case object TransitivelyImmutableField extends FieldImmutability with Product with Serializable
- case object TransitivelyImmutableType extends TypeImmutability with Product with Serializable
An instance of the respective class is effectively immutable.
An instance of the respective class is effectively immutable. I.e., after creation it is not possible for a client to set a field or to call a method that updates the internal state
- object TypeImmutability extends TypeImmutabilityPropertyMetaInformation
- case object UnsafelyLazilyInitialized extends FieldAssignability with Product with Serializable