Ok, so this is what I have done for the moment:
- I added incomingAccesses to FAMIXNamspace as an extension of Famix2Importer.
- The importer first create all those accesses made to namespace.
- Once the list of elements generated, I iterate over them and replace those accesses
into references.
What do you think ?
Johan, now the importer is working for your file .
ps: I also changed the kind 'abstract' of a method to be added as #isAbstract to
the modier list (I did it in the same way than for those FAMIXNamespace's accesses
=> references)
2010/2/17 Simon Denier <Simon.Denier(a)inria.fr>
On 17 févr. 2010, at 11:04, Cyrille Delaunay wrote:
Johan, I tryed to import your file. And I find a
new problem:
In Famix3, a FAMIXAccess can be made to any FAMIXStructuralEntity (GlobalVariable,
ImplicitVariable, LocalVariable, Parameter , UnknownVariable, Attribute). Those classes
are declared as 'variable' of the FAMIXAccess.then, they have opposite link to the
Access by the method FAMIXStructuralEntity>> incomingAccesses.
Now, in Famix2 , a FAMIXNamspace can be declared as 'variable' of a FAMIXAccess.
But the class FAMIXNamespace does't provide the method 'incomingAccesses', and
an error occure.
Have you any idea about how to solve this problem?
2010/2/17 Laval Jannik <jannik.laval(a)gmail.com>
Hi Johan,
We will be glad of your help.
For now the importer is a pre-alpha thing :)
We test it on some models but we don't know all details of Famix2Mse.
Before a real use, we need feedback to know if we do not forget something.
Thank you for your feedback, we will see it with Cyrille today.
Cheers,
Jannik
On Feb 16, 2010, at 22:25 , Johan Brichau wrote:
> Cyrille,
>
> I can help :-)
> It appears such a situation (where the translation depends on the value) did not
occur yet in the importer, right? Otherwise, I would take a look at that case and
transpose that solution to this instance.
>
>
>
> On 16 Feb 2010, at 22:22, Cyrille Delaunay wrote:
>
>> I guess it should:) I will have a look at that tomorow.
>>
>> 2010/2/16 Johan Brichau <johan.brichau(a)uclouvain.be>
>> Hi Cyrill,
>>
>> Should it not be added to the modifiers list? (I noticed that is where
#isAbstract is putting it) ?
>>
>> If the loaded model is not a correct model, it's not really a good idea. Or
am I seeing that wrong?
>>
>> On 16 Feb 2010, at 21:45, Cyrille Delaunay wrote:
>>
>>> The problem come from the method FAMIXMethod >> kind: . In that method,
a test is made to be sure the value affected correspond to list of kind 'allowed'.
In that list, 'abstract' is not present (because it is no more used in famix3 I
think). therefore , an error occure. For the moment, I had 'abstract' to this list
of 'allowed' values. You should have this change by loading the last version of
moose.
>>>
>>> 2010/2/16 Johan Brichau <johan.brichau(a)uclouvain.be>
>>> now with my attachment... (sorry)
>>>
>>>
>>>
>>>
>>> On 16 Feb 2010, at 20:50, Johan Brichau wrote:
>>>
>>>> Hi guys,
>>>>
>>>> very cool!
>>>> (Doru: sorry for not responding earlier. I only noticed your reply now)
>>>>
>>>> I just tried the attached mse file and got an error when the
'kind' of a method was being set to 'abstract'.
>>>>
>>>> I'm trying to figure out how I can help to complete this. My first
guess was to edit the MethodAttributesTraduction dictionary initialization in the
FM2TradInit method to correct that. However, what can the 'kind' be in a Famix2
file? Since Famix3 has the same 'kind' attribute, I guess that only the value
'abstract' should no longer be in there, right? Do you have an example in the
converter where that already occurs?
>>>>
>>>> cheers
>>>> Johan
>>>>
>>>> On 16 Feb 2010, at 12:44, Cyrille Delaunay wrote:
>>>>
>>>>> Hello,
>>>>> I join an example that works for me. But I think the problem could
come from the head of your files, because I'm really not sure about how does a
famix2mse file begin with. Can you send me your files ?
>>>>>
>>>>> 2010/2/16 Tudor Girba <tudor.girba(a)gmail.com>
>>>>> Nice initiative!
>>>>>
>>>>> However, I could not make it load any of my case studies. I get
syntax error. Could you provide an example that works?
>>>>>
>>>>> Cheers,
>>>>> Doru
>>>>>
>>>>>
>>>>>
>>>>> On 16 Feb 2010, at 12:24, Simon Denier wrote:
>>>>>
>>>>>
>>>>> On 16 févr. 2010, at 11:06, Laval Jannik wrote:
>>>>>
>>>>> Hi all,
>>>>>
>>>>> With Cyrille we work on a Famix2MseImporter in Pharo Famix3.
>>>>>
>>>>> It is a hack, in two parts:
>>>>> First, we place a script between the parser and the MooseElement
creation. So this script switches elements of Famix2 to Famix3. For example, a
FAMIX.InheritanceDefinition in the Famix2Mse become a FamixInheritance in Famix3.
>>>>>
>>>>> The other part of the script appears after the mooseModel creation.
In Famix3, there are FamixAccess and FamixReference. But in Famix2, there is only
FamixAccess.
>>>>> FamixReference is for a target with type FamixClass. But, when the
parser works, it is not easily possible to know the type of an attribute. So, to do it
easy, when the MooseModel is created, we check all accesses and test if the target is a
FamixClass. If true, the script change the link in a FamixReference.
>>>>>
>>>>> Now, we have three elements with no possible switch:
>>>>> - there is no FAMIXGlobalVariable>>declaredType in Famix2.
>>>>> - in Famix3, FAMIXInvocation>>receivingVariable has
disappeared.
>>>>>
>>>>> I think this is replaced by FAMIXInvocation>>receiver
>>>>>
>>>>> - in Famix3, FAMIXParameter>>position has disappeared.
>>>>>
>>>>> The meta-informations in Famix2Mse are not taken account.
>>>>>
>>>>> Finally, this script is a hack, the aim is to provide a solution for
people who want to come to Pharo-Moose.
>>>>>
>>>>> You can load it with:
>>>>>
>>>>> Gofer new
>>>>> squeaksource: 'Famix2Importer';
>>>>> package: 'Famix2Importer';
>>>>> load.
>>>>>
>>>>> A menu item is available in MoosePanel menu.
>>>>> You can try it and mail us if you have some bugs.
>>>>>
>>>>> Cheers,
>>>>> Jannik and Cyrille.
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Moose-dev mailing list
>>>>> Moose-dev(a)iam.unibe.ch
>>>>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>>>
>>>>> --
>>>>> Simon
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Moose-dev mailing list
>>>>> Moose-dev(a)iam.unibe.ch
>>>>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>>>
>>>>> --
>>>>>
www.tudorgirba.com
>>>>>
>>>>> "Every thing has its own flow."
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Moose-dev mailing list
>>>>> Moose-dev(a)iam.unibe.ch
>>>>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>>>
>>>>> <LAN sample
model-3.famix2.mse>_______________________________________________
>>>>> Moose-dev mailing list
>>>>> Moose-dev(a)iam.unibe.ch
>>>>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>>
>>>> ----------------------------
>>>> Johan Brichau
>>>> johan.brichau(a)uclouvain.be
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Moose-dev mailing list
>>>> Moose-dev(a)iam.unibe.ch
>>>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>
>>> ----------------------------
>>> Johan Brichau
>>> johan.brichau(a)uclouvain.be
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Moose-dev mailing list
>>> Moose-dev(a)iam.unibe.ch
>>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>
>>>
>>> _______________________________________________
>>> Moose-dev mailing list
>>> Moose-dev(a)iam.unibe.ch
>>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>
>> ----------------------------
>> Johan Brichau
>> johan.brichau(a)uclouvain.be
>>
>>
>>
>>
>>
>> _______________________________________________
>> Moose-dev mailing list
>> Moose-dev(a)iam.unibe.ch
>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>
>> _______________________________________________
>> Moose-dev mailing list
>> Moose-dev(a)iam.unibe.ch
>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> ----------------------------
> Johan Brichau
> johan.brichau(a)uclouvain.be
>
>
>
>
>
> _______________________________________________
> Moose-dev mailing list
> Moose-dev(a)iam.unibe.ch
>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
--
Simon
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch