# Package org.eclipse.viatra.transformation.evm.api

- Interface Summary
  Interface | Description
  --- | ---
  IExecutor | Interface that defines the main entry points of EVM based execution.
  Scheduler.ISchedulerFactory | Factory interface for preparing a scheduler for a given executor.

- Class Summary
  Class | Description
  --- | ---
  Activation<EventAtom> | An `Activation` is a created for a `RuleInstance` when the preconditions (LHS) are fully satisfied with some domain model elements and the instance becomes eligible for execution.
  ActivationLifeCycle | A life cycle describes how the state of an activation changes in response to an event.
  ActivationLifeCycle.Transition |
  Agenda | Sole purpose is the management all and ordering of enabled activations!
  CompositeJob<EventAtom> |
  ConflictSetIterator | Iterator that iterates through the elements of a `ConflictSet`.
  Context | A context is an associative store that is accessible during the execution of the EVM, and thus usable by the Sceduler, Executor, RuleBase, Rule Instances, Activations and Jobs.
  DefaultActivationNotificationListener | This class is responsible for handling notifications sent by rule instances when an activation changes state.
  EventDrivenVM | Utility class for creating new rule engines and execution schemes.
  ExecutionSchema | An execution schema is a special rule engine and a facade for accessing the EVM.
  Executor | Default `IExecutor` implementation, that fires a provided set of activations.
  Job<EventAtom> | A job represents an action that can be executed on an activation if it is in the state defined by the job.
  RuleBase | An RuleBase is associated to an `EventRealm` and it is responsible for creating, managing and disposing rules in the Rule Engine.
  RuleEngine | A rule engine is a facade for accessing the EVM, it allows the retrieval of all activations and filtered access by state, specification or both.
  RuleInstance<EventAtom> | The rule instance is created in the EVM for a rule specification.
  RuleSpecification<EventAtom> | A rule specification specifies how the set of individual rule activations and their states are computed, what jobs (operations) to perform when an activation is executed, and how events affect the state of the activations based on a life-cycle model.
  ScheduledExecution | The Scheduled Execution is responsible for firing enabled activations of its `RuleBase`, when its `Scheduler` notifies it.
  Scheduler | The scheduler is used to define when the executor of a schema should start its execution strategy.