On 18 Sep 2011, at 19:04, Stéphane Ducasse wrote:
We have
FAMIX.Entity extends Moose.Entity
FAMIXEntity is the abstract root class of the FAMIX meta-model entities.
Fields. /annotationInstances: AnnotationInstance* → annotatedEntity
Proposed new version:
FAMIX.Entity extends Moose.Entity
FAMIXEntity is the abstract root class of the FAMIX meta-model entities. Subclasses will represent structural entities of program: relations, types, functions...
Remove "structural", because this has a meaning in Famix. Leave just "program entities".
Any FAMIXEntity can be attached properties (declared using property:longName:description:), navigation queries using (navigation:) and simple state (using propertyAt: and propertyAt:put:).
No. It should be:
As any MooseEntity, a FAMIXEntity should be meta-described using Fame. This is achieved by means of MSEProperty:type:, and MSEProperty:type:opposite: pragmas.
Such behavior is important for extensibility. It is inherited from Moose.Entity (See MooseEntity).
Fields. /annotationInstances: AnnotationInstance* → annotatedEntity
This should not be in the core comment, because this is an extension.
Question why FAMIXAnnotationInstance are in Java Package? Answer because /annotationInstances comes only from Java.
Question: could we tag fields as coming from a specific extension?
annotatedEntity <MSEProperty: #annotatedEntity type: #FAMIXEntity opposite: #annotationInstances> ^ annotatedEntity
may be this is an opportunity to use <package: 'Java'>
Now how could we get that <MSEProperty: #annotatedEntity type: #FAMIXEntity opposite: #annotationInstances> is associated to <package: 'Java'>?
This is definitely the idea. It will probably be <package: 'FamixJava'> :)
This should not be in the comment. We have opened an issue for that: http://code.google.com/p/moose-technology/issues/detail?id=162
Doru
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev
-- www.tudorgirba.com
"Sometimes the best solution is not the best solution."