Enum Class ObjectProvability

java.lang.Object
java.lang.Enum<ObjectProvability>
org.ek9lang.compiler.phase5.lockanalysis.ObjectProvability
All Implemented Interfaces:
Serializable, Comparable<ObjectProvability>, Constable

public enum ObjectProvability extends Enum<ObjectProvability>
Provability of the OBJECT that bears a field-rooted MutexLock at an enter site — the answer to "can a single consistent global acquisition order be proven for two locks sharing the same field declaration but reached through this object?" (Stage-3 Phase 2/3b, deadlock detection).

Only STATIC objects are orderable relative to each other; the others are caller- or runtime-determined and so cannot be placed in a provable order. Used by the object-precise lock-identity composition and the Category-C verdict.

  • Nested Class Summary

    Nested classes/interfaces inherited from class Enum

    Enum.EnumDesc<E>
  • Enum Constant Summary

    Enum Constants
    Enum Constant
    Description
    The object is an incoming parameter (or a local provably bound to one).
    The object's receiver resolves polymorphically (via run-time type analysis) to more than one concrete type → the acquisition order is unprovable.
    The object is a local whose value comes from a runtime selection — a collection/dictionary lookup (get(i) / getOrDefault / key access) or similar.
    The object is statically nameable: rooted at this / a primary reference, or a module-level singleton, with an all-field access chain.
    The object could not be classified (extraction did not recognise the shape).
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns the enum constant of this class with the specified name.
    Returns an array containing the constants of this enum class, in the order they are declared.

    Methods inherited from class Object

    getClass, notify, notifyAll, wait, wait, wait
  • Enum Constant Details

    • STATIC

      public static final ObjectProvability STATIC
      The object is statically nameable: rooted at this / a primary reference, or a module-level singleton, with an all-field access chain. Two distinct STATIC objects are orderable by their access path.
    • PARAMETER

      public static final ObjectProvability PARAMETER
      The object is an incoming parameter (or a local provably bound to one). Caller-supplied and interchangeable across call sites → unprovable order.
    • RUNTIME

      public static final ObjectProvability RUNTIME
      The object is a local whose value comes from a runtime selection — a collection/dictionary lookup (get(i) / getOrDefault / key access) or similar. The concrete object is decided at runtime → unprovable.
    • POLYMORPHIC

      public static final ObjectProvability POLYMORPHIC
      The object's receiver resolves polymorphically (via run-time type analysis) to more than one concrete type → the acquisition order is unprovable.
    • UNKNOWN

      public static final ObjectProvability UNKNOWN
      The object could not be classified (extraction did not recognise the shape). Treated conservatively as unprovable by the verdict.
  • Method Details

    • values

      public static ObjectProvability[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static ObjectProvability valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null