Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Willink2016-06-28 10:41:56 +0000
committerEd Willink2016-07-17 16:32:49 +0000
commit77521fd0f0d5bc2b1026660182330554cb843272 (patch)
tree2ee6304016b269e877e1d729e4790918c1084fb1
parent296b189360e50039d7da1b6b21fb5b2a0715a0dd (diff)
downloadorg.eclipse.qvtd-77521fd0f0d5bc2b1026660182330554cb843272.tar.gz
org.eclipse.qvtd-77521fd0f0d5bc2b1026660182330554cb843272.tar.xz
org.eclipse.qvtd-77521fd0f0d5bc2b1026660182330554cb843272.zip
[486722] Provide names for operation input edges
-rw-r--r--plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/ExpressionAnalyzer.java18
1 files changed, 13 insertions, 5 deletions
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/ExpressionAnalyzer.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/ExpressionAnalyzer.java
index 0c39d5f91..338d6695b 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/ExpressionAnalyzer.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/ExpressionAnalyzer.java
@@ -661,10 +661,12 @@ public class ExpressionAnalyzer extends AbstractExtendingQVTimperativeVisitor<@N
List<OCLExpression> ownedArguments = operationCallExp.getOwnedArguments();
int iSize = ownedArguments.size();
@NonNull SimpleNode[] argNodes = new @NonNull SimpleNode[iSize];
+ @Nullable String [] argNames = new @Nullable String[iSize];
for (int i = 0; i < iSize; i++) {
argNodes[i] = analyze(ownedArguments.get(i));
+ argNames[i] = "«" + referredOperation.getOwnedParameters().get(i).getName() + "»";
}
- SimpleNode operationNode = createConnectedOperationNode(operationName, operationCallExp, argNodes);
+ SimpleNode operationNode = createConnectedOperationNode(operationName, argNames, operationCallExp, argNodes);
return operationNode;
}
SimpleNode sourceNode = analyze(ownedSource);
@@ -689,9 +691,12 @@ public class ExpressionAnalyzer extends AbstractExtendingQVTimperativeVisitor<@N
List<OCLExpression> ownedArguments = operationCallExp.getOwnedArguments();
int iSize = ownedArguments.size();
@NonNull SimpleNode[] argNodes = new @NonNull SimpleNode[iSize+1];
+ @Nullable String [] argNames = new @Nullable String[iSize+1];
argNodes[0] = sourceNode;
+ argNames[0] = "«self»";
for (int i = 0; i < iSize; i++) {
argNodes[i+1] = analyze(ownedArguments.get(i));
+ argNames[i+1] = "«" + referredOperation.getOwnedParameters().get(i).getName() + "»";
}
if ("<>".equals(operationName)) {
operationName.toString();
@@ -700,7 +705,7 @@ public class ExpressionAnalyzer extends AbstractExtendingQVTimperativeVisitor<@N
if (operationNode == null) {
operationNode = createOperationNode(operationName, operationCallExp, argNodes);
for (int i = 0; i <= iSize; i++) {
- createArgumentEdge(argNodes[i], /*iSize > 1 ?*/ "«arg" + i + "»"/*: null*/, operationNode);
+ createArgumentEdge(argNodes[i], argNames[i], operationNode);
}
if (referredOperation.getBodyExpression() != null) {
OperationRegion operationRegion = context.getSuperRegion().analyzeOperation(operationCallExp);
@@ -748,11 +753,14 @@ public class ExpressionAnalyzer extends AbstractExtendingQVTimperativeVisitor<@N
public @NonNull SimpleNode visitShadowExp(@NonNull ShadowExp shadowExp) {
List<ShadowPart> ownedParts = shadowExp.getOwnedParts();
int iSize = ownedParts.size();
- @NonNull SimpleNode[] partNodes = new @NonNull SimpleNode[iSize];
+ @NonNull SimpleNode [] partNodes = new @NonNull SimpleNode[iSize];
+ @Nullable String [] partNames = new @Nullable String[iSize];
for (int i = 0; i < iSize; i++) {
- partNodes[i] = analyze(ownedParts.get(i));
+ ShadowPart shadowPart = ownedParts.get(i);
+ partNodes[i] = analyze(shadowPart);
+ partNames[i] = shadowPart.getName();
}
- SimpleNode operationNode = createConnectedOperationNode(ClassUtil.nonNullState(shadowExp.getType().getName()), shadowExp, partNodes);
+ SimpleNode operationNode = createConnectedOperationNode(ClassUtil.nonNullState(shadowExp.getType().getName()), partNames, shadowExp, partNodes);
return operationNode;
}

Back to the top