blob: 0d3be69b4ccc084425a9d4016844ef702c7b49c6 [file] [log] [blame]
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`;
}