Ex4pmCore.ProcessIR (ex4pm v26.9.9)

Copy Markdown View Source

Canonical Process Intermediate Representation (ProcessIR). Represents processes, activities, choices, loops, partial orders, guards, policies, objects, and relationships.

Summary

Functions

Deterministic digest of the ProcessIR.

Constructs a new ProcessIR and validates referential integrity and acyclicity.

Converts ProcessIR to a serializable map.

Validates referential integrity, acyclic partial orders, and policy targets.

Types

t()

@type t() :: %Ex4pmCore.ProcessIR{
  activities: %{optional(String.t()) => Ex4pmCore.ProcessIR.Activity.t()},
  choices: %{optional(String.t()) => Ex4pmCore.ProcessIR.Choice.t()},
  guards: %{optional(String.t()) => Ex4pmCore.ProcessIR.Guard.t()},
  id: String.t(),
  loops: %{optional(String.t()) => Ex4pmCore.ProcessIR.Loop.t()},
  metadata: map(),
  name: String.t(),
  objects: %{optional(String.t()) => Ex4pmCore.ProcessIR.ObjectType.t()},
  partial_orders: %{
    optional(String.t()) => Ex4pmCore.ProcessIR.PartialOrder.t()
  },
  policies: %{optional(String.t()) => Ex4pmCore.ProcessIR.Policy.t()},
  relationships: %{optional(String.t()) => Ex4pmCore.ProcessIR.Relationship.t()},
  root: String.t() | term() | nil,
  subject: Ex4pm.Subject.t() | nil,
  version: String.t()
}

Functions

add_activity(ir, activity)

add_choice(ir, choice)

add_guard(ir, guard)

add_loop(ir, loop)

add_object(ir, object_type)

add_partial_order(ir, po)

add_policy(ir, policy)

add_relationship(ir, relationship)

digest(ir)

Deterministic digest of the ProcessIR.

new(attrs \\ %{})

Constructs a new ProcessIR and validates referential integrity and acyclicity.

to_canonical_map(ir)

Converts ProcessIR to a serializable map.

validate(ir)

Validates referential integrity, acyclic partial orders, and policy targets.