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:
-
Model Access: Unified interface to source and target models
-
Navigation: Property traversal with caching and type checking
-
Expression Evaluation: OCL-like expression processing
-
Type Resolution: Dynamic type lookup and validation
-
Performance: Intelligent caching and batch operations
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
Creates a new execution engine with the specified models.
Instance Methods
Find all objects of a given type across all models.
Clear all caches to free memory.
Enable or disable debug output for systematic tracing.
Evaluate an expression in the context of given bindings.
Find the first object of a given type.
Get cache statistics for performance monitoring.
Navigate a property from a source object.
Registers a model with the execution engine.
Set a property value on an object.
Default Implementations
Relationships
Conforms To
See Also
Query and Execution
Query framework for ECore models inspired by OCL.
Protocol abstracting model access for transformation engines.