Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Seidewitz2015-09-26 23:56:04 +0000
committerArnaud Cuccuru2015-10-28 17:33:42 +0000
commitd0bf3093667025cd7256b07d77d8497c760679d4 (patch)
treebb916f9487e33463ca376efcbd851890e9533db6
parent757e885af541fe37d0d1bd50456bb57095a78b11 (diff)
downloadorg.eclipse.papyrus-d0bf3093667025cd7256b07d77d8497c760679d4.tar.gz
org.eclipse.papyrus-d0bf3093667025cd7256b07d77d8497c760679d4.tar.xz
org.eclipse.papyrus-d0bf3093667025cd7256b07d77d8497c760679d4.zip
Corrected the mapping of feature left-hand sides
- Added a missing object flow into the write action value pin, in the case of writing a multi-valued object property. Change-Id: I191a2337783290ad1bb5a73d8b061ffcd52252c4 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, 8 insertions, 6 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 b2cac4b911f..3f8c550cfe7 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
@@ -2076,11 +2076,13 @@ helper SyntaxElement::mapPropertyAssignment(property_ : Property, objectSource :
region.edge := graph.edges;
var objectInputPin := new InputPin(region, region.name + ".input(" + nameOf(objectSource) + ")", featuringClassifier, 1, 1);
+ var inputNode := new ExpansionNode(nameOf(valueSource), region, true);
new ObjectFlow(region, objectInputPin, writeAction._'object');
+ new ObjectFlow(region, inputNode, writeAction.value);
graph.nodes := region;
- graph.nodes += var inputNode ::= new ExpansionNode(nameOf(valueSource), region, true);
- graph.edges += new ObjectFlow(objectSource, objectInputPin);
+ graph.nodes += inputNode;
+ graph.edges := new ObjectFlow(objectSource, objectInputPin);
graph.edges += new ObjectFlow(valueSource, inputNode);
} else {
@@ -2207,7 +2209,7 @@ helper LeftHandSide::mapFeatureLeftHandSide(inout graph : LhsGraph, objectSource
if objectResultSource = null then {
var expressionGraph := feature.expression.map toActivityGraph();
objectResultSource := expressionGraph.resultSource;
- graph.controlTarget := expressionGraph.addStructuredActivityNodeTo(graph, "Expression(LeftHandSide(" + nameOf(objectResultSource) + "))");
+ graph.controlTarget := expressionGraph.addStructuredActivityNodeTo(graph, "Expression(LeftHandSide(" + property_.qualifiedName + "))");
} endif;
var index := self.index();
var resultNode : ActivityNode;
@@ -2220,7 +2222,7 @@ helper LeftHandSide::mapFeatureLeftHandSide(inout graph : LhsGraph, objectSource
if rhsUpper = 0 then {
resultNode := clearAction.result;
} else {
- graph.nodes += graph.resultSource := new ForkNode("LeftHandSide(" + nameOf(objectResultSource) + ")");
+ graph.nodes += graph.resultSource := new ForkNode("LeftHandSide(" + property_.qualifiedName + ")");
graph.assignmentTarget := graph.resultSource;
// Place the property assignment mapping in a structured activity node to insure
@@ -2238,7 +2240,7 @@ helper LeftHandSide::mapFeatureLeftHandSide(inout graph : LhsGraph, objectSource
var indexResultSource := indexSource;
if indexResultSource = null then {
var indexGraph := index.map toActivityGraph();
- var indexNode := indexGraph.addStructuredActivityNodeTo(graph, "Index(LeftHandSide(" + nameOf(objectResultSource) + ")");
+ var indexNode := indexGraph.addStructuredActivityNodeTo(graph, "Index(LeftHandSide(" + property_.qualifiedName + ")");
if graph.controlTarget = null then {
graph.controlTarget := indexNode;
} else {
@@ -2264,7 +2266,7 @@ helper LeftHandSide::mapFeatureLeftHandSide(inout graph : LhsGraph, objectSource
graph.edges += new ObjectFlow(indexFork, removeAction.removeAt);
graph.nodes += var writeAction ::= new AddStructuralFeatureValueAction(property_, false, unlimitedNaturalType);
- graph.nodes += graph.assignmentTarget := graph.resultSource := new ForkNode("LeftHandSide(" + nameOf(objectResultSource) + ")");
+ graph.nodes += graph.assignmentTarget := graph.resultSource := new ForkNode("LeftHandSide(" + property_.qualifiedName + ")");
graph.edges += new ObjectFlow(removeAction.result, writeAction._'object');
graph.edges += new ObjectFlow(graph.resultSource, writeAction.value);
resultNode := writeAction.result;

Back to the top