Hi,
On Thu, Jul 30, 2015 at 2:49 PM, Jean-Christophe Bach < jeanchristophe.bach@inria.fr> wrote:
So, I looked at the code a bit. We should integrate this as soon as possible.
However, first we need to address a couple of issues:
- the traversing of parents like described above
As explained above, we disagree.
- there should be no need for the parentMetaClass: annotation. This
is
derived from the parentSelector
- the parentSelector annotation should be moved to the method that
defines
the property. Also, we should prefix it with MSE and I would call it ParentScope. So, something like this: FAMIXType>>container <MSEProperty: #container type: #FAMIXContainerEntity opposite: #types> <MSEComment: 'Container entity to which this type belongs to.
Container is
a namespace, not a package (Smalltalk).'> *<MSEParentScope>* ^container
We have just tried to do it. However it is not possible to move parentSelector annotation to the method that defines the property. Indeed, for example FAMIXClass and FAMIXMethod have two parentSelector among which parentPackage that is inherited from FAMIXNamedEntity. For the other classes inheriting from FAMIXNamedEntity parentPackage is not a parentSelector. Therefore it is not possible to put the annotations on the method itself.
We have to find a solution because I do not want to rely on strings :).
How about overriding the definition of parentPackage in FAMIXMethod?
FAMIXMethod>>parentPackage "Package containing the entity in the code structure (if applicable)" <MSEProperty: #parentPackage type: #FAMIXPackage opposite: #childNamedEntities> <MSEComment: 'Package containing the entity in the code structure (if applicable)'> *<MSEParentScope>* ^parentPackage
This would work I think.
The other question is why would we not allow the other subclasses to also have a parentPackage as parent?
Nevertheless, we will remove parentMetaClass annotation as you suggested.
Ok.
Doru
Anne & JC
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev