Closed dvojtise closed 4 years ago
very nice!
Makes me think that a rather fun thing would be a generic SiriusInterpreter able to retrieve runtime data defined with any sort of metaprogramming approach.
Makes me think that a rather fun thing would be a generic SiriusInterpreter able to retrieve runtime data defined with any sort of metaprogramming approach.
This would be cool indeed because currently every engine provides its own way to access its RTD. Having a way to register "RTD Accessor service" in the GEMOC framework would probably help to design Sirius animation layers.
Description
This PR makes ALE interperter available all the time as a SiriusInterpreter (ie. a SiriusInterpreter is an interpreter used by Sirius in the odesign fields) (It was previously available only when running a single engine)
Expression in Sirius can now use
ale:
queries for both displaying runtime data while running a model AND displaying static information while editing a model (ie. as a replacement of[ /]
oraql:
queries)This PR also fixes the display of
ale:
queries in Sirius 6.3.0 when no model is running (cf. https://github.com/eclipse/gemoc-studio-execution-ale/issues/44)This PR also provides a support for multiple model execution at the same time. (In the previous version, only one engine was available to provide runtime data to the SiriusIntepreter )
Changes
ALESiriusInterpreterProvider
is registered using the extension point in the plugin.xmlALESiriusInterpreter
is now a singleton, engines register themselves as known engines. When evaluating a query,ALESiriusInterpreter
either find the appropriateALEEngine
or creates a new one able to evaluate queries relative only to the static part of the model. A small cache avoid creatingALEEngine
on every call.Launcher
(launch configuration) implicitly registers the newly created engine to the known engines ofALESiriusInterpreter
singleton. The launcher also implicitly adds the EngineAddon to the engine in order to unregister and free all the resources.Contribution to issues
Closes https://github.com/eclipse/gemoc-studio-execution-ale/issues/44 Contributes to https://github.com/gemoc/ale-lang/issues/150
Companion Pull Requests