Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[incquery-dev] incquery & xcore integration

Hi

The progress with the incquery & xcore integration is a bit slow at the moment because I'm stuck with an annoying issue: -Occasionally my test project gets corrupted and in the xcore file the primitive types cannot be found. The proposal provider proposes the String/Int/etc types but after selecting it, it is marked as an erroneous part in the text. After many attempts, experiments I think this is related to the fact that the project has both incquery and xtext natures and somehow the xtext builder gets corrupted (??). I have mentioned this behavior to Ed too.

-If I use two different projects (one for incquery and one for xcore) then how should I handle the dependencies? The incquery project should depend on the xcore project because of the generated metamodel, the xcore project should depend on the incquery project because of the defined patterns and the generated code (which will be used when evaluating the derived feature). Having the two things in the same project at least avoided the cyclic dep. problem.

-Suppose there is an incquery based derived feature defined as follows: derived Int numberOfBooks spec library.numberOfBooksOfWriter In this case (1) the derived feature "evaluator" code should be injected into the EMF model code (this is fine, as this can be done easily with special annotations in ecore) (2) when creating a dynamic instance model it should be also invoked somehow. In xcore the EStructuralFeature.Internal.SettingDelegate#dynamicGet is used for this case and the xbase expression is interpreted on the fly with the XbaseInterpreter class. For incquery there is no xbase code in the derived feature definition only the pattern fqn, so first the appropriate xbase code should be created? Other option is to implement it with reflection, what do you think? How to handle the imports (those classes which are used currently in Abel's implementation)?

I look forward to hear you ideas/opinions. If somebody wants to help more then I gladly share the existing code parts and some sample project.

Cheers,
Tamas


Back to the top