When a composite state specifies error types in curly braces, the validator should check that there is only one type token specified. The meta-model and grammar allow a type set with multiple types, but only one type or product should be permitted. The following model should have errors:
package missing_validation
public
system s
features
f1: in feature;
f2: in feature;
annex EMV2 {**
use types ErrorLibrary;
use behavior missing_validation::machine1;
error propagations
f1: in propagation {CommonErrors};
f2: in propagation {CommonErrors};
end propagations;
composite error behavior
states
composite1: [in f1]-> state1 {ServiceError, ItemTimingError};
composite2: [in f2]-> state2 {CommonErrors};
end composite;
**};
end s;
annex EMV2 {**
error behavior machine1
use types ErrorLibrary;
states
state1: initial state {CommonErrors};
state2: state {CommonErrors};
end behavior;
**};
end missing_validation;
There should be an error on composite1 because it lists multiple types and there should be an error on composite2 because CommonErrors is a type set.
When a composite state specifies error types in curly braces, the validator should check that there is only one type token specified. The meta-model and grammar allow a type set with multiple types, but only one type or product should be permitted. The following model should have errors:
There should be an error on
composite1
because it lists multiple types and there should be an error oncomposite2
becauseCommonErrors
is a type set.