Hello Moosers,
At synectique, we subclassed some FAMIX classes in order to provide our own
specific behavior and to modelize some language specifities.
In this context, we are facing cases where several properties in the FAMIX
hierarchy point to the same opposite.
Fame complains about that, and raises an error when exporting the mse.
Sometimes, this kind of error helps us to highlight inconsistencies in the
implementation of our meta model,
but some other times, we would like to be more tolerant, and allow a
property to define several "type" classes,
which has for consequence that each of these "type" classes will define the
same opposite.
This cases mainly occur when working around famix single inheritance limits.
A workaround I have thought about is that when defining such a duplicate
opposite,
we could inform fame that we don't want this definition to raise a
validation error.
For example, adding a pragma such as <alternateOpposite>, that would be
considered by the fame pragma processor when validating the model.
Does this behavior has any interest for moose in general ?
Would you have other suggestions ?
Should we keep this new behavior in our own Pragma processor class ?
If yes, may I factorize the references to MoosePragmaProcessor in the code
of moose ?
--
Cyrille Delaunay