diff options
author | Ed Seidewitz | 2015-09-25 13:59:33 +0000 |
---|---|---|
committer | Gerrit Code Review @ Eclipse.org | 2016-03-30 09:53:15 +0000 |
commit | 00541e6040fd5f876a4ec6ed03629aad32232d0b (patch) | |
tree | e9161dbba13f8909dbc96412d5fe070d794784ce | |
parent | ac7008ae34d3b7487e6e17191efade1fb8f920b8 (diff) | |
download | org.eclipse.papyrus-00541e6040fd5f876a4ec6ed03629aad32232d0b.tar.gz org.eclipse.papyrus-00541e6040fd5f876a4ec6ed03629aad32232d0b.tar.xz org.eclipse.papyrus-00541e6040fd5f876a4ec6ed03629aad32232d0b.zip |
Corrected the mapping of a sequence feature invocation.
- Updated tuple mapping to properly add certain edges to the expression
graph rather than the LHS graph.
- Updated the adding of an expansion region to properly redirect edges
crossing the region boundary.
Conflicts:
plugins/uml/alf/org.eclipse.papyrus.uml.alf.to.fuml/transformation/AlfCommon2UML.qvto
Change-Id: I88427d4b381fcfedad4021bb8f505a5b63674e76
Signed-off-by: Ed Seidewitz <ed-s@modeldriven.com>
-rw-r--r-- | plugins/uml/alf/org.eclipse.papyrus.uml.alf.to.fuml/transformation/AlfExpression2UML.qvto | 14 |
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; |