diff options
| author | cbrun | 2015-03-20 14:21:17 +0000 |
|---|---|---|
| committer | cbrun | 2015-04-17 11:19:11 +0000 |
| commit | 309f55a1134dccf4823b121169b651e46c91d9d5 (patch) | |
| tree | badf57704f475a6fe8ce459779e5e974a557c017 | |
| parent | 4b68b79600eb9c913977dbd72af2f7f30bc588a1 (diff) | |
| download | org.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>
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; } |
