diff options
author | Ed Willink | 2014-06-01 13:13:03 +0000 |
---|---|---|
committer | Ed Willink | 2014-06-01 13:13:27 +0000 |
commit | dd587e5cd859e140fc2be9e4052afe246aabfc36 (patch) | |
tree | a21e8cdb10e998a07462aa3b5e103fe29adcd524 | |
parent | 5d78b5c53d6d0a70248bd28a3c422d7d91eaacb0 (diff) | |
download | org.eclipse.qvtd-dd587e5cd859e140fc2be9e4052afe246aabfc36.tar.gz org.eclipse.qvtd-dd587e5cd859e140fc2be9e4052afe246aabfc36.tar.xz org.eclipse.qvtd-dd587e5cd859e140fc2be9e4052afe246aabfc36.zip |
[422933] Create nested undecorated visitor too
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); |