1-- @path ModelA=/ModelA/ModelA.ecore
2-- @path ModelB=/ModelB/ModelB.ecore
3-- @path Target=/Target/Target.ecore
4
5module MultiModelExample;
6create OUT: Target from INA: ModelA, INB: ModelB;
7
8-- Transform from first source model
9rule TransformA {
10 from
11 s: ModelA!ElementA
12 to
13 t: Target!Item (
14 name <- s.name,
15 source <- 'ModelA'
16 )
17}
18
19-- Transform from second source model
20rule TransformB {
21 from
22 s: ModelB!ElementB
23 to
24 t: Target!Item (
25 name <- s.name,
26 source <- 'ModelB'
27 )
28}
29
30-- Combine information from both models
31rule CombineModels {
32 from
33 a: ModelA!ElementA,
34 b: ModelB!ElementB
35 to
36 t: Target!Combined (
37 nameA <- a.name,
38 nameB <- b.name,
39 combined <- a.name + ' + ' + b.name
40 )
41}