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