Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/uml/alf/org.eclipse.papyrus.uml.alf.to.fuml/transformation/AlfExpression2UML.qvto')
-rw-r--r--plugins/uml/alf/org.eclipse.papyrus.uml.alf.to.fuml/transformation/AlfExpression2UML.qvto14
1 files changed, 9 insertions, 5 deletions
diff --git a/plugins/uml/alf/org.eclipse.papyrus.uml.alf.to.fuml/transformation/AlfExpression2UML.qvto b/plugins/uml/alf/org.eclipse.papyrus.uml.alf.to.fuml/transformation/AlfExpression2UML.qvto
index d3336e3fb6e..127e9d777b4 100644
--- a/plugins/uml/alf/org.eclipse.papyrus.uml.alf.to.fuml/transformation/AlfExpression2UML.qvto
+++ b/plugins/uml/alf/org.eclipse.papyrus.uml.alf.to.fuml/transformation/AlfExpression2UML.qvto
@@ -551,10 +551,14 @@ helper InvocationExpression::mapFeature(inout graph : ExpressionGraph, action :
graph.resultSource := region.outputElement![incoming![true].source = graph.resultSource];
} endif;
- // Wrap the feature expression in a structured activity node as the source of
- // a control flow to the expansion region.
- var featureNode := featureGraph.addStructuredActivityNodeTo(graph, "Feature(" + nameOf(featureGraph.resultSource) + ")");
- graph.edges += new ControlFlow(featureNode, region);
+ if featureGraph.nodes->isEmpty() then {
+ graph.edges += featureGraph.edges;
+ } else {
+ // Wrap the feature expression in a structured activity node as the source of
+ // a control flow to the expansion region.
+ var featureNode := featureGraph.addStructuredActivityNodeTo(graph, "Feature(" + nameOf(featureGraph.resultSource) + ")");
+ graph.edges += new ControlFlow(featureNode, region);
+ } endif;
} else {
featureGraph.addTo(graph);
@@ -654,7 +658,7 @@ mapping _Tuple::toActivityGraph(inout graph : ExpressionGraph, action : Action,
// with no input.
if i <= action.input->size() then {
var inputPin := action.input->at(i);
- edges += new ObjectFlow(inputGraph.resultSource, inputPin);
+ graph.edges += new ObjectFlow(inputGraph.resultSource, inputPin);
// Check for an index on the argument name (as opposed to the argument expression itself).
var index := input.index;

Back to the top