diff options
author | Bob Brodt | 2016-10-26 15:37:34 +0000 |
---|---|---|
committer | Bob Brodt | 2016-10-26 15:37:34 +0000 |
commit | 2436bd15ea0081627e968cdbf211e7c70cad87ad (patch) | |
tree | d6a32d4e0b7124f42c3e3a930c57ee779b5ed559 | |
parent | b0e0e30d45598d12ac57106de9c2986e304d671b (diff) | |
download | org.eclipse.bpmn2-modeler-2436bd15ea0081627e968cdbf211e7c70cad87ad.tar.gz org.eclipse.bpmn2-modeler-2436bd15ea0081627e968cdbf211e7c70cad87ad.tar.xz org.eclipse.bpmn2-modeler-2436bd15ea0081627e968cdbf211e7c70cad87ad.zip |
https://bugs.eclipse.org/bugs/show_bug.cgi?id=496611
Message Event Definition validation is skipped for non-executable
processes.
-rw-r--r-- | plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/validation/validators/EventDefinitionValidator.java | 113 |
1 files changed, 57 insertions, 56 deletions
diff --git a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/validation/validators/EventDefinitionValidator.java b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/validation/validators/EventDefinitionValidator.java index c4225c03..d383b530 100644 --- a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/validation/validators/EventDefinitionValidator.java +++ b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/validation/validators/EventDefinitionValidator.java @@ -72,65 +72,66 @@ public class EventDefinitionValidator extends AbstractBpmn2ElementValidator<Even @Override public IStatus validate(EventDefinition ed) { BaseElement edContainer = (BaseElement) ed.eContainer(); - if (ed instanceof TimerEventDefinition) { - TimerEventDefinition ted = (TimerEventDefinition) ed; - if (ted.getTimeDate() == null && ted.getTimeDuration() == null && ted.getTimeCycle() == null) { - addMissingFeatureStatus(edContainer,Messages.EventDefinitionValidator_Timer, Status.ERROR); + if (ProcessValidator.isContainingProcessExecutable(edContainer)) { + if (ed instanceof TimerEventDefinition) { + TimerEventDefinition ted = (TimerEventDefinition) ed; + if (ted.getTimeDate() == null && ted.getTimeDuration() == null && ted.getTimeCycle() == null) { + addMissingFeatureStatus(edContainer,Messages.EventDefinitionValidator_Timer, Status.ERROR); + } + } else if (ed instanceof SignalEventDefinition) { + Signal signal = ((SignalEventDefinition) ed).getSignalRef(); + if (signal==null) + addMissingFeatureStatus(edContainer,Messages.EventDefinitionValidator_Signal, Status.ERROR); + else + new SignalValidator(this).validate(signal); + } else if (ed instanceof ErrorEventDefinition) { + Error error = ((ErrorEventDefinition) ed).getErrorRef(); + if (error==null) + addMissingFeatureStatus(edContainer,Messages.EventDefinitionValidator_Error, Status.ERROR); + else + new ErrorValidator(this).validate(error); + } else if (ed instanceof ConditionalEventDefinition) { + FormalExpression expression = (FormalExpression) ((ConditionalEventDefinition) ed).getCondition(); + if (expression==null || isEmpty(expression.getBody())) + addMissingFeatureStatus(edContainer,Messages.EventDefinitionValidator_Condition, Status.ERROR); + else + new ExpressionValidator(this).validate(expression); + } else if (ed instanceof EscalationEventDefinition) { + Escalation escalation = ((EscalationEventDefinition) ed).getEscalationRef(); + if (escalation==null) + addMissingFeatureStatus(edContainer,Messages.EventDefinitionValidator_Escalation, Status.ERROR); + else + new EscalationValidator(this).validate(escalation); + } else if (ed instanceof MessageEventDefinition) { + Message message = ((MessageEventDefinition) ed).getMessageRef(); + if (message==null) + addMissingFeatureStatus(edContainer,Messages.EventDefinitionValidator_Message, Status.ERROR); + else + new MessageValidator(this).validate(message); + } else if (ed instanceof CompensateEventDefinition) { + Activity activity = ((CompensateEventDefinition) ed).getActivityRef(); + if (activity==null) + addMissingFeatureStatus(edContainer,Messages.EventDefinitionValidator_CalledActivity, Status.ERROR); + else + new ActivityValidator(this).validate(activity); } - } else if (ed instanceof SignalEventDefinition) { - Signal signal = ((SignalEventDefinition) ed).getSignalRef(); - if (signal==null) - addMissingFeatureStatus(edContainer,Messages.EventDefinitionValidator_Signal, Status.ERROR); - else - new SignalValidator(this).validate(signal); - } else if (ed instanceof ErrorEventDefinition) { - Error error = ((ErrorEventDefinition) ed).getErrorRef(); - if (error==null) - addMissingFeatureStatus(edContainer,Messages.EventDefinitionValidator_Error, Status.ERROR); - else - new ErrorValidator(this).validate(error); - } else if (ed instanceof ConditionalEventDefinition) { - FormalExpression expression = (FormalExpression) ((ConditionalEventDefinition) ed).getCondition(); - if (expression==null || isEmpty(expression.getBody())) - addMissingFeatureStatus(edContainer,Messages.EventDefinitionValidator_Condition, Status.ERROR); - else - new ExpressionValidator(this).validate(expression); - } else if (ed instanceof EscalationEventDefinition) { - Escalation escalation = ((EscalationEventDefinition) ed).getEscalationRef(); - if (escalation==null) - addMissingFeatureStatus(edContainer,Messages.EventDefinitionValidator_Escalation, Status.ERROR); - else - new EscalationValidator(this).validate(escalation); - } else if (ed instanceof MessageEventDefinition) { - Message message = ((MessageEventDefinition) ed).getMessageRef(); - if (message==null) - addMissingFeatureStatus(edContainer,Messages.EventDefinitionValidator_Message, Status.ERROR); - else - new MessageValidator(this).validate(message); - } else if (ed instanceof CompensateEventDefinition) { - Activity activity = ((CompensateEventDefinition) ed).getActivityRef(); - if (activity==null) - addMissingFeatureStatus(edContainer,Messages.EventDefinitionValidator_CalledActivity, Status.ERROR); - else - new ActivityValidator(this).validate(activity); - } - if (edContainer instanceof Event && EventDefinitionsUtil.hasItemDefinition(ed)) { - // get Data Association and make sure both source and target are defined - Tuple<ItemAwareElement,DataAssociation> param = EventDefinitionsUtil.getIOParameter((Event)edContainer, ed); - DataAssociation da = param.getSecond(); - int severity = ProcessValidator.isContainingProcessExecutable(edContainer) ? Status.ERROR : Status.WARNING; - if (da instanceof DataInputAssociation) { - if (((DataInputAssociation)da).getSourceRef().size()==0) { - addStatus(edContainer,severity,Messages.EventDefinitionValidator_No_Source_DataItem, - ModelUtil.getLabel(ed), - ModelUtil.getLabel(edContainer)); + if (edContainer instanceof Event && EventDefinitionsUtil.hasItemDefinition(ed)) { + // get Data Association and make sure both source and target are defined + Tuple<ItemAwareElement,DataAssociation> param = EventDefinitionsUtil.getIOParameter((Event)edContainer, ed); + DataAssociation da = param.getSecond(); + if (da instanceof DataInputAssociation) { + if (((DataInputAssociation)da).getSourceRef().size()==0) { + addStatus(edContainer,Status.ERROR,Messages.EventDefinitionValidator_No_Source_DataItem, + ModelUtil.getLabel(ed), + ModelUtil.getLabel(edContainer)); + } } - } - else if (da instanceof DataOutputAssociation) { - if (((DataOutputAssociation)da).getTargetRef()==null) { - addStatus(edContainer,severity,Messages.EventDefinitionValidator_No_Target_DataItem, - ModelUtil.getLabel(ed)); + else if (da instanceof DataOutputAssociation) { + if (((DataOutputAssociation)da).getTargetRef()==null) { + addStatus(edContainer,Status.ERROR,Messages.EventDefinitionValidator_No_Target_DataItem, + ModelUtil.getLabel(ed)); + } } } } |