Documentation Language: Swift

Class

ECoreExecutionEngine

Core execution engine providing model navigation and query capabilities.

actor ECoreExecutionEngine

Overview

The execution engine serves as the central coordinator for model operations, providing thread-safe access to navigation, querying, and expression evaluation. It maintains performance optimisations through caching whilst ensuring consistency across concurrent operations.

Architecture

The engine follows a layered approach:

Example Usage

let engine = ECoreExecutionEngine(models: [
    "source": sourceModel,
    "target": targetModel
])

let result = try await engine.navigate(from: person, property: "name")
let instances = engine.allInstancesOf(personClass)

Topics

Initializers

?
init(models:enableDebugging:)

Creates a new execution engine with the specified models.

Instance Methods

F
allInstancesOf(_:)

Find all objects of a given type across all models.

F
clearCaches()

Clear all caches to free memory.

F
enableDebugging(_:)

Enable or disable debug output for systematic tracing.

F
evaluate(_:context:)

Evaluate an expression in the context of given bindings.

F
firstInstanceOf(_:)

Find the first object of a given type.

F
getCacheStatistics()

Get cache statistics for performance monitoring.

F
navigate(from:property:)

Navigate a property from a source object.

F
registerModel(_:alias:)

Registers a model with the execution engine.

F
setProperty(_:property:value:)

Set a property value on an object.

Default Implementations

Relationships

Conforms To

See Also

Query and Execution

S
ECoreQuery

Query framework for ECore models inspired by OCL.

P
IModel

Protocol abstracting model access for transformation engines.