----- Mail original -----
De: "Tudor Girba"
<tudor(a)tudorgirba.com>
À: "Moose-related development" <moose-dev(a)iam.unibe.ch>
Envoyé: Vendredi 2 Décembre 2011 08:25:04
Objet: [Moose-dev] Re: MooseChef & "hidden dependencies"
Hi,
Good point.
On 30 Nov 2011, at 18:17, Andre Hora wrote:
Just to complement the list:
- return type of a method
- type of a variable:
- Parameter
- Local variable
- Attribute
- exceptions:
- caught
- thrown
- declared
- parameter types in parameterized classes
To be more precise, we need to check the arguments in
ParameterizedTypes. I now added
FAMIXType>>argumentsInParameterizedTypes that will keep a back pointer
to those arguments, so, we can query it directly.
- use of annotations
- other?
Is anyone willing to work on that?
I would like.
the question is whether I can find some time to do it.
On Wed, Nov
30, 2011 at 6:00 PM, Nicolas Anquetil
<nicolas.anquetil(a)inria.fr> wrote:
As all of us know, Famix recognizes 4 types of associations
(reference, access, inheritance, invocation) and Moosechef was built
upon these dependencies (queryAllOutgoingReferences, ...)
For convenience, it adds queryAllOutgoingDependencies
but this will miss a good deal of actual dependencies, because many
of them are not expressed by associations:
- return type of a method
- type of a variable:
- Parameter
- Local variable
- Attribute
- exceptions caught, thrown
- and declared exception
- parameter types in parameterized classes
- use of annotations
- other?
Since we now have a nice general API to query dependencies, it would
be nicer if it were complete, ...
A possible solution would to rename queryAllOutgoingDependencies
into queryAllOutgoingAssociations and change
queryAllOutgoingDependencies to "do the right thing"
I like queryAllOutgoingAssociations.
Or maybe invent new "virtual
associations" (like ofType) and create
queries for these associations, ...
I do not understand this part. Could you explain in more details?
We decide that the relation between a variable and its type should be an association
instead of a property,
But we don't want to change (break) the meta-model
So we say taht if that association existed it would be named "ofType", or
"instance"
And we create a query in MooseChef that is called queryAllOutgoingInstances and we
implement it so that it goes into variables to retrieve their type
And then we change queryAllOutgoingDependencies to also call this new query
Same goes for exceptions thown, annotations "used", ...
nicolas