| import 'Copyflowchart.etl'; | |
| rule MergeFlowchart | |
| merge l : Left!`Flowchart` | |
| with r : Right!`Flowchart` | |
| into t : Target!`Flowchart` { | |
| t.`nodes` ::= l.`nodes` + r.`nodes`; | |
| t.`transitions` ::= l.`transitions` + r.`transitions`; | |
| } | |
| rule MergeTransition | |
| merge l : Left!`Transition` | |
| with r : Right!`Transition` | |
| into t : Target!`Transition` { | |
| t.`name` := l.`name`; | |
| t.`source` ::= l.`source`; | |
| t.`target` ::= l.`target`; | |
| } | |
| rule MergeSubflow | |
| merge l : Left!`Subflow` | |
| with r : Right!`Subflow` | |
| into t : Target!`Subflow` { | |
| t.`name` := l.`name`; | |
| t.`nodes` ::= l.`nodes` + r.`nodes`; | |
| t.`transitions` ::= l.`transitions` + r.`transitions`; | |
| t.`outgoing` ::= l.`outgoing` + r.`outgoing`; | |
| t.`incoming` ::= l.`incoming` + r.`incoming`; | |
| } | |
| rule MergeAction | |
| merge l : Left!`Action` | |
| with r : Right!`Action` | |
| into t : Target!`Action` { | |
| t.`name` := l.`name`; | |
| t.`outgoing` ::= l.`outgoing` + r.`outgoing`; | |
| t.`incoming` ::= l.`incoming` + r.`incoming`; | |
| } | |
| rule MergeDecision | |
| merge l : Left!`Decision` | |
| with r : Right!`Decision` | |
| into t : Target!`Decision` { | |
| t.`name` := l.`name`; | |
| t.`outgoing` ::= l.`outgoing` + r.`outgoing`; | |
| t.`incoming` ::= l.`incoming` + r.`incoming`; | |
| } | |