Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Seidewitz2015-09-25 13:59:33 +0000
committerGerrit Code Review @ Eclipse.org2016-03-30 09:53:15 +0000
commit00541e6040fd5f876a4ec6ed03629aad32232d0b (patch)
treee9161dbba13f8909dbc96412d5fe070d794784ce
parentac7008ae34d3b7487e6e17191efade1fb8f920b8 (diff)
downloadorg.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.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