Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcbrun2015-03-20 14:21:17 +0000
committercbrun2015-04-17 11:19:11 +0000
commit309f55a1134dccf4823b121169b651e46c91d9d5 (patch)
treebadf57704f475a6fe8ce459779e5e974a557c017
parent4b68b79600eb9c913977dbd72af2f7f30bc588a1 (diff)
downloadorg.eclipse.sirius-309f55a1134dccf4823b121169b651e46c91d9d5.tar.gz
org.eclipse.sirius-309f55a1134dccf4823b121169b651e46c91d9d5.tar.xz
org.eclipse.sirius-309f55a1134dccf4823b121169b651e46c91d9d5.zip
[461498] Register Sirius's packages during expression validation
Use the IInterpretedExpressionQuery infrastructure to add the dialect EPackages in the list of EPackages an interpreter should use to validate the expressions. For each Dialect the 'Representation' EPackage is added as it is generaly used even in variable types. Each 'Description' package is also added under the rational that it is not so uncommon to have expressions using the representationElement->Mapping reference to check names for instance. Bug: 461498 Change-Id: I2109ddb07f54d806baa083b83350119584c8e826 Signed-off-by: Cedric Brun <cedric.brun@obeo.fr>
-rw-r--r--plugins/org.eclipse.sirius.diagram/src-core/org/eclipse/sirius/diagram/business/internal/dialect/description/DiagramInterpretedExpressionQuery.java18
-rw-r--r--plugins/org.eclipse.sirius.table/src/org/eclipse/sirius/table/business/internal/dialect/description/TableInterpretedExpressionQuery.java10
-rw-r--r--plugins/org.eclipse.sirius.tree/src/org/eclipse/sirius/tree/business/internal/dialect/description/TreeInterpretedExpressionQuery.java10
-rw-r--r--plugins/org.eclipse.sirius/src/org/eclipse/sirius/business/api/dialect/description/AbstractInterpretedExpressionQuery.java7
4 files changed, 45 insertions, 0 deletions
diff --git a/plugins/org.eclipse.sirius.diagram/src-core/org/eclipse/sirius/diagram/business/internal/dialect/description/DiagramInterpretedExpressionQuery.java b/plugins/org.eclipse.sirius.diagram/src-core/org/eclipse/sirius/diagram/business/internal/dialect/description/DiagramInterpretedExpressionQuery.java
index 651adbcaef..5b1dcbb0f6 100644
--- a/plugins/org.eclipse.sirius.diagram/src-core/org/eclipse/sirius/diagram/business/internal/dialect/description/DiagramInterpretedExpressionQuery.java
+++ b/plugins/org.eclipse.sirius.diagram/src-core/org/eclipse/sirius/diagram/business/internal/dialect/description/DiagramInterpretedExpressionQuery.java
@@ -15,6 +15,7 @@ import java.util.Collections;
import java.util.Map;
import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.sirius.business.api.dialect.description.AbstractInterpretedExpressionQuery;
import org.eclipse.sirius.business.api.dialect.description.DefaultInterpretedExpressionTargetSwitch;
@@ -23,13 +24,18 @@ import org.eclipse.sirius.business.api.dialect.description.IInterpretedExpressio
import org.eclipse.sirius.common.tools.api.interpreter.IInterpreterSiriusVariables;
import org.eclipse.sirius.common.tools.api.interpreter.VariableType;
import org.eclipse.sirius.common.tools.api.util.StringUtil;
+import org.eclipse.sirius.diagram.DiagramPackage;
import org.eclipse.sirius.diagram.business.api.diagramtype.DiagramTypeDescriptorRegistry;
import org.eclipse.sirius.diagram.business.api.diagramtype.IDiagramTypeDescriptor;
import org.eclipse.sirius.diagram.description.AbstractNodeMapping;
+import org.eclipse.sirius.diagram.description.DescriptionPackage;
import org.eclipse.sirius.diagram.description.DiagramElementMapping;
import org.eclipse.sirius.diagram.description.DiagramExtensionDescription;
import org.eclipse.sirius.diagram.description.EdgeMapping;
import org.eclipse.sirius.diagram.description.EdgeMappingImport;
+import org.eclipse.sirius.diagram.description.concern.ConcernPackage;
+import org.eclipse.sirius.diagram.description.filter.FilterPackage;
+import org.eclipse.sirius.diagram.description.style.StylePackage;
import org.eclipse.sirius.diagram.description.tool.ContainerCreationDescription;
import org.eclipse.sirius.diagram.description.tool.CreateView;
import org.eclipse.sirius.diagram.description.tool.DirectEditLabel;
@@ -75,6 +81,18 @@ public class DiagramInterpretedExpressionQuery extends AbstractInterpretedExpres
super(target, feature);
}
+ @Override
+ public Collection<EPackage> getPackagesToImport() {
+ Collection<EPackage> superResult = super.getPackagesToImport();
+ superResult.add(DiagramPackage.eINSTANCE);
+ superResult.add(DescriptionPackage.eINSTANCE);
+ superResult.add(StylePackage.eINSTANCE);
+ superResult.add(org.eclipse.sirius.diagram.description.tool.ToolPackage.eINSTANCE);
+ superResult.add(FilterPackage.eINSTANCE);
+ superResult.add(ConcernPackage.eINSTANCE);
+ return superResult;
+ }
+
/**
*
* {@inheritDoc}
diff --git a/plugins/org.eclipse.sirius.table/src/org/eclipse/sirius/table/business/internal/dialect/description/TableInterpretedExpressionQuery.java b/plugins/org.eclipse.sirius.table/src/org/eclipse/sirius/table/business/internal/dialect/description/TableInterpretedExpressionQuery.java
index 539c9dd352..84079e5010 100644
--- a/plugins/org.eclipse.sirius.table/src/org/eclipse/sirius/table/business/internal/dialect/description/TableInterpretedExpressionQuery.java
+++ b/plugins/org.eclipse.sirius.table/src/org/eclipse/sirius/table/business/internal/dialect/description/TableInterpretedExpressionQuery.java
@@ -14,6 +14,7 @@ import java.util.Collection;
import java.util.Map;
import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.sirius.business.api.dialect.description.AbstractInterpretedExpressionQuery;
import org.eclipse.sirius.business.api.dialect.description.DefaultInterpretedExpressionTargetSwitch;
@@ -22,6 +23,7 @@ import org.eclipse.sirius.business.api.query.EObjectQuery;
import org.eclipse.sirius.common.tools.api.interpreter.VariableType;
import org.eclipse.sirius.ext.base.Option;
import org.eclipse.sirius.ext.base.Options;
+import org.eclipse.sirius.table.metamodel.table.TablePackage;
import org.eclipse.sirius.table.metamodel.table.description.CreateCellTool;
import org.eclipse.sirius.table.metamodel.table.description.DescriptionPackage;
import org.eclipse.sirius.table.metamodel.table.description.LabelEditTool;
@@ -55,6 +57,14 @@ public class TableInterpretedExpressionQuery extends AbstractInterpretedExpressi
}
@Override
+ public Collection<EPackage> getPackagesToImport() {
+ Collection<EPackage> superResult = super.getPackagesToImport();
+ superResult.add(TablePackage.eINSTANCE);
+ superResult.add(DescriptionPackage.eINSTANCE);
+ return superResult;
+ }
+
+ @Override
protected void initializeTargetSwitch() {
targetSwitch = new TableGlobalInterpretedTargetSwitch();
}
diff --git a/plugins/org.eclipse.sirius.tree/src/org/eclipse/sirius/tree/business/internal/dialect/description/TreeInterpretedExpressionQuery.java b/plugins/org.eclipse.sirius.tree/src/org/eclipse/sirius/tree/business/internal/dialect/description/TreeInterpretedExpressionQuery.java
index a31f40d86a..12f7f77449 100644
--- a/plugins/org.eclipse.sirius.tree/src/org/eclipse/sirius/tree/business/internal/dialect/description/TreeInterpretedExpressionQuery.java
+++ b/plugins/org.eclipse.sirius.tree/src/org/eclipse/sirius/tree/business/internal/dialect/description/TreeInterpretedExpressionQuery.java
@@ -14,7 +14,9 @@ import java.util.Collection;
import java.util.Map;
import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.tree.TreePackage;
import org.eclipse.sirius.business.api.dialect.description.AbstractInterpretedExpressionQuery;
import org.eclipse.sirius.business.api.dialect.description.DefaultInterpretedExpressionTargetSwitch;
import org.eclipse.sirius.business.api.dialect.description.IInterpretedExpressionTargetSwitch;
@@ -61,6 +63,14 @@ public class TreeInterpretedExpressionQuery extends AbstractInterpretedExpressio
protected void initializeTargetSwitch() {
targetSwitch = new TreeGlobalInterpretedTargetSwitch();
}
+
+ @Override
+ public Collection<EPackage> getPackagesToImport() {
+ Collection<EPackage> superResult = super.getPackagesToImport();
+ superResult.add(TreePackage.eINSTANCE);
+ superResult.add(DescriptionPackage.eINSTANCE);
+ return superResult;
+ }
/**
* {@inheritDoc}
diff --git a/plugins/org.eclipse.sirius/src/org/eclipse/sirius/business/api/dialect/description/AbstractInterpretedExpressionQuery.java b/plugins/org.eclipse.sirius/src/org/eclipse/sirius/business/api/dialect/description/AbstractInterpretedExpressionQuery.java
index aa7a60fdad..51493a3cea 100644
--- a/plugins/org.eclipse.sirius/src/org/eclipse/sirius/business/api/dialect/description/AbstractInterpretedExpressionQuery.java
+++ b/plugins/org.eclipse.sirius/src/org/eclipse/sirius/business/api/dialect/description/AbstractInterpretedExpressionQuery.java
@@ -32,6 +32,8 @@ import org.eclipse.sirius.ext.base.Option;
import org.eclipse.sirius.ext.base.Options;
import org.eclipse.sirius.ext.emf.AllContents;
import org.eclipse.sirius.tools.api.interpreter.context.SiriusInterpreterContextFactory;
+import org.eclipse.sirius.viewpoint.ViewpointPackage;
+import org.eclipse.sirius.viewpoint.description.DescriptionPackage;
import org.eclipse.sirius.viewpoint.description.JavaExtension;
import org.eclipse.sirius.viewpoint.description.RepresentationDescription;
import org.eclipse.sirius.viewpoint.description.Viewpoint;
@@ -46,6 +48,7 @@ import org.eclipse.sirius.viewpoint.description.tool.InitialOperation;
import org.eclipse.sirius.viewpoint.description.tool.ModelOperation;
import org.eclipse.sirius.viewpoint.description.tool.ToolPackage;
import org.eclipse.sirius.viewpoint.description.tool.VariableContainer;
+import org.eclipse.sirius.viewpoint.description.validation.ValidationPackage;
import com.google.common.base.Preconditions;
import com.google.common.collect.Iterables;
@@ -219,6 +222,10 @@ public abstract class AbstractInterpretedExpressionQuery implements IInterpreted
}
}
packagesToImport.add(EcorePackage.eINSTANCE);
+ packagesToImport.add(ViewpointPackage.eINSTANCE);
+ packagesToImport.add(DescriptionPackage.eINSTANCE);
+ packagesToImport.add(ToolPackage.eINSTANCE);
+ packagesToImport.add(ValidationPackage.eINSTANCE);
}
return packagesToImport;
}

Back to the top