Packages

object PropertyKey

Factory and registry for PropertyKey objects.

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

Type Members

  1. type CycleResolutionStrategy[E <: Entity, P <: Property] = (PropertyStore, EPS[E, P]) ⇒ P

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. def create[E <: Entity, P <: Property](name: String, fallbackProperty: P, cycleResolutionStrategy: CycleResolutionStrategy[E, P] = ..., fastTrackPropertyComputation: (PropertyStore, E) ⇒ Option[P] = ...): PropertyKey[P]
  7. def create[E <: Entity, P <: Property](name: String, fallbackPropertyComputation: FallbackPropertyComputation[E, P], cycleResolutionStrategy: CycleResolutionStrategy[E, P], fastTrackPropertyComputation: (PropertyStore, E) ⇒ Option[P]): PropertyKey[P]

    Creates a new PropertyKey object that is to be shared by all regular properties that belong to the same category.

    Creates a new PropertyKey object that is to be shared by all regular properties that belong to the same category.

    name

    The unique name associated with the property. To ensure uniqueness it is recommended to prepend (parts of) the package name of property. Properties defined by OPAL start with "opalj."

    fallbackPropertyComputation

    A function that returns the property that will be associated with those entities for which the property is not explicitly computed. This is generally the bottom value of the lattice. However, if an analysis was scheduled, but a property was not computed, a special (alternative) value can be used. This is in particular relevant for properties which depend on the reachable code.

    cycleResolutionStrategy

    The strategy that will be used to resolve unfinished cyclic computations. In the vast majority of cases it is sufficient to just commit the given value.

    fastTrackPropertyComputation

    (Optionally) called by the property store if the property is computed in the current phase and is queried the first time (see PropertyStore.setupPhase). This method is expected to either provide a precise analysis very fast or to not provide a result at all. I.e., it is expected to derive only those properties that can trivially be derived precisely.

  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  10. def fallbackProperty[P <: Property](ps: PropertyStore, fr: FallbackReason, e: Entity, pk: PropertyKey[P]): P

    Note

    This method is intended to be called by the framework.

  11. def fastTrackProperty[P <: Property](ps: PropertyStore, e: Entity, pk: PropertyKey[P]): Option[P]

    Note

    This method is intended to be called by the framework.

  12. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  13. def forSimpleProperty[P <: Property](name: String, notComputedProperty: P): PropertyKey[P]

    Creates a new PropertyKey for a simple property.

    Creates a new PropertyKey for a simple property.

    Simple properties are only to be used for properties for which a (meaningful) lower bound does not exists or is very hard to compute and is – in particular – never of interest for clients. Additionally, a basic analysis which derives the property has to exist; if no analysis is scheduled the client would not be able to distinguish between this case where no analysis is run and the case where an analysis does not derive a value for a specific entity (e.g., because the entity is unused/dead).

    notComputedProperty

    This property is used as the "fallback" when the property is not computed for a specific entity though an analysis is scheduled.

  14. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  15. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  16. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  17. def isPropertyKeyForSimpleProperty(pk: SomePropertyKey): Boolean
  18. def isPropertyKeyForSimplePropertyBasedOnPKId(pkId: Int): Boolean
  19. def isPropertyKindForSimpleProperty(pk: PropertyKind): Boolean
  20. final def name(pKind: PropertyKind): String
  21. def name(id: Int): String

    Returns the unique name of the kind of properties associated with the given key id.

  22. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  23. def notComputedProperty[P <: Property](pk: PropertyKey[P]): P

    Note

    This method is intended to be called by the framework.

  24. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  25. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  26. def resolveCycle[E <: Entity, P <: Property](ps: PropertyStore, eps: EPS[E, P]): P

    Note

    This method is intended to be called by the framework.

  27. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  28. def toString(): String
    Definition Classes
    AnyRef → Any
  29. def updateCycleResolutionStrategy[E <: Entity, P <: Property](key: PropertyKey[P], cycleResolutionStrategy: CycleResolutionStrategy[E, P]): CycleResolutionStrategy[E, P]

    Updates the (default) cycle resolution strategy associated with a specific kind of property.

    Updates the (default) cycle resolution strategy associated with a specific kind of property. Updating the strategy is typically done by analyses that require a different strategy than the one defined by the property. For example, an analysis, which just computes a lower bound, generally has to overwrite the default strategy which picks the upper bound in case of a closed strongly connected component.

    returns

    The old strategy.

  30. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  31. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  32. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped