Community
Participate
Working Groups
A Viewpoint Specification Model host queries in a collection of languages (ocl, aql, feature, service, ...) each delegating to a specific query evaluation engine (the IInterpreter API in Sirius) When validating a VSM with Sirius 2.0 and older versions, each time a query is used the next query leveraging the result of the previous one has very litle type information to check for correctness. In essence we quickly fall back to "an EObject". It lead to "false positives" errors in the Viewpoint Specification model, as by construction Sirius could *know* that the type of some variable is more specific than just EObject. In the context of a VSM a given variable might have several type definition, $container in a node creation tool for instance, could either be an EPackage or an EClass if it is bound to the corresponding mappings. It is partially there in the current codebase with types being represented as Strings and sometimes collection of Strings. This bugzilla is about re-ifing in the API the fact that Variable might have several types, and that an IInterpreter is expected to take these possibilities in account when validating a query and *giving back to Sirius the possible return types of the query. AQL is a query evaluation engine able to analyse queries with several possible types for each variable, hence it makes a lot of sense to improve this situation with the introduction of AQL. VariableInterpreter (var:) will also be extended to transmit back the type information given to it at validation time. This bugzilla is slightly different from Bug 441767 as its not focused on Acceleo3 , I guess we can consider Bug 441767 is about leveraging the information in the case of Acceleo3.
New Gerrit change created: https://git.eclipse.org/r/44114
WARNING: this patchset contains 1003 new lines of code and may require a Contribution Questionnaire (CQ) if the author is not a committer on the project. Please see:https://wiki.eclipse.org/Project_Management_Infrastructure/Creating_A_Contribution_Questionnaire
New Gerrit change created: https://git.eclipse.org/r/44268
WARNING: this patchset contains 1012 new lines of code and may require a Contribution Questionnaire (CQ) if the author is not a committer on the project. Please see:https://wiki.eclipse.org/Project_Management_Infrastructure/Creating_A_Contribution_Questionnaire
WARNING: this patchset contains 1235 new lines of code and may require a Contribution Questionnaire (CQ) if the author is not a committer on the project. Please see:https://wiki.eclipse.org/Project_Management_Infrastructure/Creating_A_Contribution_Questionnaire
WARNING: this patchset contains 1238 new lines of code and may require a Contribution Questionnaire (CQ) if the author is not a committer on the project. Please see:https://wiki.eclipse.org/Project_Management_Infrastructure/Creating_A_Contribution_Questionnaire
Gerrit change https://git.eclipse.org/r/44114 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=42e2eeba1f01807245db88e33cab22eeb9f812e1
Gerrit change https://git.eclipse.org/r/44268 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=1e7e6a56854a7a5ffb813d83c945ca46a15254c5
We're done here, the type information is correctly passed from an IInterpreter instance to another (even though only var:, feature: and aql: are able to return it).
Validated on Sirius 3.0.0 RC1
Available in Sirius 3.0.0. See https://wiki.eclipse.org/Sirius/3.0.0.