diff options
author | Benoit Maggi | 2014-08-08 09:25:23 +0000 |
---|---|---|
committer | Benoit Maggi | 2014-08-08 14:32:36 +0000 |
commit | 3ac9b1501c10430c7ff6fcb341c3f0109aaea42b (patch) | |
tree | ef304d62fc97dbbfc92ccd00914e0a2760b4d272 /plugins | |
parent | 76d2247dad1925c6c062b08d6d25c8231ffae15f (diff) | |
download | org.eclipse.papyrus-3ac9b1501c10430c7ff6fcb341c3f0109aaea42b.tar.gz org.eclipse.papyrus-3ac9b1501c10430c7ff6fcb341c3f0109aaea42b.tar.xz org.eclipse.papyrus-3ac9b1501c10430c7ff6fcb341c3f0109aaea42b.zip |
Bug 441408 - [UmlRT] Add test for validations rules
- add a test for the isActiveEntity rule
- add a getter to get the diagnostic from the command
- change the source to a unique id for the BasicDiagnostic comming from
status
Change-Id: I1f09e1d01fa9944675ea6c0ee872e6aa1011418c
Signed-off-by: Benoit Maggi <benoit.maggi@cea.fr>
Diffstat (limited to 'plugins')
2 files changed, 36 insertions, 7 deletions
diff --git a/plugins/infra/services/org.eclipse.papyrus.infra.services.validation/src/org/eclipse/papyrus/infra/services/validation/EValidatorAdapter.java b/plugins/infra/services/org.eclipse.papyrus.infra.services.validation/src/org/eclipse/papyrus/infra/services/validation/EValidatorAdapter.java index ffc8e2fa89a..04bcb5ebcf2 100644 --- a/plugins/infra/services/org.eclipse.papyrus.infra.services.validation/src/org/eclipse/papyrus/infra/services/validation/EValidatorAdapter.java +++ b/plugins/infra/services/org.eclipse.papyrus.infra.services.validation/src/org/eclipse/papyrus/infra/services/validation/EValidatorAdapter.java @@ -8,7 +8,7 @@ * Contributors: * IBM - Initial API and implementation * Christian W. Damus (CEA) - Target EObject must be the diagnostic's first data element - * + * Benoit Maggi (CEA LIST) - Add an unique id as source for diagnostic *****************************************************************************/ @@ -29,7 +29,9 @@ import org.eclipse.emf.ecore.EDataType; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.validation.model.EvaluationMode; import org.eclipse.emf.validation.model.IConstraintStatus; +import org.eclipse.emf.validation.model.IModelConstraint; import org.eclipse.emf.validation.service.IBatchValidator; +import org.eclipse.emf.validation.service.IConstraintDescriptor; import org.eclipse.emf.validation.service.ModelValidationService; import org.eclipse.uml2.uml.util.UMLValidator; @@ -181,16 +183,36 @@ public class EValidatorAdapter } } else if (status instanceof IConstraintStatus) { IConstraintStatus constraintStatus = (IConstraintStatus) status; - diagnostics.add(new BasicDiagnostic( - status.getSeverity(), - status.getPlugin(), - status.getCode(), - status.getMessage(), - toArray(constraintStatus.getResultLocus(), constraintStatus.getTarget()))); + diagnostics.add(createBasicDiagnostic(status, constraintStatus)); } } /** + * Create a basic diagnostic with an unique id as source + * @param status + * @param constraintStatus + * @return + */ + protected BasicDiagnostic createBasicDiagnostic(IStatus status, + IConstraintStatus constraintStatus) { + String source = status.getPlugin(); + IModelConstraint constraint = constraintStatus.getConstraint(); + if (constraint != null){ + IConstraintDescriptor descriptor = constraint.getDescriptor(); + if (descriptor != null) { + source = descriptor.getId(); + } + } + + return new BasicDiagnostic( + status.getSeverity(), + source, + status.getCode(), + status.getMessage(), + toArray(constraintStatus.getResultLocus(), constraintStatus.getTarget())); + } + + /** * Converts a possibly unordered collection to a list that has a designated * {@code first} element. * diff --git a/plugins/infra/services/org.eclipse.papyrus.infra.services.validation/src/org/eclipse/papyrus/infra/services/validation/commands/AbstractValidateCommand.java b/plugins/infra/services/org.eclipse.papyrus.infra.services.validation/src/org/eclipse/papyrus/infra/services/validation/commands/AbstractValidateCommand.java index 34df185abac..628dee777d1 100644 --- a/plugins/infra/services/org.eclipse.papyrus.infra.services.validation/src/org/eclipse/papyrus/infra/services/validation/commands/AbstractValidateCommand.java +++ b/plugins/infra/services/org.eclipse.papyrus.infra.services.validation/src/org/eclipse/papyrus/infra/services/validation/commands/AbstractValidateCommand.java @@ -109,6 +109,13 @@ abstract public class AbstractValidateCommand extends AbstractTransactionalComma public void disableUIFeedback() { this.showUIfeedback = false; } + + /** + * @return + */ + public Diagnostic getDiagnostic() { + return diagnostic; + } /** * @return The resource on which markers should be applied. |