Class ProcessDefinitions

java.lang.Object
su.onno.process.ProcessDefinitions

public final class ProcessDefinitions extends Object
Validated, version-aware registry of application-provided process definitions.
  • Constructor Details

    • ProcessDefinitions

      public ProcessDefinitions(List<ProcessDefinition<?,?>> definitions)
      Register definitions without version migrations. Existing definitions default to version 1.
    • ProcessDefinitions

      public ProcessDefinitions(List<ProcessDefinition<?,?>> definitions, List<ProcessDefinitionMigration<?,?,?,?>> migrations)
      Register versioned definitions and their deterministic forward migration edges.
  • Method Details

    • require

      public ProcessDefinition<?,?> require(String key)
      Resolve the latest registered version for a stable definition key.
    • require

      public ProcessDefinition<?,?> require(String key, int version)
      Resolve the exact definition version persisted by an instance.
    • all

      public List<ProcessDefinition<?,?>> all()
      Latest definition for each stable key, in registration-key order.
    • allVersions

      public List<ProcessDefinition<?,?>> allVersions()
      Every registered definition version, ordered by key registration and ascending version.
    • versions

      public List<ProcessDefinition<?,?>> versions(String key)
      Registered versions for one stable definition key, in ascending order.
    • migrationPath

      public List<ProcessDefinitionMigration<?,?,?,?>> migrationPath(String key, int storedVersion)
      Resolve the deterministic migration chain from a stored version to the latest version.
      Throws:
      IllegalArgumentException - when the stored version is unknown or no complete path exists
    • migrationPath

      public List<ProcessDefinitionMigration<?,?,?,?>> migrationPath(String key, int fromVersion, int toVersion)
      Resolve a deterministic forward migration chain between two registered versions.

      Each source version may have only one outgoing migration, so lookup can never silently choose between competing upgrade routes.