You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have checked that this feature has not yet been suggested by someone else.
Expected behavior
Sirius Desktop supports the eInverse() AQL service in its intepreted expressions to navigate "backwards" on EMF references in the semantic model. This feature is used in a lot of existing VSMs, but we do not support it as it requires setting up AQL properly for that.
Cuttings backs
Make the feature configurable (see below).
Make the feature lazy (see below).
Potential side effects
The addition of an ECrossReferenceAdapter increases the memory footprint. If that is an issue, maybe this should be configurable (or the adapter installed lazyly on the first invocation of eInverse in a given project).
Describe alternatives you've considered
Use one of the EcoreUtil.UsageCrossReferencer.findAll() on every call to CrossReferenceProvider#getInverseReferences. This would avoid the memory overhead, but replace it with a very costly operation on every invocation (rebuild a full UsageCrossReferencer each time).
The text was updated successfully, but these errors were encountered:
Install an ECrossReferenceAdapter directly on every EditingContext,
and configure the AQL interpreter to use it as the source for
eInverse().
Fixes#190.
Bug: #190
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
Install an ECrossReferenceAdapter directly on every EditingContext,
and configure the AQL interpreter to use it as the source for
eInverse().
Fixes#190.
Bug: #190
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
Install an ECrossReferenceAdapter directly on every EditingContext,
and configure the AQL interpreter to use it as the source for
eInverse().
Fixes#190.
Bug: #190
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
Install an ECrossReferenceAdapter directly on every EditingContext,
and configure the AQL interpreter to use it as the source for
eInverse().
Bug: #190
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
Install an ECrossReferenceAdapter directly on every EditingContext,
and configure the AQL interpreter to use it as the source for
eInverse().
Bug: #190
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
Expected behavior
Sirius Desktop supports the
eInverse()
AQL service in its intepreted expressions to navigate "backwards" on EMF references in the semantic model. This feature is used in a lot of existing VSMs, but we do not support it as it requires setting up AQL properly for that.Cuttings backs
Potential side effects
The addition of an
ECrossReferenceAdapter
increases the memory footprint. If that is an issue, maybe this should be configurable (or the adapter installed lazyly on the first invocation ofeInverse
in a given project).Describe alternatives you've considered
EcoreUtil.UsageCrossReferencer.findAll()
on every call toCrossReferenceProvider#getInverseReferences
. This would avoid the memory overhead, but replace it with a very costly operation on every invocation (rebuild a fullUsageCrossReferencer
each time).The text was updated successfully, but these errors were encountered: