Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Willink2014-06-01 13:13:03 +0000
committerEd Willink2014-06-01 13:13:27 +0000
commitdd587e5cd859e140fc2be9e4052afe246aabfc36 (patch)
treea21e8cdb10e998a07462aa3b5e103fe29adcd524
parent5d78b5c53d6d0a70248bd28a3c422d7d91eaacb0 (diff)
downloadorg.eclipse.qvtd-dd587e5cd859e140fc2be9e4052afe246aabfc36.tar.gz
org.eclipse.qvtd-dd587e5cd859e140fc2be9e4052afe246aabfc36.tar.xz
org.eclipse.qvtd-dd587e5cd859e140fc2be9e4052afe246aabfc36.zip
[422933] Create nested undecorated visitor too
-rw-r--r--plugins/org.eclipse.qvtd.debug/src/org/eclipse/qvtd/debug/evaluator/QVTiVMEvaluationVisitorImpl.java14
-rw-r--r--plugins/org.eclipse.qvtd.debug/src/org/eclipse/qvtd/debug/evaluator/QVTiVMNestedEvaluationEnvironment.java5
2 files changed, 19 insertions, 0 deletions
diff --git a/plugins/org.eclipse.qvtd.debug/src/org/eclipse/qvtd/debug/evaluator/QVTiVMEvaluationVisitorImpl.java b/plugins/org.eclipse.qvtd.debug/src/org/eclipse/qvtd/debug/evaluator/QVTiVMEvaluationVisitorImpl.java
index 9ad7856d8..82bccff7e 100644
--- a/plugins/org.eclipse.qvtd.debug/src/org/eclipse/qvtd/debug/evaluator/QVTiVMEvaluationVisitorImpl.java
+++ b/plugins/org.eclipse.qvtd.debug/src/org/eclipse/qvtd/debug/evaluator/QVTiVMEvaluationVisitorImpl.java
@@ -13,6 +13,9 @@ package org.eclipse.qvtd.debug.evaluator;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.ocl.examples.debug.vm.evaluator.IVMEvaluationVisitor;
+import org.eclipse.ocl.examples.pivot.NamedElement;
+import org.eclipse.ocl.examples.pivot.evaluation.EvaluationEnvironment;
+import org.eclipse.ocl.examples.pivot.evaluation.EvaluationVisitor;
import org.eclipse.qvtd.debug.QVTiDebugPlugin;
import org.eclipse.qvtd.pivot.qvtbase.Transformation;
import org.eclipse.qvtd.pivot.qvtimperative.evaluation.QVTiEvaluationVisitorImpl;
@@ -44,6 +47,17 @@ public class QVTiVMEvaluationVisitorImpl extends QVTiEvaluationVisitorImpl imple
return ne;
}
+ @Override
+ @NonNull
+ public EvaluationVisitor createNestedUndecoratedEvaluator(@NonNull NamedElement operation) {
+ EvaluationVisitor nestedEvaluationVisitor = super.createNestedUndecoratedEvaluator(operation);
+ EvaluationEnvironment nestedEvaluationEnvironment = nestedEvaluationVisitor.getEvaluationEnvironment();
+ if (nestedEvaluationEnvironment instanceof QVTiVMNestedEvaluationEnvironment) {
+ ((QVTiVMNestedEvaluationEnvironment)nestedEvaluationEnvironment).setOperation(operation);
+ }
+ return nestedEvaluationVisitor;
+ }
+
public void dispose() {}
@Override
diff --git a/plugins/org.eclipse.qvtd.debug/src/org/eclipse/qvtd/debug/evaluator/QVTiVMNestedEvaluationEnvironment.java b/plugins/org.eclipse.qvtd.debug/src/org/eclipse/qvtd/debug/evaluator/QVTiVMNestedEvaluationEnvironment.java
index eae6d8e58..78b0fe29a 100644
--- a/plugins/org.eclipse.qvtd.debug/src/org/eclipse/qvtd/debug/evaluator/QVTiVMNestedEvaluationEnvironment.java
+++ b/plugins/org.eclipse.qvtd.debug/src/org/eclipse/qvtd/debug/evaluator/QVTiVMNestedEvaluationEnvironment.java
@@ -137,6 +137,11 @@ public class QVTiVMNestedEvaluationEnvironment extends QVTiNestedEvaluationEnvir
return prevValue;
}
+ public void setOperation(@NonNull NamedElement operation) {
+ this.myCurrentIP = operation;
+ this.myOperation = operation;
+ }
+
public void throwVMException(@NonNull VMRuntimeException exception) throws VMRuntimeException {
try {
getRootEvaluationEnvironment().saveThrownException(exception);

Back to the top