diff options
| author | Stéphane Bégaudeau | 2015-08-28 14:56:57 +0000 |
|---|---|---|
| committer | Pierre-Charles David | 2015-09-01 09:37:25 +0000 |
| commit | 9206816caf8b82a04f42104f36a3182a22974e2f (patch) | |
| tree | f4bb1523ce6271ca5493356b739b4a8ada8229ef | |
| parent | f2b953ec8f7075323b1c864f2e1a788aca074d23 (diff) | |
| download | org.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.java | 11 |
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) { |
