potentialReferencingClasses, invokedClasses, clientClasses

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

potentialReferencingClasses, invokedClasses, clientClasses

abergel
Hi!

There is the method:

FAMIXPackage>>potentialReferencingClasses
        "returns a set of all the classes that potentially refer to the receiver: they potentially refer to some classes that are defined or extended into the receiver"


I do not understand what this means. How a class can be "potentially referenced"?

How does it differ from #invokedClasses ? There is no class comments for #invokedClasses. I feel this is necessary. I can add some if someone tells me that this method does.
By the way FAMIXMethod>>invokedClasses and FAMIXClass>>invokedClasses have a pragma <navigation: 'Invoked classes'>
But not FAMIXNamespace and FAMIXPackage?

Same things for FAMIXPackage>>clientClasses and FAMIXNamespace>>clientClasses. Shall we add a <navigation: 'Client classes'> as in FAMIXClass>>clientClasses

Cheers,
Alexandre

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.





_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: potentialReferencingClasses, invokedClasses, clientClasses

Tudor Girba
Hi,

This part of FAMIX is a bit of a mess :).

These selectors were introduced before the introduction of FAMIXReference, and referencing* used to mean invoking*.

The distinction between potential / sure comes from an invocation having possibly multiple candidates:
- "sure" is when you know exactly what the target of the association is
- "potential" is when you do not know

Jannik did a nice job at documenting this API in the Moose-Tests-SmalltalkImporter-KGB package.

It is not comments that these parts miss, but a review/rewrite:
- revise referencing* / referenced* and rename to invoking* / invoked *
- add referencing* / referenced* based on actual FAMIXReference
- add explicit support for method extensions dependencies
- change client* / provider* to include references and method extensions

Cheers,
Doru


On 25 Apr 2011, at 02:30, Alexandre Bergel wrote:

> Hi!
>
> There is the method:
>
> FAMIXPackage>>potentialReferencingClasses
> "returns a set of all the classes that potentially refer to the receiver: they potentially refer to some classes that are defined or extended into the receiver"
>
>
> I do not understand what this means. How a class can be "potentially referenced"?
>
> How does it differ from #invokedClasses ? There is no class comments for #invokedClasses. I feel this is necessary. I can add some if someone tells me that this method does.
> By the way FAMIXMethod>>invokedClasses and FAMIXClass>>invokedClasses have a pragma <navigation: 'Invoked classes'>
> But not FAMIXNamespace and FAMIXPackage?
>
> Same things for FAMIXPackage>>clientClasses and FAMIXNamespace>>clientClasses. Shall we add a <navigation: 'Client classes'> as in FAMIXClass>>clientClasses
>
> Cheers,
> Alexandre
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
www.tudorgirba.com

"Don't give to get. Just give."






_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: potentialReferencingClasses, invokedClasses, clientClasses

Usman Bhatti


On Mon, Apr 25, 2011 at 12:39 PM, Tudor Girba <[hidden email]> wrote:
Hi,

This part of FAMIX is a bit of a mess :).

These selectors were introduced before the introduction of FAMIXReference, and referencing* used to mean invoking*.

Yep, this is something we learnt the hard way :-) ... We tried to write a small program to calculate package dependencies. Dependencies meant for us, access + ref + invocation + inh + method extensions (if applicable)... however, since referencing only returns related to invocation, we had to shift our code to Moose-chef...
 

The distinction between potential / sure comes from an invocation having possibly multiple candidates:
- "sure" is when you know exactly what the target of the association is
- "potential" is when you do not know

There seems to be an algo in moose-importer that tries to resolve potential references. however that seems to just narrow down the candidates but does not reduce them to a single candidate... and probably that is not the purpose of the algo...
 

Jannik did a nice job at documenting this API in the Moose-Tests-SmalltalkImporter-KGB package.

It is not comments that these parts miss, but a review/rewrite:
- revise referencing* / referenced* and rename to invoking* / invoked *
- add referencing* / referenced* based on actual FAMIXReference
- add explicit support for method extensions dependencies
- change client* / provider* to include references and method extensions

at some point in time, I can undertake this task...
 

Cheers,
Doru


On 25 Apr 2011, at 02:30, Alexandre Bergel wrote:

> Hi!
>
> There is the method:
>
> FAMIXPackage>>potentialReferencingClasses
>       "returns a set of all the classes that potentially refer to the receiver: they potentially refer to some classes that are defined or extended into the receiver"
>
>
> I do not understand what this means. How a class can be "potentially referenced"?
>
> How does it differ from #invokedClasses ? There is no class comments for #invokedClasses. I feel this is necessary. I can add some if someone tells me that this method does.
> By the way FAMIXMethod>>invokedClasses and FAMIXClass>>invokedClasses have a pragma <navigation: 'Invoked classes'>
> But not FAMIXNamespace and FAMIXPackage?
>
> Same things for FAMIXPackage>>clientClasses and FAMIXNamespace>>clientClasses. Shall we add a <navigation: 'Client classes'> as in FAMIXClass>>clientClasses
>
> Cheers,
> Alexandre
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
www.tudorgirba.com

"Don't give to get. Just give."






_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev