Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStéphane Bégaudeau2015-08-28 14:56:57 +0000
committerPierre-Charles David2015-09-01 09:37:25 +0000
commit9206816caf8b82a04f42104f36a3182a22974e2f (patch)
treef4bb1523ce6271ca5493356b739b4a8ada8229ef
parentf2b953ec8f7075323b1c864f2e1a788aca074d23 (diff)
downloadorg.eclipse.sirius-9206816caf8b82a04f42104f36a3182a22974e2f.tar.gz
org.eclipse.sirius-9206816caf8b82a04f42104f36a3182a22974e2f.tar.xz
org.eclipse.sirius-9206816caf8b82a04f42104f36a3182a22974e2f.zip
[476130] Add support for compilation errors in the AQL interpreter
Both the diagnostic of the compilation and the evaluation can now be combined. Bug: 476130 Change-Id: Icbe1d71527538520b6d28dddfcdd19b348c77a88 Signed-off-by: Stéphane Bégaudeau <stephane.begaudeau@obeo.fr>
-rw-r--r--plugins/org.eclipse.sirius.common.acceleo.aql/src/org/eclipse/sirius/common/acceleo/aql/business/internal/AQLSiriusInterpreter.java11
1 files changed, 10 insertions, 1 deletions
diff --git a/plugins/org.eclipse.sirius.common.acceleo.aql/src/org/eclipse/sirius/common/acceleo/aql/business/internal/AQLSiriusInterpreter.java b/plugins/org.eclipse.sirius.common.acceleo.aql/src/org/eclipse/sirius/common/acceleo/aql/business/internal/AQLSiriusInterpreter.java
index 9092d6d309..9f8a3d136c 100644
--- a/plugins/org.eclipse.sirius.common.acceleo.aql/src/org/eclipse/sirius/common/acceleo/aql/business/internal/AQLSiriusInterpreter.java
+++ b/plugins/org.eclipse.sirius.common.acceleo.aql/src/org/eclipse/sirius/common/acceleo/aql/business/internal/AQLSiriusInterpreter.java
@@ -38,6 +38,7 @@ import org.eclipse.acceleo.query.validation.type.EClassifierType;
import org.eclipse.acceleo.query.validation.type.IType;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.common.util.BasicDiagnostic;
import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;
@@ -206,6 +207,14 @@ public class AQLSiriusInterpreter extends AcceleoAbstractInterpreter {
IQueryEvaluationEngine evaluationEngine = QueryEvaluation.newEngine(queryEnvironment);
final EvaluationResult evalResult = evaluationEngine.eval(build, variables);
+ final BasicDiagnostic diagnostic = new BasicDiagnostic();
+ if (Diagnostic.OK != build.getDiagnostic().getSeverity()) {
+ diagnostic.merge(build.getDiagnostic());
+ }
+ if (Diagnostic.OK != evalResult.getDiagnostic().getSeverity()) {
+ diagnostic.merge(evalResult.getDiagnostic());
+ }
+
return new IEvaluationResult() {
@Override
@@ -215,7 +224,7 @@ public class AQLSiriusInterpreter extends AcceleoAbstractInterpreter {
@Override
public Diagnostic getDiagnostic() {
- return evalResult.getDiagnostic();
+ return diagnostic;
}
};
} catch (ExecutionException e) {

Back to the top