The xtumlrt meta-model is used in two ways: 1) as the first intermediate representation of the code generator, and 2) the abstract syntax for the xtext grammar.
During code generation the translation goes like this: UML+Profile -> xtumlrt -> C++ subset MM -> C++ sources. The xtumlrt metamodel simplifies a lot of the complexities inherent in UML, making it more like a "pure" UML-RT.
For textual syntax, that representation is used as the abstract syntax, which we can now translate back to UML+Profile as well.
I put (almost) all the xtumlrt related plugins in the plugins/xtumlrt folder:
- plugins/xtumlrt/metamodel: contains the EMF models:
. common: the common core (common with xtuml)
. umlrt: the umlrt-specific extensions
. statemach: the state machines
. statemach.ext: extensions to state machines used in code generation (when flattening the SM)
- plugins/xtumrlt/trans: contains the base(s) for transformations involving xtumrlt
- plugins/xtumlrt/xtext: contains the xtext plugins and the textual-to-UML transformation (maybe this could be moved to trans?)
There are a few xtumrlt related plugins and classes under plugins/umlrt/codegen, Namely oepr.codegen.xtumlrt.trans which is the UML-to-xtumlrt translator, and a couple of utility classes under oepr.codegen.utils (which prehaps should be moved to plugins/xtumlrt/utils).
I can do the reorganization, but should I now or wait until the other issues with the setup model have been settled?