diff options
| author | Belqassim Djafer | 2014-11-19 14:17:31 +0000 |
|---|---|---|
| committer | Maxime Porhel | 2014-11-25 15:13:19 +0000 |
| commit | 27d445d0f5bd5efa03d5ab2a3e6b9515ce39d05e (patch) | |
| tree | 479e0d4a5b40050c8638443a1bdcafc9e1d5fd05 | |
| parent | 567748df6788cfc70e9fc320e9e42de49c529e81 (diff) | |
| download | org.eclipse.sirius-27d445d0f5bd5efa03d5ab2a3e6b9515ce39d05e.tar.gz org.eclipse.sirius-27d445d0f5bd5efa03d5ab2a3e6b9515ce39d05e.tar.xz org.eclipse.sirius-27d445d0f5bd5efa03d5ab2a3e6b9515ce39d05e.zip | |
[452286] Fix VSM validation to check the Domain class name
Validation should fails when the domain class name is invalid.
Bug: 452286
Change-Id: I0268464a82676f96088d7c6dd42780d3ba6c6478
Signed-off-by: Belqassim Djafer <belqassim.djafer@obeo.fr>
| -rw-r--r-- | plugins/org.eclipse.sirius.diagram/src-core/org/eclipse/sirius/diagram/tools/internal/validation/description/constraints/ExistingDomainClassConstraint.java | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/plugins/org.eclipse.sirius.diagram/src-core/org/eclipse/sirius/diagram/tools/internal/validation/description/constraints/ExistingDomainClassConstraint.java b/plugins/org.eclipse.sirius.diagram/src-core/org/eclipse/sirius/diagram/tools/internal/validation/description/constraints/ExistingDomainClassConstraint.java index cc95d3198b..fced9ef482 100644 --- a/plugins/org.eclipse.sirius.diagram/src-core/org/eclipse/sirius/diagram/tools/internal/validation/description/constraints/ExistingDomainClassConstraint.java +++ b/plugins/org.eclipse.sirius.diagram/src-core/org/eclipse/sirius/diagram/tools/internal/validation/description/constraints/ExistingDomainClassConstraint.java @@ -24,6 +24,7 @@ import org.eclipse.sirius.ecore.extender.business.api.accessor.ModelAccessor; import org.eclipse.sirius.tools.internal.validation.AbstractConstraint; import org.eclipse.sirius.viewpoint.SiriusPlugin; import org.eclipse.sirius.viewpoint.ViewpointPackage; +import org.eclipse.sirius.viewpoint.description.DescriptionPackage; /** * Validate that a DomainClass exist. @@ -44,11 +45,9 @@ public class ExistingDomainClassConstraint extends AbstractConstraint { public IStatus validate(final IValidationContext ctx) { final EObject eObj = ctx.getTarget(); final EMFEventType eventType = ctx.getEventType(); - // In the case of batch mode. if (eventType == EMFEventType.NULL) { - if ((eObj.eClass().getEPackage().getNsURI().startsWith(ViewpointPackage.eINSTANCE.getNsURI()) || eObj.eClass().getEPackage().getNsURI().startsWith(DiagramPackage.eINSTANCE.getNsURI())) - && isElementContainedInAKnownMetamodel(eObj)) { + if (isValidNsURI(eObj) && isElementContainedInAKnownMetamodel(eObj)) { final EStructuralFeature domainClassFeature = eObj.eClass().getEStructuralFeature(DOMAIN_CLASS_FEATURE); if (domainClassFeature != null) { final Object[] result = checkError(domainClassFeature, eObj); @@ -94,7 +93,7 @@ public class ExistingDomainClassConstraint extends AbstractConstraint { @Override protected EObject getParentDescription(final EObject instance) { - if (instance.eClass().getEPackage().getNsURI().startsWith(ViewpointPackage.eINSTANCE.getNsURI()) || instance.eClass().getEPackage().getNsURI().startsWith(DiagramPackage.eINSTANCE.getNsURI())) { + if (isValidNsURI(instance)) { EObject container = instance.eContainer(); while (container != null) { if (container instanceof DiagramDescription || container instanceof DiagramExtensionDescription) { @@ -105,4 +104,10 @@ public class ExistingDomainClassConstraint extends AbstractConstraint { } return null; } + + private boolean isValidNsURI(EObject eObj) { + return eObj.eClass().getEPackage().getNsURI().startsWith(ViewpointPackage.eINSTANCE.getNsURI()) || eObj.eClass().getEPackage().getNsURI().startsWith(DescriptionPackage.eINSTANCE.getNsURI()) + || eObj.eClass().getEPackage().getNsURI().startsWith(org.eclipse.sirius.diagram.description.DescriptionPackage.eINSTANCE.getNsURI()) + || eObj.eClass().getEPackage().getNsURI().startsWith(DiagramPackage.eINSTANCE.getNsURI()); + } } |
