The latest Early Access Program for MPS 2018.2 is here.
Try the MPS 2018.2 EAP5 here. In this new version, you can expect to see enhanced generation plans. There’s a new statement in generation plans: fork with <another generation plan> to branch the transformation sequence at a given point.
Referenced plan receives a model in the state it was at the fork step and proceeds as a regular transformation. In the example above, we transform input model with crossmodel.entity generator first, then record a state and go on with crossmodel.property#553 generator to eventually get output model #1. Then, crossmodel.property#g2 generator transforms the recorded model to get output model #2. Note that ‘then’ here is not a contract – there’s no promise that branches get processed in any specific order, except that the ‘primary’ branch, the one from the initial plan, gives the ‘first and only’ output model available through old API (GenerationStatus#getOutputModel) for compatibility/migration purposes.
At the end of the day, a transformation of a model may end up with multiple output models. All transient output models have the same name but different stereotype, and share the same output location (determined by input model), which is why further artifacts (like textgen) end up together.
We love receiving your reports in our issue tracker. Keep them coming!
Have a nice day!
Your JetBrains MPS Team
The Drive to Develop