Enum Class ValueClassId

java.lang.Object
java.lang.Enum<ValueClassId>
org.ek9lang.compiler.support.inputvariety.ValueClassId
All Implemented Interfaces:
Serializable, Comparable<ValueClassId>, Constable

public enum ValueClassId extends Enum<ValueClassId>
THE shared value-class vocabulary for the input-variation metric — one taxonomy, three consumers (docs/implementation/EK9_INPUT_VARIATION_CLASS_TAXONOMY.md):
  1. the denominator counter (EquivalenceClassModel) — counts distinct ids per type for the static opportunity space;
  2. the runtime classifier (INPUT_CLASS_PROBE recorder) — places an actual runtime value into one of these ids for the dynamic numerator (design §5);
  3. the generator (EdgeValuePool, compiler-services) — holds representative literals per id for ek9_generate_edge_case_tests.

Generic ordinal ids (ZERO, MIN, MAX, …) are reused across every ordered type so the pairwise-combination logic and coverage reports speak one vocabulary; family-specific ids (LEAP_DATE, CROSS_CURRENCY, …) name genuine domain edges worth surfacing on their own ("you never tested the leap-day class").

Persisted contract — append-only. Once these ids appear in squirrelled data / directives / recorded numerators they are a stable contract; add new ids at the end of their family, never renumber or remove (design §12.7).

  • Enum Constant Details

    • UNSET

      public static final ValueClassId UNSET
      Tri-state unset — always present for every EK9 type, always counts.
    • SET

      public static final ValueClassId SET
      "Value present, no further distinction" — opaque types only.
    • ZERO

      public static final ValueClassId ZERO
      Additive identity / origin.
    • NEGATIVE

      public static final ValueClassId NEGATIVE
      Representative negative.
    • POSITIVE

      public static final ValueClassId POSITIVE
      Representative small positive.
    • TYPICAL

      public static final ValueClassId TYPICAL
      Representative interior value (mid-range).
    • MIN

      public static final ValueClassId MIN
      Type / domain lower bound.
    • MAX

      public static final ValueClassId MAX
      Type / domain upper bound.
    • NEAR_MIN

      public static final ValueClassId NEAR_MIN
      Just inside min (min+1) — off-by-one boundary.
    • NEAR_MAX

      public static final ValueClassId NEAR_MAX
      Just inside max (max-1) — off-by-one boundary.
    • EPSILON

      public static final ValueClassId EPSILON
      Smallest-magnitude non-zero (± held as literals).
    • NON_FINITE

      public static final ValueClassId NON_FINITE
      NaN / ±infinity — only if EK9 Float exposes them (taxonomy open question).
    • EMPTY

      public static final ValueClassId EMPTY
      "" — set but zero length.
    • BLANK

      public static final ValueClassId BLANK
      Whitespace-only.
    • SINGLE_CHAR

      public static final ValueClassId SINGLE_CHAR
      One character.
    • SPECIAL_CHARS

      public static final ValueClassId SPECIAL_CHARS
      Punctuation / non-alphanumeric.
    • LONG

      public static final ValueClassId LONG
      Long string — buffer / length boundary.
    • LOWER_ALPHA

      public static final ValueClassId LOWER_ALPHA
    • UPPER_ALPHA

      public static final ValueClassId UPPER_ALPHA
    • DIGIT

      public static final ValueClassId DIGIT
    • WHITESPACE_CHAR

      public static final ValueClassId WHITESPACE_CHAR
    • EPOCH

      public static final ValueClassId EPOCH
      Reference origin (acts as MIN for Date/Time).
    • LEAP_DATE

      public static final ValueClassId LEAP_DATE
      Feb 29 — calendrical edge.
    • DAY_BOUNDARY

      public static final ValueClassId DAY_BOUNDARY
      Midnight / 24h rollover.
    • UNIT_BOUNDARY

      public static final ValueClassId UNIT_BOUNDARY
      Sub-unit rollover (1000ms = 1s, 60s = 1min, …).
    • SMALLEST_UNIT

      public static final ValueClassId SMALLEST_UNIT
      Money 0.01, Dimension 1mm — minimal representable step.
    • CROSS_CURRENCY

      public static final ValueClassId CROSS_CURRENCY
      Money in a different currency — categorical edge.
    • ALL_ZEROS

      public static final ValueClassId ALL_ZEROS
    • ALL_ONES

      public static final ValueClassId ALL_ONES
    • SINGLE_BIT

      public static final ValueClassId SINGLE_BIT
    • BIT_PATTERN

      public static final ValueClassId BIT_PATTERN
    • EMPTY_COLLECTION

      public static final ValueClassId EMPTY_COLLECTION
    • SINGLETON

      public static final ValueClassId SINGLETON
    • FEW

      public static final ValueClassId FEW
    • LARGE_COLLECTION

      public static final ValueClassId LARGE_COLLECTION
    • HAS_DUPLICATES

      public static final ValueClassId HAS_DUPLICATES
    • HAS_UNSET_ELEMENT

      public static final ValueClassId HAS_UNSET_ELEMENT
    • SORTED

      public static final ValueClassId SORTED
    • UNSORTED

      public static final ValueClassId UNSORTED
    • TRUE

      public static final ValueClassId TRUE
    • FALSE

      public static final ValueClassId FALSE
  • Method Details

    • values

      public static ValueClassId[] 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 ValueClassId 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